温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

HyperLedger如何实现链码开发实例Commercial Paper

发布时间:2021-12-06 14:18:42 来源:亿速云 阅读:203 作者:小新 栏目:互联网科技

这篇文章给大家分享的是有关HyperLedger如何实现链码开发实例Commercial Paper的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

链码开发---商业债券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角色

安装并批准智能合约到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 --waitForEventDigiBank的管理员使用

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

感谢各位的阅读!关于“HyperLedger如何实现链码开发实例Commercial Paper”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI