【问题标题】:Where does the chaincode exist in a hyperledger fabric?超级账本结构中的链码在哪里?
【发布时间】:2018-12-14 21:29:34
【问题描述】:

作为 Blockchain 和 Hyperledger Fabric 的新手,我正在努力寻找以下问题的答案,

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

  1. 在多组织、多对等设置(现实世界场景)中,链代码是否存在(或安装)在 Hyperledger Fabric 网络中 - 它是否仅限于特定对等方或所有对等方频道?

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

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

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

【问题讨论】:

    标签: hyperledger-fabric blockchain hyperledger-composer smartcontracts


    【解决方案1】:

    在多组织、多对等设置(现实世界场景)中, 链码存在(或安装)在 Hyperledger Fabric 网络中 - 它是仅限于特定对等点还是通道中的所有对等点?

    链码安装在每个必须为给定交易背书的节点上。背书涉及使用某些给定参数执行链代码,找出结果并对其进行签名(使用对等方所属组织的 MSP)。 链码是基于每个对等点安装的,并且可以在一个或多个通道上实例化。如果对等点属于一个通道但没有背书任何交易,那么它不需要链码。它可以只选择存储给定通道的分类帐(充当提交节点)。

    如果链码驻留在特定的对等点中,那么会发生什么 网络以防对等方关闭(由于连接中断 或其他不可预见的灾难)-整个频道是否无法 无需链码即可操作?

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

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

    权限是指调用者组织的MSP是否有权访问该频道。因此,如果您尝试从 Channel1 调用 Channel2 的数据,那么您(调用客户端)必须作为读取器/写入器成为该通道的一部分。

    【讨论】:

    • 如何提供权限?通过 yaml 文件或链码等?
    • 您要添加权限访问的实体是什么? Chaincode 函数访问还是 Channel 本身?
    • Organization1 的chaincode1 需要访问Organization2 的chaincode2 的函数和数据
    • @deadpool 请在单独的问题中完全清楚地提问
    猜你喜欢
    • 2018-08-05
    • 2019-05-09
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多