Hyperledger Fabric - 如何将 Org2 限制为 install/instantiate/upgrade 链代码到通道?

Hyperledger Fabric - How to limit Org2 to install/instantiate/upgrade the chaincode to the channel?

我的结构网络联盟(在 configtx.yaml)有两个组织:ORG1 和 ORG2。 ORG1 有 4 个主要对等点,而 ORG2 只有 1 个对等点。 ORG2 peer 的唯一目的是拥有分类帐的副本(用于审计目的)。

他们都加入了同一个频道,假设 ORG1 的管理员已经 installed/instantiated 链代码版本 0.1

现在,ORG2 的管理员还可以使用相同的链代码名称“对等链代码升级”到版本 0.2,并且当提案到达 ORG1 对等节点之一时,它会说:

endorsement failure during invoke. response: status:500 message:"cannot retrieve package for chaincode [chaincode name]/0.2, error open /var/hyperledger/production/chaincodes/[chaincode name]/0.2: no such file or directory"

我们如何完全阻止 ORG2 升级链码版本? 只有 ORG1 的管理员才能执行管理操作?

我已经搜索了ACL,但是管理操作似乎不受ACL设置的控制。

经过研究,我们发现我们可以在链代码包的实例化策略上设置它。

请参阅下面的面料文档:

https://hyperledger-fabric.readthedocs.io/en/release-1.4/commands/peerchaincode.html#peer-chaincode-package

通过标志-i,您可以在打包链码时设置实例化策略。然后只有策略允许的组织才能实例化或升级通道上的链代码