Hyperledger fabric 在hyperledger结构中,安装和实例化链码的真正含义是什么?它们之间有什么区别?

Hyperledger fabric 在hyperledger结构中,安装和实例化链码的真正含义是什么?它们之间有什么区别?,hyperledger-fabric,hyperledger,Hyperledger Fabric,Hyperledger,在hyperledger结构文档中,使用了两个术语 1.在对等方和 2.实例化通道上的链码 这两者的主要区别是什么 在文档中,它说链码可以安装在多个对等机上,但可以实例化一次。我理解这一点,因为频道只需要有关频道的信息 我遵循的是平衡转移示例,因此在创建通道后,需要将对等方加入该通道 有两个对等方加入了频道[“peer0.org1.example.com”,“peer0.org1.example.com”],因此当我实例化链码时,它正在创建链码的两个docker映像 dev-peer0.org1

在hyperledger结构文档中,使用了两个术语
1.在对等方和
2.实例化通道上的链码

这两者的主要区别是什么

在文档中,它说链码可以安装在多个对等机上,但可以实例化一次。我理解这一点,因为频道只需要有关频道的信息

我遵循的是平衡转移示例,因此在创建通道后,需要将对等方加入该通道

有两个对等方加入了频道
[“peer0.org1.example.com”,“peer0.org1.example.com”]
,因此当我实例化链码时,它正在创建链码的两个docker映像

dev-peer0.org1.example.com-chaincode-v0  
dev-peer1.org1.example.com-chaincode-v0
这两张图片的真正含义是什么?
初始化链码不是该频道的意思吗?
或者在加入它的所有对等方上初始化它?
这个初始化实际上发生在哪里

谢谢

这两幅图的真正含义是什么? 初始化链码不是指通道的方式吗

是和否。每个对等方都需要在其自身上安装相同版本的链码,因为每个人都需要能够执行和验证传入的查询/调用。 所以有两个步骤要做

  • 在通道上的每个对等方上安装链码
  • 实例化通道上的链码
  • 这个初始化实际上发生在哪里


    因此,链码的实例化是在每个对等方都“了解”了链码并可以验证之后进行的。

    感谢@PaulO'Mahony和@kajuken提供的资源和解释。
    以下是我的疑问摘要:

  • 链码在Docker容器中运行,该容器与需要与其交互的任何对等方关联
  • 链码安装在对等机上,然后在通道上实例化
  • 所有希望使用链码提交事务或读取数据的成员都需要在其对等服务器上安装链码

  • 实例化将输入链码使用的初始数据,然后在已安装链码的通道中加入的对等方上启动链码容器
  • 请注意,只有一个网络成员需要实例化链码。如果安装了链码的对等方加入已实例化的通道,则链码容器将自动启动

    链码安装到加入通道的每个对等方的文件系统上,然后必须在通道上实例化链码,以便对等方可以通过链码容器与分类账交互。实例化执行链码的任何必要初始化。这通常涉及设置组成链码初始世界状态的键值对

  • 对等方可以安装一次链码,然后在实例化它的任何通道上使用相同的链码容器
  • 参考文献:


    对不起,我想你没有理解这个问题。安装是为了让对等方参与调用链码。但实例化使通道知道在调用时必须调用哪个链码版本。当您实例化它时,为加入通道的每个对等方创建2个docker映像1。这就是问题的关键所在。为什么会有多张图片?哦,那么我想我们是在谈论对方。每个对等方都有自己的链码映像来保护自己。失败或恶意代码可以在隔离环境中执行,并且不会影响对等方。给对等方的每个交易/提案都将指向该映像。您的问题的答案在Fabric docs->(顺便说一句,它们是实例化的容器实例,而不是docker映像)。链码在Docker容器中运行,该容器与需要与其交互的任何对等方关联。通常,链码只能安装在需要从中访问链码的对等机上。特别是,链码必须安装在接收该链码背书请求的任何对等方上。对等点可以在不同的组织中。@PaulO'Mahony所以我理解的是,通道在对等点上实例化链码,而不是在通道上安装链码?我说得对吗?所以,当来自不同组织的对等方加入通道并安装链码时,那个么时间会是什么呢?AsInstance每个链码只运行一次。@ShubhamChadokar将在第一个问题上帮助您。"[...]对等方可能希望加入使用相同链码的多个通道,但具有能够访问数据的不同网络成员集。对等方可以安装一次链码,然后在已实例化的任何通道上使用相同的链码容器。这种轻量级方法节省计算和存储空间,并帮助您扩展您的网络。”