超级账本结构。是否可以将多个链代码部署到同一通道?
Hyperledger Fabric. Is it possible to deploy more than one chaincode to the same channel?
是否可以将两个不同的链代码部署到 Hyperledger fabric 中的同一个通道
是的。并且可以将相同的链代码部署到 2 个或更多通道。如果您使用不同的名称,您甚至可以将相同的链代码部署到相同的通道。
jworthington 的回答是正确的,但我想从评论中清除一些内容。
- 一个通道就是一个账本。 (official doc)
- 每个链码都在分类账上分开 "view"(我将其可视化为数据库中的每个键都有链码名称前缀并且链码可以访问
仅具有与其名称相同前缀的特定键)。
- 您可以从第一个链码调用 read/write 第二个链码,这将只进行一次区块链交易(条件是链码在相同 channel/ledger 上,否则,写操作将是忽略)
检查块结构时,我发现块中有一个 'Chaincode Name' 字段,我想:
- 一个频道一个账本(offcial doc)
- 一个通道可以有两个或多个链码
- 不同链码生成的区块(我们可以简单的这么认为)会存储在同一个账本中
- 块中的字段'Chaincode Name'将区分它是由哪个链码生成的
是的,我们可以使用不同的链代码 ID 将多个链代码部署到同一个通道。
每个链码在通道中都有单独的分类帐,我们可以将其视为命名空间。
一个链码不能直接 read/update 其他通道账本。
但是,fabric shim 包提供 "InvokeChaincode" 调用另一个链码到 read/update 它的账本的功能。
stub.InvokeChaincode("anotherCCName", chainCodeArgs, "channelName")
我不知道这些年有多少变化,但我根据版本2.x分享信息。
- Ledger 与通道相关联,而不是与 Chaincode 相关联。即使是对等节点也可以在不安装任何链代码的情况下拥有分类帐。 https://hyperledger-fabric.readthedocs.io/en/latest/peers/peers.html#multiple-ledgers
- P1 是同行
- L1 和 L2 是分类帐
- S1、S2 和 S3 是链码
- 节点拥有的账本数量与可以访问该账本的链代码数量之间没有固定关系。一个节点可能有许多链码和许多可用的账本。
https://hyperledger-fabric.readthedocs.io/en/latest/peers/peers.html#multiple-chaincodes
- P1 是同行
- L1 和 L2 是分类帐
- S1、S2 和 S3 是链代码
是否可以将两个不同的链代码部署到 Hyperledger fabric 中的同一个通道
是的。并且可以将相同的链代码部署到 2 个或更多通道。如果您使用不同的名称,您甚至可以将相同的链代码部署到相同的通道。
jworthington 的回答是正确的,但我想从评论中清除一些内容。
- 一个通道就是一个账本。 (official doc)
- 每个链码都在分类账上分开 "view"(我将其可视化为数据库中的每个键都有链码名称前缀并且链码可以访问 仅具有与其名称相同前缀的特定键)。
- 您可以从第一个链码调用 read/write 第二个链码,这将只进行一次区块链交易(条件是链码在相同 channel/ledger 上,否则,写操作将是忽略)
检查块结构时,我发现块中有一个 'Chaincode Name' 字段,我想:
- 一个频道一个账本(offcial doc)
- 一个通道可以有两个或多个链码
- 不同链码生成的区块(我们可以简单的这么认为)会存储在同一个账本中
- 块中的字段'Chaincode Name'将区分它是由哪个链码生成的
是的,我们可以使用不同的链代码 ID 将多个链代码部署到同一个通道。 每个链码在通道中都有单独的分类帐,我们可以将其视为命名空间。 一个链码不能直接 read/update 其他通道账本。
但是,fabric shim 包提供 "InvokeChaincode" 调用另一个链码到 read/update 它的账本的功能。
stub.InvokeChaincode("anotherCCName", chainCodeArgs, "channelName")
我不知道这些年有多少变化,但我根据版本2.x分享信息。
- Ledger 与通道相关联,而不是与 Chaincode 相关联。即使是对等节点也可以在不安装任何链代码的情况下拥有分类帐。 https://hyperledger-fabric.readthedocs.io/en/latest/peers/peers.html#multiple-ledgers
- P1 是同行
- L1 和 L2 是分类帐
- S1、S2 和 S3 是链码
- 节点拥有的账本数量与可以访问该账本的链代码数量之间没有固定关系。一个节点可能有许多链码和许多可用的账本。
https://hyperledger-fabric.readthedocs.io/en/latest/peers/peers.html#multiple-chaincodes
- P1 是同行
- L1 和 L2 是分类帐
- S1、S2 和 S3 是链代码