溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

HyperLedger如何實(shí)現(xiàn)鏈碼開發(fā)實(shí)例Commercial Paper

發(fā)布時(shí)間:2021-12-06 14:18:42 來源:億速云 閱讀:214 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章給大家分享的是有關(guān)HyperLedger如何實(shí)現(xiàn)鏈碼開發(fā)實(shí)例Commercial Paper的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

鏈碼開發(fā)---商業(yè)債券Commercial Paper

啟動(dòng)測(cè)試網(wǎng)絡(luò)
cd fabric-samples/commercial-paper
./network-starter.sh
docker -ps將用于查看本地計(jì)算機(jī)上運(yùn)行的Fabric節(jié)點(diǎn)
docker newtwork inspect net_test用來查看網(wǎng)絡(luò)

扮演磁力公司的角色

cd fabric-samples/commercial-paper/organization/magnetocorp
使用磁力公司下屬的monitoedocker.sh net_test <port_number>來啟動(dòng)logspout, 并使用它監(jiān)視與net_baisc網(wǎng)絡(luò)關(guān)聯(lián)的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

將智能合約部署到通道, 通道中的所有實(shí)體都可以使用鏈碼,因此必須要符合多方需求.

部署智能合約

設(shè)置環(huán)境變量以便于CLI與PaperNet進(jìn)行交互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請(qǐng)求背書策略認(rèn)可

檢查SDK應(yīng)用程序

const{Wallets, Gateway} = require('fabric-network') // 引入兩個(gè)關(guān)鍵類 Wallets 和GateWayconst wallet =  await Wallets.newFileSystemWallet('../identity/user/isabella/wallet')//在錢包中選擇特定的標(biāo)識(shí), 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')//提交回復(fù)表示調(diào)用智能合約中定義的交易issue,剩下兩個(gè)值表示創(chuàng)建新商業(yè)債券必不可少的參數(shù)let paper = CommercialPaper.fromBuffer(issueResponse)//處理從issue交易中的回復(fù),回復(fù)需要緩沖池的反序列化.

npm isntall && node addToWallet.js
注冊(cè)完Isabella的身份之后就可以調(diào)用智能合約了.

扮演DigiBank角色

安裝并批準(zhǔn)智能合約到DigiBank接待你

只有大多數(shù)組織將鏈碼提交到通道,鏈碼才會(huì)被正式部署.
source digibank.sh配置環(huán)境變量

peer lifecycle chaincode package cp.tar.gz --lang node --path ./contract --label cp_0在DigiBank上安裝鏈碼
peer lifecycle chaincode install cp.tar.gz在對(duì)等實(shí)體上安裝鏈代碼

export PACKAGE_ID = $(peer lifecycle chaincode queryinstalled)配置鏈碼ID的環(huán)境變量
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 管理員最終批準(zhǔn)鏈碼.

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 --waitForEventDigiBank的管理員使用

peer lifecycle chaincode commit命令將 paperContract提交到mychannel.

感謝各位的閱讀!關(guān)于“HyperLedger如何實(shí)現(xiàn)鏈碼開發(fā)實(shí)例Commercial Paper”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI