用于创建Hyperledger Composer解决方案的开发人员教程

用于创建Hyperledger Composer解决方案的开发人员教程

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

本教程概述了可应用于您自己的用例的技术和资源。

注意:本教程是针对在Hyperledger Fabric v1.2上运行的Ubuntu Linux上构建的最新Hyperledger Composer编写的,其中引用了下面的内容并测试了Mac环境。

先决条件

在开始本教程之前:

第一步:创建业务网络结构

Hyperledger Composer的关键概念是业务网络定义(BND)。它定义了区块链解决方案的数据模型,事务逻辑和访问控制规则。要创建BND,我们需要在磁盘上创建合适的项目结构。

最简单的入门方法是使用Yeoman生成器创建骨架业务网络。这将创建一个包含业务网络的所有组件的目录。

  1. 使用Yeoman创建骨架业务网络。此命令将需要业务网络名称,描述,作者姓名,作者电子邮件地址,许可证选择和命名空间。

     

    复制
    yo hyperledger-composer:businessnetwork
    

     

  2. 输入 tutorial-network 用于网络名称,以及描述,作者姓名和作者电子邮件的所需信息。

  3. 选择 Apache-2.0 作为许可证。

  4. 选择 org.example.mynetwork 作为命名空间。

  5. 选择 No 当被问及是否生成空网络时。

第二步:定义业务网络

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

建模资产,参与者和交易

要更新的第一个文档是model(.cto)文件。此文件使用Hyperledger Composer建模语言编写。模型文件包含每类资产,事务,参与者和事件的定义。它隐含地扩展了建模语言文档中描述的Hyperledger Composer系统模型。

  1. 打开 org.example.mynetwork.cto 模型文件。

  2. 用以下内容替换内容:

     

    复制
    /**
     * 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
    }
    

     

  3. 保存您的更改org.example.mynetwork.cto

添加JavaScript事务逻辑

在模型文件中,Trade定义了一个事务,指定了与资产和参与者的关系。事务处理器函数文件包含用于执行模型文件中定义的事务的JavaScript逻辑。

Trade交易旨在简单地接受Commodity正在交易的资产的标识符,以及Trader要设置为新所有者的参与者的标识符。

  1. 打开 logic.js 脚本文件。

  2. 用以下内容替换内容:

     

    复制
    /**
     * 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);
    }
    

     

  3. 保存您的更改logic.js

添加访问控制

  1. 替换文件中的以下访问控制规则 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
    }
    

     

  2. 保存您的更改permissions.acl

第三步:生成业务网络存档

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

  1. 使用命令行,导航到 tutorial-network 目录。

  2. tutorial-network目录中,运行以下命令:

     

    复制
    composer archive create -t dir -n .
    

     

运行该命令后,将tutorial-network@0.0.1.bnatutorial-network目录中创建一个名为的业务网络存档文件。

第四步:部署业务网络

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

安装业务网络后,即可启动网络。为获得最佳实践,应创建新标识以在部署后管理业务网络。此身份称为网络管理员。

检索正确的凭据

一个PeerAdmin有正确的凭据业务网络卡已为开发环境安装的一部分创建的。

部署业务网络

将业务网络部署到Hyperledger Fabric需要将Hyperledger Composer业务网络安装在对等方,然后可以启动业务网络,并且必须创建新的参与者,身份和关联的卡作为网络管理员。最后,必须导入网络管理员业务网卡才能使用,然后可以ping通网络以检查它是否正在响应。

  1. 要安装业务网络,请从tutorial-network目录中运行以下命令:

     

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

     

    composer network install命令需要PeerAdmin业务网卡(在这种情况下,一个已经预先创建并导入),以及.bna定义业务网络的文件路径。

  2. 要启动业务网络,请运行以下命令:

     

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

     

    composer network start命令需要业务网卡,以及业务网络的管理员标识的名称,业务网络的名称和版本以及要创建的文件的名称,可以作为业务网卡导入。

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

     

    复制
    composer card import --file networkadmin.card
    

     

    composer card import命令需要指定的文件名composer network start才能创建卡。

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

     

    复制
    composer network ping --card admin@tutorial-network
    

     

composer network ping命令需要业务网卡来识别要ping的网络。

第五步:生成REST服务器

Hyperledger Composer可以基于业务网络生成定制的REST API。为了开发Web应用程序,REST API提供了一个有用的语言中立抽象层。

  1. 要创建REST API,请导航到 tutorial-network 目录并运行以下命令:

     

    复制
    composer-rest-server
    

     

  2. 输入 admin@tutorial-network 作为卡名。

  3. 选择 决不当被问及是否在生成的API中使用名称空间时,请使用名称空间。

  4. 选择 没有 当被问及是否保护生成的API时。

  5. 选择  当被问及是否启用事件发布时。

  6. 选择 没有 当被问及是否启用TLS安全性时。

生成的API连接到已部署的区块链和业务网络。

第六步:生成骨架角度应用程序

Hyperledger Composer还可以生成针对REST API运行的Angular 4应用程序。

  1. 要创建Angular 4应用程序,请导航至 tutorial-network 目录并运行以下命令:

     

    复制
    yo hyperledger-composer:angular
    

     

  2. 选择  当被要求连接到运行的业务网络时。

  3. 输入标准package.json问题(项目名称,描述,作者姓名,作者电子邮件,许可证)

  4. 输入 admin@tutorial-network 用于商业网卡。

  5. 选择“ 连接到现有REST API”

  6. 输入 http://localhost 用于REST服务器地址。

  7. 输入 3000 用于服务器端口。

  8. 不使用选择命名空间

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

注意:Yo Angular应用程序生成器旨在基于简单和基本的业务网络模型定义(例如trade-network此处的网络模型)生成框架Web应用程序。在Writing Web Applications中查看更多Angular生成器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值