如何在 Hyperledger Fabric 链码中获取渠道成员组织列表?

How to get list of channel member organizations in Hyperledger Fabric chaincode?

我正在尝试实现一个智能合约,其中一个组织的成员可以提交一份提案文件(这是一个简单的文本,将被记录在状态中),其他组织可以对其进行投票(approve/reject), 如果多数人同意,则提案被接受。

documentation about transaction flow and the 建议交易背书不应编码“业务逻辑”,即“按规则进行”的交易应该得到背书。

因此,我想在智能合约层面实现这个approval/rejection过程。在这个模型中,提案以及每次投票都是一个单独的交易。然后,提议者可以提交另一笔交易来计票并最终确定提议。

为此,我需要获取频道成员的组织列表。这如何在智能合约的功能中完成?

您需要让链码智能合约能够从 peer/orderer 检索最新的配置块,然后解析该块以获取组织列表。

这意味着您需要一种方法将客户端的私钥发送到链代码调用中。

要发送客户端的私钥,最好只为该客户端设置专用的 MSP,这样出于安全原因,MSP 不会包含在任何背书策略或其他通道配置策略中。

然后,要解析配置块,您可以按照代码 here

请注意,您不能在链代码中使用 QSCC 查询,尽管这样做很诱人,因为禁止使用 QSCC 进行链代码到链代码的调用。