在 Hyperledger Fabric v1.2 中实施 ACL

Implementing ACL in Hyperledger Fabric v1.2

我正在尝试在 Hyperledger Fabric 中实施 ACL。我已经用 peer/proposal 尝试了我的自定义策略并且它工作正常。

我的问题是,如果我想阻止 peer chaincode installpeer chaincode instantiatepeer channel create 和所有其他命令,应该使用什么资源。

ACL 默认值如下:

# ACL policy for lscc's "getid" function
        lscc/ChaincodeExists: /Channel/Application/Readers


        # ACL policy for lscc's "getdepspec" function
        lscc/GetDeploymentSpec: /Channel/Application/Readers

        # ACL policy for lscc's "getccdata" function
        lscc/GetChaincodeData: /Channel/Application/Readers

        # ACL Policy for lscc's "getchaincodes" function
        lscc/GetInstantiatedChaincodes: /Channel/Application/Readers


        #---Query System Chaincode (qscc) function to policy mapping for access control---#

        # ACL policy for qscc's "GetChainInfo" function
        qscc/GetChainInfo: /Channel/Application/Readers

        # ACL policy for qscc's "GetBlockByNumber" function
        qscc/GetBlockByNumber: /Channel/Application/Readers

        # ACL policy for qscc's  "GetBlockByHash" function
        qscc/GetBlockByHash: /Channel/Application/Readers

        # ACL policy for qscc's "GetTransactionByID" function
        qscc/GetTransactionByID: /Channel/Application/Readers

        # ACL policy for qscc's "GetBlockByTxID" function
        qscc/GetBlockByTxID: /Channel/Application/Readers

        #---Configuration System Chaincode (cscc) function to policy mapping for access control---#

        # ACL policy for cscc's "GetConfigBlock" function
        cscc/GetConfigBlock: /Channel/Application/Readers

        # ACL policy for cscc's "GetConfigTree" function
        cscc/GetConfigTree: /Channel/Application/Readers

        # ACL policy for cscc's "SimulateConfigTreeUpdate" function
        cscc/SimulateConfigTreeUpdate: /Channel/Application/Readers

        #---Miscellanesous peer function to policy mapping for access control---#

        # ACL policy for invoking chaincodes on peer
        peer/Propose: /Channel/CustomPolicy

        # ACL policy for chaincode to chaincode invocation
        peer/ChaincodeToChaincode: /Channel/Application/Readers

        #---Events resource to policy mapping for access control###---#

        # ACL policy for sending block events
        event/Block: /Channel/Application/Readers

        # ACL policy for sending filtered block events
        event/FilteredBlock: /Channel/Application/Readers

有没有办法实现这种功能?

任何 help/suggestion 将不胜感激。

谢谢

peer chaincode installpeer chaincode instantiatepeer channel create 这样的命令是管理任务,只有组织的管理员才能使用它们。管理员以外的 member/participants 不允许使用它们。 ACL 没有编写来处理此类命令,因为这些命令仅限于管理员。

因此,答案是否定的。您无法使用 ACL 控制这些命令。

目前,ACL 涉及生命周期系统链码或 LSCC(这是一个系统链码处理用户链码的部署、升级和终止事务)、配置系统链码或 CSCC(管理系统链码处理配置)的链码包请求更改通道的一个方面)、客户端事件和对等点(链代码包,而不是 CLI 工具)。下面的图表显示了与每个网络组件相关的资源。

我们可以通过使用组件类别来引用每个资源,然后用/(斜杠)分隔两者,例如event/FilteredBlock.

我们可以使用它来指定在客户端可以接收块信息之前我们必须满足的要求。