区块链Hyperledger Composer 环境安装 一(整理版)

Hyperledger Composer 环境安装

1. 安装基本软件包


**如果使用Linux安装Hyperledger Composer,请注意以下建议:

  • 以普通用户身份登录,而不是root用户。否则后续有很多问题
  • 不要su根。
  • 安装先决条件时,使用curl,然后使用sudo进行解压缩。
  • 以普通用户身份运行prereqs-ubuntu.sh。它可能会提示输入root密码,因为它的某些操作需要以root身份运行。
  • 不要使用npm sudosuroot来使用它。
  • 避免以root身份全局安装节点。**

如果您在Ubuntu上运行,则可以使用以下命令下载先决条件:

如果您在Ubuntu上运行,则可以使用以下命令下载先决条件:

Copy 复制
curl -O https://hyperledger.github.io/composer/latest/prereqs-ubuntu.sh

chmod u+x prereqs-ubuntu.sh

接下来运行脚本 - 因为这个脚本在执行过程中使用了sudo,所以会提示您输入密码。

Copy 复制
./prereqs-ubuntu.sh

2.安装组件

第1步:安装CLI工具

Composer开发人员有几个有用的CLI工具。最重要的是composer-cli,它包含了所有必要的操作,所以我们会先安装它。接下来,我们也会拿起generator-hyperledger-composercomposer-rest-serverYeoman加上generator-hyperledger-composer最后3个不是开发环境的核心部分,但如果您遵循教程或开发与您的商业网络交互的应用程序,它们将非常有用,因此我们现在会安装它们。

请注意,您不应该使用susudo为以下npm命令。

  1. 基本的CLI工具:

    Copy 复制
    npm install -g composer-cli
    
  2. 在您的计算机上运行REST服务器以将您的业务网络公开为RESTful API的实用程序:

    Copy 复制
    npm install -g composer-rest-server
    
  3. 生成应用程序资产的有用工具:

    Copy 复制
    npm install -g generator-hyperledger-composer
    
  4. Yeoman是一种产生应用程序的工具,它利用generator-hyperledger-composer

    Copy 复制
    npm install -g yo
    

第2步:安装游乐场

如果您已经在线尝试了Composer,则会看到浏览器应用程序“Playground”。您也可以在您的开发机器上本地运行此功能,为您提供查看和演示业务网络的用户界面。

  1. 用于简单编辑和测试的浏览器应用商业网络:

    Copy 复制
    npm install -g composer-playground
    

第3步:设置您的IDE

虽然浏览器应用程序用于处理商业网络代码,但大多数用户更喜欢在IDE中工作。我们最喜欢的是VSCode,因为Composer扩展可用。

  1. 从此URL安装VSCode:https://code.visualstudio.com/download

  2. 打开VSCode,进入扩展,然后Hyperledger Composer从市场中搜索并安装扩展。

步骤4:安装超级结构结构

此步骤为您提供本地Hyperledger Fabric运行时来部署您的业务网络。

  1. 在您选择的目录中(我们将假设~/fabric-dev-servers),获取.tar.gz包含安装Hyperledger Fabric的工具文件:

    Copy 复制
    mkdir ~/fabric-dev-servers && cd ~/fabric-dev-servers
    
    curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz
    tar -xvf fabric-dev-servers.tar.gz
    

    zip如果您愿意,也可以使用A :只需使用上面的代码片段中命令替换.tar.gz文件fabric-dev-servers.ziptar -xvf使用该unzip命令即可。

  2. 使用刚刚下载并解压缩的脚本下载本地Hyperledger Fabric运行时:

    Copy 复制
    cd ~/fabric-dev-servers
    ./downloadFabric.sh
    

恭喜,您现在已经安装了典型开发环境所需的一切。请继续阅读以了解您在此环境中开展并测试区块链商业网络时最常见的一些事情。

控制你的开发环境

启动和停止Hyperledger结构

您可以使用一组脚本来控制运行时间,~/fabric-dev-servers如果您遵循了建议的默认值那么您将在其中找到这些脚本

第一次启动一个新的运行时,您需要运行启动脚本,然后生成一个PeerAdmin卡:

Copy 复制
    cd ~/fabric-dev-servers
    ./startFabric.sh
    ./createPeerAdminCard.sh

您可以使用启动和停止运行时~/fabric-dev-servers/stopFabric.sh,然后再次启动它~/fabric-dev-servers/startFabric.sh

在开发阶段结束时,你运行~/fabric-dev-servers/stopFabric.sh然后~/fabric-dev-servers/teardownFabric.sh请注意,如果您已经运行了拆卸脚本,那么下次启动运行时,就需要像第一次启动时那样创建一个新的PeerAdmin卡。

本地运行时旨在频繁启动,停止和拆除,以供开发使用。如果您正在寻找具有更持久状态的运行时,则需要在开发环境外部运行一个运行时环境,并将业务网络部署到该环境。这方面的例子包括通过Kubernetes运行它,或者在诸如IBM Cloud之类的托管平台上运行它。

启动网络应用程序(“Playground”)

要启动Web应用程序,请运行:

Copy 复制
    composer-playground

它通常会自动打开您的浏览器,地址如下:http:// localhost:8080 / login

您应该在Web应用程序的“我的商业网络”屏幕上看到PeerAdmin@hlfv1您使用该createPeerAdminCard脚本创建卡片:如果您没有看到该卡片,则可能没有正确启动您的运行时间!

恭喜你,所有组件都在运行,并且在完成开发会话时,你也知道如何停下来并拆除它们。

3.更新开发环境

如果您已经安装了Hyperledger Composer开发工具,并且希望将安装更新到最新版本的Hyperledger Composer,请按照这些说明进行操作。

更新组件

第1步:更新CLI工具

任何正在运行的CLI工具实例都应该在继续之前停止。如果您有任何正在运行的Composer REST服务器实例,请确保这些实例在继续之前停止。composer-rest-server如果您不确定是否有任何正在运行的实例,则可以查找该进程

  1. 卸载所有CLI工具的当前安装版本:

    Copy 复制
    npm uninstall -g composer-cli composer-rest-server generator-hyperledger-composer
    
  2. 安装所有CLI工具的最新版本:

    Copy 复制
    npm install -g composer-cli composer-rest-server generator-hyperledger-composer
    

第2步:更新Playground

如果您在开发机器上安装了浏览器应用程序“Playground”,则还需要进行更新。如果您有任何正在运行的浏览器应用程序实例,请确保在继续之前停止这些实例。composer-playground如果您不确定是否有任何正在运行的实例,则可以查找该进程

  1. 卸载当前安装的浏览器应用程序版本:

    Copy 复制
    npm uninstall -g composer-playground
    
  2. 安装最新版本的浏览器应用程序:

    Copy 复制
    npm install -g composer-playground
    

恭喜,您已经使用最新版本的开发工具更新了您的开发环境。您现在可以继续使用最新功能和错误修复来开发您的区块链应用程序!






4. 卸载组件(不需要重新安装跳过这一步)

第1步:卸载CLI工具

任何正在运行的CLI工具实例都应该在继续之前停止。如果您有任何正在运行的Composer REST服务器实例,请确保这些实例在继续之前停止。composer-rest-server如果您不确定是否有任何正在运行的实例,则可以查找该进程

  1. 卸载所有CLI工具的当前安装版本:

    Copy 复制
    npm uninstall -g composer-cli composer-rest-server generator-hyperledger-composer
    

第2步:卸载Playground

如果您在开发计算机上安装了浏览器应用程序“Playground”,则还需要卸载此应用程序。如果您有任何正在运行的浏览器应用程序实例,请确保在继续之前停止这些实例。composer-playground如果您不确定是否有任何正在运行的实例,则可以查找该进程

  1. 卸载当前安装的浏览器应用程序版本:

    Copy 复制
    npm uninstall -g composer-playground
    

第3步:删除业务网卡存储

商业网卡存储在商业网络卡商店中,默认情况下它是当前用户主目录中的一个目录。删除此目录以删除所有业务网卡。要注意的是,这也将删除存储在商业网络存储卡中的所有身份(公共证书和私钥),因此您可能希望在继续之前对其进行备份!

  1. 删除商业网络卡商店:

    Copy 复制
    rm -rf ~/.composer
    

步骤4:卸载Hyperledger Fabric

您可以使用一组脚本来控制本地Hyperledger Fabric运行时,~/fabric-dev-servers如果您遵循了建议的默认值,您将在其中找到这些脚本

  1. 停止本地Hyperledger Fabric运行时并删除任何运行时Docker容器或映像:

    Copy 复制
    ~/fabric-dev-servers/stopFabric.sh
    ~/fabric-dev-servers/teardownFabric.sh
    
  2. 卸载本地Hyperledger Fabric运行时:

    Copy 复制
    rm -rf ~/fabric-dev-servers
    

恭喜,你已经卸载了你的开发环境。要继续开发区块链应用程序,您需要从头开始安装开发工具。


5. 开发教程

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

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

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

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

    Copy 复制
    yo hyperledger-composer:businessnetwork
  2. 如果为root用户安装,此处可能会报错,设置如下
  3. sed -i -e '/rootCheck/d' "${NPM_CONFIG_PREFIX}/lib/node_modules/yo/lib/cli.js"
    export NPM_CONFIG_PREFIX=$(npm config get prefix) 
    
  4. 输入 tutorial-network 网络名称以及所需的描述信息,作者姓名和作者电子邮件。

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

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

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

第二步:定义一个商业网络

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

建模资产,参与者和交易

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

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

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

    Copy 复制
    /**
     * 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. 用以下内容替换内容:

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

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

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

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

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

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

    Copy 复制
    composer archive create -t dir -n .
    

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

第四步:部署业务网络

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

业务网络安装完成后,网络就可以启动。为了最佳实践,应该创建一个新的标识以在部署后管理业务网络。这个身份被称为网络管理员。

检索正确的凭证

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

部署业务网络

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

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

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

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

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

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

    composer network start命令需要企业网卡,以及业务网络的管理员身份名称,业务网络的名称和版本以及要创建的文件的名称,以准备将其导入为业务网卡。

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

    Copy 复制
    composer card import --file networkadmin.card
    

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

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

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

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

第五步:生成REST服务器

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

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

    Copy 复制
    composer-rest-server
    
  2. 输入 admin@tutorial-network 作为名片。

  3. 选择 决不询问是否在生成的API中使用名称空间时使用名称空间。

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

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

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

Enter the name of the business network card to use: admin@tutorial-network
Specify if you want namespaces in the generated REST API: never use namespaces
Specify if you want to use an API key to secure the REST API: No
Specify if you want to enable authentication for the REST API using Passport: No
Specify if you want to enable event publication over WebSockets: Yes
Specify if you want to enable TLS security for the REST API: No

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

第六步:生成一个应用程序

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

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

    Copy 复制
    yo hyperledger-composer:angular
    
  2. 选择 当被要求连接到运行业务网络时。

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

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

  5. 选择连接到现有的REST API

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

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

  8. 选择名称空间不被使用


npm install 可能会报错

npm ERR! Unexpected end of JSON input while parsing near '...m":">=3"},"_hasShrink'

设置淘宝镜像
npm config set registry https://registry.npm.taobao.org
npm cache clear --force
再npm install

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


查看生成的API

启动浏览器并转到给定的URL(http://0.0.0.0:3000/explorer)。你会看到类似这样的屏幕。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值