评估 Hyperledger Fabric 中的生产网络

问题描述

我对 HLF 用例的部署有一些疑问。假设我们建立了一个用户销售商品的平台。用户和他们的物品通过链码存储在分类账上。目的还在于通过链码对项目实施访问控制,以便其他用户无法看到特定项目。那么关于整个身份管理的 2 个选项是:

  1. 用户在 Fabric 中没有证书,用户进行的所有交易都被转发到与链码交互的单个注册客户端。因此,事务上下文将始终具有此客户端的 ID。因此,在我看来,用户名应该始终传递给每个交易并使用此用户名实施访问控制,尽管注册的客户对其数据拥有完全权限。

  2. 每个用户都已注册注册并拥有自己的身份。每个用户通过链码直接在区块链上进行交易,使用 stub.ID() 等属性可以轻松实现访问控制。这意味着超过 100k 用户将在一个 CA 或多个 CA 上注册

问题是:

  1. HLF 是否适用于第二个选项,还是仅用于组织客户之间的互动?

  2. 有没有最好的方法来处理这个问题?

解决方法

分类帐存储有关导致对象当前状态的交易历史的事实。历史记录还存储负责对象当前状态的用户。如果对象的状态正在更改,组织的管理员/授权用户必须能够看到谁执行了该更改。

在第一种方法中,如果您想查看进行“交易”的用户的详细信息,则必须将其存储在与区块链不同的地方。虽然这可能是您项目的一个用例,但它违背了每次同一用户进行交易时存储有关对象交易历史的所有事实的目的。

第二种方法满足了将区块链纳入项目的所有动机。当然,您必须注册和登记正在创建/修改资产的每个用户,但是访问控制管理可以以更好的方式完成。请阅读 ACL 以了解您可以在 Hyperledger Fabric 中实现的细粒度访问。

此外,您还可以使用 ASN.1 在其 x509 证书中对有关用户的一些信息进行编码

,

第二个选项更受欢迎,Hyperledger Fabric ca 可以处理用户注册数量。还可以使用属性访问控制,您可以在链码级别使用它来控制使用访问。 https://www.youtube.com/watch?v=CAXRMJ-quhg