温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

hyperledger composer开发的示例分析

发布时间:2021-12-06 15:15:01 来源:亿速云 阅读:200 作者:小新 栏目:互联网科技

这篇文章主要介绍了hyperledger composer开发的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

将引导您从头开始构建Hyperledger Composer区块链解决方案。在几个小时的时间内,您将能够从破坏性区块链创新的想法转变为针对真正的Hyperledger Fabric区块链网络执行交易,并生成/运行与区块链网络交互的示例Angular 2应用程序。

1、创建业务网络结构

    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 当被问及是否生成一个空网络时。

2、定义一个商业网络

    业务网络由资产,参与者,交易,访问控制规则以及可选的事件和查询组成。在前面步骤中创建的骨架业务网络中,有一个model(.cto)文件,其中将包含业务网络中所有资产,参与者和事务的类定义。骨架业务网络还包含permissions.acl具有基本访问控制规则的访问控制()文档,logic.js包含事务处理器功能的脚本()文件以及package.json包含业务网络元数据的文件。

    将前两篇博客讲到的工具使用下,导入刚刚的项目文件,然后修改它的配置文件

hyperledger composer开发的示例分析

    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
}

3、生成业务网络存档

    现在已经定义了业务网络,它必须打包到可部署的业务网络存档(.bna)文件中

    3.1 使用命令行,导航到 tutorial-network 目录,从tutorial-network目录中运行以下命令

composer archive create -t dir -n .

该命令运行后,tutorial-network@0.0.1.bna在该tutorial-network目录中创建了一个调用的业务网络存档文件。

4、部署业务网络  

    创建.bna文件后,业务网络可以部署到Hyperledger Fabric实例。通常情况下,来自Fabric管理员的信息需要创建一个PeerAdmin身份,具有将链接代码安装到对等体的权限以及在composerchannel通道上启动链接代码的权限。但是,作为开发环境安装的一部分,PeerAdmin已经创建了一个身份

    4.1 要从目录安装业务网络tutorial-network

composer network install --card PeerAdmin@hlfv1 --archiveFile tutorial-network@0.0.1.bna

hyperledger composer开发的示例分析

    4.2  要启动业务网络

composer network start --networkName tutorial-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkadmin.card

hyperledger composer开发的示例分析

    4.3 要将网络管理员标识导入为可用的业务网卡,请运行以下命令

composer card import --file networkadmin.card

hyperledger composer开发的示例分析

    4.4 要检查业务网络是否已成功部署,请运行以下命令以ping网络

composer network ping --card admin@tutorial-network

hyperledger composer开发的示例分析 

5、生成REST服务器

    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开发的示例分析

6、生成一个应用程序

    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 选择名称空间不被使用

    如图:

hyperledger composer开发的示例分析

    6.9 然后,Angular generator将为该项目创建脚手架并安装所有依赖项。要运行该应用程序,请导航到您的角度项目目录并运行 npm start 。这将引发一个针对您的REST API运行的Angular 4应用程序 http://localhost:4200 

    在这个目录下,angular-app

    $ cd ../angular-app

    $ npm start

执行成功:

hyperledger composer开发的示例分析

访问页面,如图:

hyperledger composer开发的示例分析

感谢你能够认真阅读完这篇文章,希望小编分享的“hyperledger composer开发的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI