我对HLF用例的部署有一些问题。假设我们建立了一个用户销售商品的平台。用户及其项目通过链代码存储在分类账上。其目的还在于通过链代码对项目实施访问控制,这样其他用户就看不到特定的项目。那么关于整个身份管理的2个选项是:
-
用户在Fabric中没有证书,用户进行的所有事务都会转发给与链代码交互的单个注册客户端。因此,事务上下文将始终具有该客户端的ID。因此,从我的角度来看,用户名应始终传递给每个事务,并使用该用户名实现访问控制,尽管注册的客户端对其数据拥有完全权限。
-
每个用户都已注册和注册,并拥有自己的身份。每个用户都通过链码直接在区块链上进行交易,使用存根可以轻松实现访问控制。ID((和其他属性。这意味着>10万用户将在一个CA或多个CA上注册。
问题是:
-
HLF是否适用于第二种选择,还是仅用于组织客户之间的互动?
-
有没有最好的方法来处理这件事?
分类账存储导致对象当前状态的交易历史的事实。历史记录还存储负责对象当前状态的用户。如果对象的状态正在更改,则组织的管理员/授权用户必须能够查看是谁执行了该更改。
在第一种方法中,如果你想看到用户进行";交易";,你必须把它存储在不同于区块链的地方。虽然这可能是您项目的一个用例,但它违背了存储对象事务历史记录的所有事实的目的,因为每次都是同一用户在做事务。
第二种方法实现了将区块链纳入项目的所有动机。当然,您必须注册并注册每个创建/修改资产的用户,但访问控制管理可以用更好的方式完成。请阅读有关ACL的信息,了解您可以在Hyperledger Fabric中实现的细粒度访问。
此外,您还可以使用ASN.1 在x509证书中对用户的一些信息进行编码
第二个选项更可取,Hyperledger Fabric ca可以处理大量用户注册。还有属性访问控制,您可以在链代码级别使用它来控制使用访问。https://www.youtube.com/watch?v=CAXRMJ-quhg