我最近开始尝试掌握Hyperledger作曲家的概念。
根据我的理解,Hyperledger Composer只是Hyperledger面料顶部的一层,目的是简化事情的完成方式。当我试图理解参与者(作曲家术语)和同行(面料术语)之间的区别时,这种困惑就出现了。根据前者的定义,我了解参与者是具有用户界面并通过REST API与区块链交互的区块链网络的某种客户(例如汽车制造商,购车者)。另一方面,同行是网络中的实际节点。从直觉上讲,这些概念似乎是彼此相关的,因为组织(参与者)需要在网络中与网络中的每个节点(peer)联系,在该网络中,该同伴在网络中具有特定的读取/写入权。
在他们的示例网络中,他们使用默认网络配置(crypto-config.yaml
),其中定义了单个对等。但是,我被允许创建不同类型的参与者,在网络中只有一个同行。此外,为整个网络生成了单个REST API。
对于两个政党的网络(例如,汽车制造商和汽车质量 - 合作者)对于我来说,有2个参与者(带有UI的客户),2个同行(一个具有阅读/写入权利和1个)是有意义的具有仅阅读权利)和2个REST API(一个用于汽车制造商,另一个用于Car-Qa-Guy)。但是,这似乎不是作曲家的工作方式。
1)我是否理解不同类型的参与者需要在网络中有自己的同行?
2)为什么他们生成一个单个REST API,包括网络中每个参与者而不是多个参与者的方法,以便可以由具有不同权利的不同客户使用?
首先回答您的问题:
1)您的描述
我了解参与者是具有用户界面并通过REST API与区块链交互的区块链网络(例如汽车制造商,购车者)的某种客户。另一方面,同行是网络中的实际节点。
确实是正确的,这就是我在多个项目中使用作曲家超过半年后理解的方式。但是,
的陈述不同类型的参与者需要在网络中拥有自己的同行
不是完全正确的。正如您所说的那样,作曲家是织物的抽象,旨在简化织物上的原型开发。结果,织物中的某些细微差别丢失了。例如,如果您想支持多个频道(从织物意义上)运行作曲家,那将是非常复杂的。
在参与者的情况下 vs peers ,它们是完全不同的,几乎没有关系。 peers 属于织物世界,它们负责运行织物区块链基础架构。在基本教程(对于作曲家中也使用的结构)中,您在整个 Fabric网络中只有一个同行。运行A Fabric网络运行后,您可以使用Composer来建模和部署业务网络,但您希望。注意织物网络和业务网络之间的区别。织物网络是指使用织物构建的基础区块链基础架构,而 Business Network 是由作曲家构建的模型。参与者生活在使用作曲家建模和部署的业务网络中,而 peers 是运行区块链基础架构的骨干。因此,两者之间的关系很小,因为没有 peers ,您根本就无法拥有任何业务网络。但是,一旦您运行网络,参与者几乎完全独立于织物 peers 。
2)您最有可能生成一个REST API,因为本教程的措辞是这样。如果您仍然记得,当您提出REST API时,则需要指定商务网卡。因此,商务网卡的每个所有者都可以运行自己的REST API。实际上,您将为业务网络中的每位参与者签发身份和业务网卡。每个参与者将拥有建模业务网络时创建的访问控件授予的不同权限(请回想这些访问控件以ACL编写)。因此,即使每个参与者和每个REST API都可以看到所有可用的方法,但他们也无法调用他们不应该调用的方法。当然,您必须在ACL中正确建模访问控制策略。
这是我对作曲家的一些想法。
Hyperledger作曲家只是HyperLeDger织物顶部的一层,目的是简化事情的完成方式。
这确实是正确的,但可惜他们会放弃对作曲家的支持。(请参阅作者的此更新)因此,建议制作软件不应在作曲家上运行。但是,我个人发现使用作曲家创建原型(使用NICE UI)非常容易快捷,我个人仍会继续将其用于原型,尽管它的弃用仅仅是因为它非常易于使用并且没有主要问题。