我最近开始尝试掌握Hyperledger Composer的概念。
基于我的了解,Hyperledger Composer只是Hyperledger Fabric之上的一层,目的是简化工作方式。 当我试图了解参与者(撰写者用语)和同伴(织物用语)之间的区别时,就产生了困惑。根据前者的定义,我知道参与者是区块链网络的某种客户端(例如汽车制造商,汽车购买者),这些客户端具有用户界面并通过REST API与区块链进行交互。另一方面,对等是网络中的实际节点。从直觉上讲,这些概念似乎相互关联,因为组织(参与者)需要联系网络中每个自己的节点(对等方),而该对等方在网络中具有特定的读/写权限。
在示例网络中,他们使用默认的网络配置(crypto-config.yaml
),其中定义了(例如)单个对等方。但是,我只能在网络中只有一个对等方来创建不同类型的参与者。而且,将为整个网络生成一个REST api。
对于由两方组成的网络(例如汽车制造商和汽车质量保证联盟),我有2位参与者(具有ui的客户端),2个同行(具有读/写权限和一个具有只读权限)和2个REST API(一个用于汽车制造商,一个用于car-qa-guy)。但是,这似乎并不是Composer的工作方式。
1)我的理解是,不同类型的参与者需要在网络中拥有自己的同伴吗?
2)为什么它们会生成一个REST api,而不是为网络中的每个参与者提供方法,而只包含多个方法,以便具有不同权限的不同客户端可以使用它们?
答案 0 :(得分:1)
首先要回答您的问题:
1)您的描述
我了解参与者是区块链网络的某种客户端(例如汽车制造商,购车者),它们具有用户界面并通过REST API与区块链进行交互。另一方面,对等是网络中的实际节点。
确实是正确的,这就是我在多个项目中使用Composer半年以上后的理解方式。但是,声明
不同类型的参与者需要在网络中拥有自己的同伴
不太正确。正确地说,Composer是Fabric的抽象,旨在简化显着上的原型开发。结果,丢失了Fabric中的某些细微差别。例如,如果要运行支持多个通道(在Fabric的意义上)的Composer,这将非常复杂。
对于参与者与同伴,它们是完全不同的,彼此之间几乎没有关系。对等人属于Fabric世界,他们负责运行Fabric区块链基础架构。在基础教程(针对Composer中也使用的Fabric)中,您在整个 Fabric网络中只有一个对等体。一旦运行了 Fabric网络,就可以使用Composer随意建模和部署业务网络。注意 Fabric网络和业务网络之间的区别。 Fabric网络是指使用Fabric构建的底层区块链基础架构,而 business network 是使用Composer构建的模型。 参与者生活在使用Composer建模和部署的业务网络中,而 peers 是运行区块链基础架构的骨干。因此,这两者之间的关联性很弱,因为没有 peers ,您根本无法拥有任何业务网络。但是,一旦网络运行起来,参与者几乎就完全独立于Fabric peers 。
2)您最有可能生成了一个REST API,因为本教程的措辞是这样的。如果您还记得,当您打开REST API时,您需要指定一张商务网卡。因此,商务网卡的每个所有者都可以很好地运行自己的REST API。实际上,您将为企业网络中的每个参与者颁发身份和企业网卡。每个参与者将具有在对业务网络进行建模时所创建的访问控制所授予的不同权限(请记住,这些访问控制是用ACL编写的)。因此,即使每个参与者和每个REST API都可以看到所有可用的方法,但它们无法调用不应被调用的方法。当然,您必须在ACL中正确建模访问控制策略。
这是我对Composer的一些想法。
Hyperledger Composer只是Hyperledger Fabric之上的一层,目的是简化工作方式。
确实如此,但是很遗憾他们将放弃对Composer的支持。 (请参见作者的this update)因此,建议不要在Composer上运行生产软件。但是,我个人觉得使用Composer创建原型(使用漂亮的UI)极其容易和快捷,尽管它被弃用了,但我个人仍然会继续将其用于原型,这是因为它非常易于使用并且没有重大问题。