您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。