【问题标题】:Hyperledger Fabric ACLHyperledger Fabric ACL
【发布时间】:2019-11-03 02:27:51
【问题描述】:

ELI5 请。为什么示例https://github.com/hyperledger/fabric/blob/release-1.2/sampleconfig/configtx.yaml 中的 ACL 策略指定在不同的地方(在“组织”、“订购者”、“渠道”和“应用程序”部分)?这些级别是什么意思?有什么区别?

在哪些情况下我应该使用哪一个?为什么在某些块中只定义了策略,而在其他策略 + ACL(“应用程序”部分)中?

PS:channel 和 org、orderer 策略有什么区别?例如,当我在频道部分指定“MAJORITY admins”、在频道部分指定“ANY members”和在 org 部分指定“ANY admins”时会发生什么?作为应用程序开发人员,在这种情况下会发生什么变化?

【问题讨论】:

    标签: hyperledger-fabric hyperledger acl


    【解决方案1】:

    ACL(访问控制列表)策略是根据不同的逻辑结构(即通道、排序器等)定义的,因此您可以对这些逻辑结构中的每一个拥有更多控制权,并且您可以定义网络上的哪些身份可以执行哪些操作操作(为简单起见,将它们视为与写入、读取或管理相关的操作)分别针对这些单元中的每一个。

    因此,作为应用程序开发人员,您也需要具体说明您定义的策略。关键字(ImplicitMeta 策略定义器)ANY、ALL 和 MAJORITY 定义了满足策略所需的签名数。例如,如果您想在已经运行的网络中将组织添加到您的频道,您将需要来自管理员的 几个 签名(在您引用的链接中定义为来自 SampleOrg 的管理员身份)。这些 few 签名的数量取决于在网络引导时选择此关键字,如果您使用 ANY ,即使是单个签名也可以完成您的工作,而 MAJORITY 需要来自大多数指定现有的签名身份和 ALL 将需要所有所需现有身份的签名。未能获得所需数量的签名将使策略不满意,因此此操作/事务将不会成功。

    在上面的例子中,我们试图在通道级别进行更改,我们也可以在 orderer 级别进行更改,因此我们对访问控制有单独的策略。您可以通过官方文档对此有更清晰的认识:Here

    【讨论】:

    • 好的,如果我设置 event/Block: /Channel/Application/MyPolicy 其中 MyPolicy 指的是“MAJORITY admins”怎么办?我认为这是某种荒谬。或者有可能吗?那会发生什么?
    • 你知道面料有点晦涩。但据我了解,这应该有效。首先,您将描述究竟是什么“管理员”策略,然后您将描述另一个名为 MyPolicy 的策略,它只不过是使用“管理员”策略定义的 ImplicitMeta 策略。
    【解决方案2】:

    编写 ACL 策略以引用通道配置中的策略。通道/应用程序路径是配置的一部分。语法有点晦涩,但是 channel/application/readers 是指允许 channel 上的 reader 访问受策略管理的资源,而 channel/application/writers 将资源限制为 channel 上的 writer。

    您可以在此处了解有关 ACL 及其语法的更多信息:https://hyperledger-fabric.readthedocs.io/en/latest/access_control.html

    【讨论】:

    • 但是 channel 和 org、orderer 策略有什么区别?例如,当我在频道部分指定“MAJORITY admins”、在频道部分指定“ANY members”和在 org 部分指定“ANY admins”时会发生什么?作为应用程序开发人员,在这种情况下会发生什么变化?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    • 2023-04-01
    • 2023-03-12
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多