热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

HyperledgerComposer环境安装1.安装基本软件包**如果使用Linux安装HyperledgerComposer,请注意以下建议:以

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.shchmod u+x prereqs-ubuntu.sh

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


Copy复制

./prereqs-ubuntu.sh



2.安装组件



第1步:安装CLI工具

Composer开发人员有几个有用的CLI工具。最重要的是composer-cli,它包含了所有必要的操作,所以我们会先安装它。接下来,我们也会拿起generator-hyperledger-composer,composer-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-serverscurl -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 tradingSymbolo String descriptiono String mainExchangeo Double quantity--> Trader owner
    }
    participant Trader identified by tradeId {o String tradeIdo String firstNameo 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: ALLresource: "org.example.mynetwork.*"action: ALLOW
    }rule SystemACL {description: "System ACL to permit all access"participant: "ANY"operation: ALLresource: "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)。你会看到类似这样的屏幕。






推荐阅读
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • Imdevelopinganappwhichneedstogetmusicfilebystreamingforplayinglive.我正在开发一个应用程序,需要通过流 ... [详细]
  • SAP接口编程PyRFC 调用 BAPI_FIXEDASSET_CREATE1创建固定资产
    本篇演示通过PyRFC调用BAPI_FIXEDASSET_CREATE1在SAP系统中创建固定资产,再一次体验一下Python与其它语言相比的简洁性。首先简单说明B ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 必须先赞下国人npm库作品:node-images(https:github.comzhangyuanweinode-images),封装了跨平台的C++逻辑,形成nodejsAP ... [详细]
  • 技术周报·2021-05-07-小编推荐向现代Javascript转型原文标题:Publish,ship,andinstallmodernJavaScriptforfaste ... [详细]
  • 程度|也就是_论文精读:Neural Architecture Search without Training
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了论文精读:NeuralArchitectureSearchwithoutTraining相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Spring Boot基础教程 ( 五 ) :构建 RESTful API 与单元测试
    首先,回顾并详细说明一下在下面我们尝试使用SpringMVC来实现一组对User对象操作的RESTf ... [详细]
author-avatar
江游弈一个
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有