您好,登录后才能下订单哦!
这篇文章给大家分享的是有关Hyperledger composer与其他网络互动的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
Hyperledger Composer包含的功能可供业务网络用于访问另一个业务网络中记录的资产,参与者或交易。
必须启动Hyperledger Fabric网络。您可以使用开发环境中提供的简单Hyperledger Fabric网络,也可以使用您通过遵循Hyperledger Fabric文档构建的自己的Hyperledger Fabric网络。
上一篇博客fabric-dev-servers 启动网络,用它简单的启动Hyperledger Fabric网络
1.1 运行以下命令启动一个干净的Hyperledger Fabric
cd ~/fabric-dev-servers ./stopFabric.sh ./teardownFabric.sh ./downloadFabric.sh ./startFabric.sh
1.2 删除您的钱包中可能存在的任何商业网络卡。忽略表示无法找到商业网卡的任何错误是安全的:
composer card delete -c PeerAdmin@hlfv1
1.3 如果这些命令失败,则表示有以前版本的业务网卡,将不得不删除文件系统卡存储。
rm -fr ~/.composer
1.4 通过运行以下命令来创建对等管理卡
./createPeerAdminCard.sh
2.1 按照第10篇博客的第一步和第二步。这将是网络A.
2.2 再次执行第一步和第二步,但创建一个名为业务网络other-tutorial-network
。这将是网络B.
2.3 交易逻辑需要在网络A中更新并且查询商业网络B中的资产,然后更新商业网络A中的资产的数量属性。
替换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;const otherNetworkData = await getNativeAPI().invokeChaincode('other-tutorial-network', ['getResourceInRegistry', 'Asset', 'org.example.mynetwork.Commodity', trade.commodity.tradingSymbol], 'composerchannel'); const stringAsset = new Buffer(otherNetworkData.payload.toArrayBuffer()).toString('utf8');const asset = getSerializer().fromJSON(JSON.parse(stringAsset));trade.commodity.quantity = asset.quantity;const assetRegistry = await getAssetRegistry('org.example.mynetwork.Commodity');await assetRegistry.update(trade.commodity);}
2.4 按照第10篇博客第三步。
3.1 使用以下命令安装并启动业务网络A.
composer network install --card PeerAdmin@hlfv1 --archiveFile tutorial-network@0.0.1.bna
composer network start --networkName tutorial-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkA.card
composer card import --file networkA.card --card networkA
3.2 使用以下命令安装并启动业务网络B.
composer network install --card PeerAdmin@hlfv1 --archiveFile other-tutorial-network@0.0.1.bna
composer network start --networkName other-tutorial-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkB.card
composer card import --file networkB.card --card networkB
3.3 要检查业务网络是否已成功部署,请运行以下命令以ping通业务网
composer network ping --card networkA composer network ping --card network
4.1 在业务网络A中创建一个参与者。运行以下命令
composer participant add --card networkA -d '{"$class": "org.example.mynetwork.Trader", "tradeId": "bob@example.com", "firstName": "Bob", "lastName": "Jones"}'
4.2 在业务网络A中创建资产
composer transaction submit --card networkA -d '{"$class": "org.hyperledger.composer.system.AddAsset","registryType": "Asset","registryId": "org.example.mynetwork.Commodity", "targetRegistry" : "resource:org.hyperledger.composer.system.AssetRegistry#org.example.mynetwork.Commodity", "resources": [{"$class": "org.example.mynetwork.Commodity","tradingSymbol": "Ag","owner": "resource:org.example.mynetwork.Trader#bob@example.com","description": "a lot of gold", "mainExchange": "exchange", "quantity" : 250}]}'
4.3 在业务网络B中创建一个参与者。运行以下命令
composer participant add --card networkB -d '{"$class": "org.example.mynetwork.Trader", "tradeId": "fred@example.com", "firstName": "Fred", "lastName": "Bloggs"}'
4.4 在业务网络B中创建资产。运行以下命令。请注意不同的数量属性。
composer transaction submit --card networkB -d '{"$class": "org.hyperledger.composer.system.AddAsset","registryType": "Asset","registryId": "org.example.mynetwork.Commodity", "targetRegistry" : "resource:org.hyperledger.composer.system.AssetRegistry#org.example.mynetwork.Commodity", "resources": [{"$class": "org.example.mynetwork.Commodity","tradingSymbol": "Ag","owner": "resource:org.example.mynetwork.Trader#fred@example.com","description": "a lot of gold", "mainExchange": "exchange", "quantity" : 500}]}'
5.1 导出网络卡以获取凭证
composer card export -c networkA
5.2 解压缩卡,您可能需要将networkA.card重命名为networkA.zip。
5.3 将身份绑定到参与者。运行以下命令。
composer identity bind --card networkB --participantId resource:org.hyperledger.composer.system.NetworkAdmin#admin --certificateFile ./networkA/credentials/certificate
5.4 导入卡
composer card create -p ~/.composer/cards/networkB/connection.json --businessNetworkName other-tutorial-network -u admin -c ./networkA/credentials/certificate -k ./networkA/credentials/privateKey -f newNetworkB.card
5.5 Ping网络以激活身份
composer card import --file newNetworkB.card --card newNetworkB
5.6 Ping网络以激活身份
composer network ping --card newNetworkB
6.1 查看资产以查看数量为250。
composer network list --card networkA -r org.example.mynetwork.Commodity -a Ag
7.1 提交交易以查看在不同的业务网络上查询资产的效果。请注意,只能查询NetworkB,并且数量不会更改。
composer transaction submit --card networkA -d '{"$class": "org.example.mynetwork.Trade", "commodity": "resource:org.example.mynetwork.Commodity#Ag", "newOwner": "resource:org.example.mynetwork.Trader#bobId"}'
8.1 查看更新资产以检查数量是否已正确更新至500。
composer network list --card networkA -r org.example.mynetwork.Commodity -a Ag
感谢各位的阅读!关于“Hyperledger composer与其他网络互动的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。