超账结构中的链码在哪里?

时间:2018-07-06 09:46:16

标签: hyperledger-fabric blockchain hyperledger-composer smartcontracts

成为区块链和Hyperledger Fabric的新手,我正在寻找以下问题的答案,

我计划使用IBM Bluemix入门计划,并使用在Hyperledger composer中开发的BNA将链码安装到示例结构网络中。

  1. 在多组织,多对等设置(实际情况)中,链码是否存在(或已安装)在Hyperledger Fabric网络中-是将其限制在特定对等端还是在一个对等端中的所有对等端频道?

  2. 如果链码驻留在特定的对等点中,那么如果对等点发生故障(由于连接中断或其他不可预见的灾难),网络将发生什么情况?如果没有链码,整个通道是否将无法运行?

  3. 各个对等方中的多个链码如何在超级账本结构中访问同一组数据?

    • 我在http://hyperledger-fabric.readthedocs.io中看到了以下内容: “由一个链码创建的状态仅适用于该链码,并且不能被另一个链码直接访问。 在获得适当许可的情况下,链码可以在同一通道或不同通道中调用另一个链码,以访问其状态。请注意,如果被调用链码与调用链码位于不同的频道,则仅允许读取查询。但是我不确定如何授予“适当的许可”。

1 个答案:

答案 0 :(得分:4)

  

在多组织,多对等设置(实际情况)下,   链代码在Hyperledger Fabric网络中存在(或已安装)   -是仅限于某个特定对等方还是某个渠道中的所有对等方?

在必须认可给定交易的每个对等方上都安装了链码。认可包括执行带有某些给定参数的链码,找出结果并签名(使用组织的MSP,对等体是其中的一部分)。 链码是在每个对等点的基础上安装的,可以在一个或多个通道上实例化。如果对等方属于某个渠道但不认可任何交易,则它不需要链码。它可以选择存储给定通道的分类帐(充当提交对等方)。

  

如果链码驻留在特定的同位体中,那么会发生什么   如果对等网络中断(由于连接中断)   或其他不可预见的灾难)-整个渠道将无法   不用链码就能操作?

如果每个组织的MSP有多个认可对等方,则可以顺利签署并继续进行交易。正如您所解释的,每个ORG MSP设置一个以上的对等点可以帮助提高崩溃容错能力。其次,如果每个ORG MSP只有一个对等方,并且您的背书策略是您绝对需要该MSP的签名才能使交易通过,那么给定链码的通道交易将失败。同一通道上不需要此签名的其他链码仍然可以正常工作。

  

各个对等方中的多个链码如何访问同一组   数据在超级账本结构中?

得到许可,意味着如果调用者组织的MSP有权访问该通道。因此,如果您试图从Channel1调用Channel2的数据,那么您(调用客户端)必须作为读取器/写入器成为该通道的一部分。