您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關HyperLedger如何實現鏈碼開發實例Commercial Paper的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
啟動測試網絡
cd fabric-samples/commercial-paper
./network-starter.sh
docker -ps
將用于查看本地計算機上運行的Fabric節點
docker newtwork inspect net_test
用來查看網絡
cd fabric-samples/commercial-paper/organization/magnetocorp
使用磁力公司下屬的monitoedocker.sh net_test <port_number>
來啟動logspout
, 并使用它監視與net_baisc
網絡關聯的docker容器.
檢查智能合約
const {Contract, Context} = require('fabric-contract-api')class CommercialPaperContract extends Contract{}async issue(ctx,issuer,paperNumber,issueDateTime,maturityDateTime)let paper = CommercialPaper..createInstance(issuer,paperNumber,issueDateTime...)await ctx.paperList.addPaper(paper)return paper
將智能合約部署到通道, 通道中的所有實體都可以使用鏈碼,因此必須要符合多方需求.
部署智能合約
設置環境變量以便于CLI與PaperNet進行交互source nagnetocorp.sh
.
peer lifecycle chaincode package cp.tar.gz --lang node --path ./contract --label cp_0
peer lifecycle chaincode install cp.tar.gz
peer lifecycle chaincode queryinstalled
查詢已安裝的鏈碼的ID
peer lifecycle chaincode approveformyorg --orderer localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name papercontract -v 0 --package-id $PACKAGE_ID --sequence 1 --tls --cafile $ORDERER_CA
請求背書策略認可
檢查SDK應用程序
const{Wallets, Gateway} = require('fabric-network') // 引入兩個關鍵類 Wallets 和GateWayconst wallet = await Wallets.newFileSystemWallet('../identity/user/isabella/wallet')//在錢包中選擇特定的標識, isabella的錢包在本地因此引入本地文件await gateway.connnect(connectionProfile, connectionOptions)const network = await gateway.getNetwork('mychannel')const contract = await network.getContract('papercontract')const issueResponse = await contract.submitTransaction('issue','MagnetCorp','00001')//提交回復表示調用智能合約中定義的交易issue,剩下兩個值表示創建新商業債券必不可少的參數let paper = CommercialPaper.fromBuffer(issueResponse)//處理從issue交易中的回復,回復需要緩沖池的反序列化.
npm isntall && node addToWallet.js
注冊完Isabella的身份之后就可以調用智能合約了.
安裝并批準智能合約到DigiBank接待你
只有大多數組織將鏈碼提交到通道,鏈碼才會被正式部署.
source digibank.sh
配置環境變量
peer lifecycle chaincode package cp.tar.gz --lang node --path ./contract --label cp_0
在DigiBank上安裝鏈碼
peer lifecycle chaincode install cp.tar.gz
在對等實體上安裝鏈代碼
export PACKAGE_ID = $(peer lifecycle chaincode queryinstalled)
配置鏈碼ID的環境變量
peer lifecycle chaincode approveformyorg --orderer localhost:7050 --ordererTLSHostnameOverride orderer.example.com --channelID mychannel --name papercontract -v 0 --package-id $PACKAGE_ID --sequence 1 --tls --cafile $ORDERER_CA
管理員最終批準鏈碼.
peer lifecycle chaincode commit -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --peerAddresses localhost:7051 --tlsRootCertFiles ${PEER0_ORG1_CA} --peerAddresses localhost:9051 --tlsRootCertFiles ${PEER0_ORG2_CA} --channelID mychannel --name papercontract -v 0 --sequence 1 --tls --cafile $ORDERER_CA --waitForEvent
DigiBank的管理員使用
peer lifecycle chaincode commit
命令將 paperContract
提交到mychannel
.
感謝各位的閱讀!關于“HyperLedger如何實現鏈碼開發實例Commercial Paper”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。