十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍了hyperledger composer开发的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
目前创新互联已为成百上千家的企业提供了网站建设、域名、网页空间、绵阳服务器托管、企业网站设计、东安网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
将引导您从头开始构建Hyperledger Composer区块链解决方案。在几个小时的时间内,您将能够从破坏性区块链创新的想法转变为针对真正的Hyperledger Fabric区块链网络执行交易,并生成/运行与区块链网络交互的示例Angular 2应用程序。
1.1 最简单的入门方法是使用Yeoman生成器创建骨架业务网络。这将创建一个包含业务网络的所有组件的目录,使用Yeoman创建一个骨架业务网络。此命令将需要业务网络名称,说明,作者姓名,作者电子邮件地址,许可证选择和命名空间
yo hyperledger-composer:businessnetwork
1.2 输入 tutorial-network
网络名称以及所需的描述信息,作者姓名和作者电子邮件。描述,姓名,邮件随便写。
1.3 选择 Apache-2.0
作为许可证
1.4 选择 org.example.mynetwork
作为命名空间
1.5 选择 No
当被问及是否生成一个空网络时。
业务网络由资产,参与者,交易,访问控制规则以及可选的事件和查询组成。在前面步骤中创建的骨架业务网络中,有一个model(.cto
)文件,其中将包含业务网络中所有资产,参与者和事务的类定义。骨架业务网络还包含permissions.acl
具有基本访问控制规则的访问控制()文档,logic.js
包含事务处理器功能的脚本()文件以及package.json
包含业务网络元数据的文件。
将前两篇博客讲到的工具使用下,导入刚刚的项目文件,然后修改它的配置文件
2.1 打开 org.example.mynetwork.cto
模型文件,并替换成以下内容,最后保存
/** * My commodity trading network */ namespace org.example.mynetwork asset Commodity identified by tradingSymbol { o String tradingSymbol o String description o String mainExchange o Double quantity --> Trader owner } participant Trader identified by tradeId { o String tradeId o String firstName o String lastName } transaction Trade { --> Commodity commodity --> Trader newOwner }
2.2 在模型文件中,Trade
定义了事务,指定与资产和参与者的关系。事务处理函数文件包含执行模型文件中定义的事务的JavaScript逻辑。该Trade
交易旨在简单地接受Commodity
正在交易的资产的标识符以及Trader
要设置为新所有者的参与者的标识符。
打开 logic.js
脚本文件,替换以下内容,最后保存
/** * Track the trade of a commodity from one trader to another * @param {org.example.mynetwork.Trade} trade - the trade to be processed * @transaction */ async function tradeCommodity(trade) { trade.commodity.owner = trade.newOwner; let assetRegistry = await getAssetRegistry('org.example.mynetwork.Commodity'); await assetRegistry.update(trade.commodity); }
2.3 添加访问控制,替换文件中的以下访问控制规则 permissions.acl
/** * Access control rules for tutorial-network */ rule Default { description: "Allow all participants access to all resources" participant: "ANY" operation: ALL resource: "org.example.mynetwork.*" action: ALLOW } rule SystemACL { description: "System ACL to permit all access" participant: "ANY" operation: ALL resource: "org.hyperledger.composer.system.**" action: ALLOW }
现在已经定义了业务网络,它必须打包到可部署的业务网络存档(.bna
)文件中
3.1 使用命令行,导航到 tutorial-network
目录,从tutorial-network
目录中运行以下命令
composer archive create -t dir -n .
该命令运行后,tutorial-network@0.0.1.bna
在该tutorial-network
目录中创建了一个调用的业务网络存档文件。
创建.bna
文件后,业务网络可以部署到Hyperledger Fabric实例。通常情况下,来自Fabric管理员的信息需要创建一个PeerAdmin
身份,具有将链接代码安装到对等体的权限以及在composerchannel
通道上启动链接代码的权限。但是,作为开发环境安装的一部分,PeerAdmin
已经创建了一个身份
4.1 要从目录安装业务网络tutorial-network
composer network install --card PeerAdmin@hlfv1 --archiveFile tutorial-network@0.0.1.bna
4.2 要启动业务网络
composer network start --networkName tutorial-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkadmin.card
4.3 要将网络管理员标识导入为可用的业务网卡,请运行以下命令
composer card import --file networkadmin.card
4.4 要检查业务网络是否已成功部署,请运行以下命令以ping网络
composer network ping --card admin@tutorial-network
Hyperledger Composer可以基于业务网络生成定制的REST API。为了开发Web应用程序,REST API提供了一个有用的语言无关抽象层
5.1 要创建REST API,请导航到 tutorial-network
目录并运行以下命令:
composer-rest-server
5.2 输入 admin@tutorial-network
作为名片
5.3 选择 决不询问是否在生成的API中使用名称空间时使用名称空间。
5.4 选择 没有 当被问及是否保护生成的API
5.5 选择 是 当被问及是否启用事件发布时。
5.6 选择 没有 当被问及是否启用TLS安全。
访问路径
Hyperledger Composer还可以生成针对REST API运行的Angular 4应用程序
6.1 要创建您的Angular 4应用程序,请导航至 tutorial-network
目录并运行以下命令:
yo hyperledger-composer:angular
6.2 选择 是 当被要求连接到运行业务网络时
6.3 输入标准package.json
问题(项目名称,说明,作者姓名,作者电子邮件,许可证)
6.4 输入 admin@tutorial-network
为商业网卡
6.5 选择连接到现有的REST API
6.6 输入 http://localhost
为REST服务器地址。
6.7 输入 3000
用于服务器端口。
6.8 选择名称空间不被使用
如图:
6.9 然后,Angular generator将为该项目创建脚手架并安装所有依赖项。要运行该应用程序,请导航到您的角度项目目录并运行 npm start
。这将引发一个针对您的REST API运行的Angular 4应用程序 http://localhost:4200
在这个目录下,angular-app
$ cd ../angular-app
$ npm start
执行成功:
访问页面,如图:
感谢你能够认真阅读完这篇文章,希望小编分享的“hyperledger composer开发的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!