Hyperledger Fabric入门(4)-fabric CLI调用智能合约

本章主要运行fabric-samples/asset-transfer-basic/chaincode-go工程,了解智能合约的安装和调用。

第1步:启动网络
进入目录/usr/local/go/src/github.com/hyperledger/fabric-samples/test-network,输入命令

./network.sh up

在这里插入图片描述
第2步:创建通道:
目录/usr/local/go/src/github.com/hyperledger/fabric-samples/test-network,输入命令

./network.sh createChannel

在这里插入图片描述
可以看到创建了一个名称为mychannel的通道。
在这里插入图片描述
在这里插入图片描述
第3步:启动部署链码
目录/usr/local/go/src/github.com/hyperledger/fabric-samples/test-network,输入命令

./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go

在这里插入图片描述
链码的位置:fabric-samples/asset-transfer-basic/chaincode-go
链码的名称:basic。
在这里插入图片描述
第4步:链码交互
1)将fabric-samples/bin添加到环境变量,可以直接执行二进制文件。
输入命令:export PATH=${PWD}/../bin:$PATH
在这里插入图片描述
2)设置环境变量FABRIC_CFG_PATH,路径为/fabric-samples/config,可以访问配置文件。
输入命令:export FABRIC_CFG_PATH=$PWD/../config/
在这里插入图片描述

3)设置环境变量,以允许您作为Org1操作peer CLI
输入命令:

export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051

在这里插入图片描述
4)初始化链码
目录/usr/local/go/src/github.com/hyperledger/fabric-samples/test-network,输入命令

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"InitLedger","Args":[]}'

在这里插入图片描述
主要是调用InitLedger函数,可以看到成功status=200的输出:

在这里插入图片描述
5)通道账本中查询数据。
目录/usr/local/go/src/github.com/hyperledger/fabric-samples/test-network,输入命令

peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'

在这里插入图片描述
可以看到查询结果,返回一个json数组:

在这里插入图片描述
格式化后:
[{“ID”:“asset1”,“color”:“blue”,“size”:5,“owner”:“Tomoko”,“appraisedValue”:300},
{“ID”:“asset2”,“color”:“red”,“size”:5,“owner”:“Brad”,“appraisedValue”:400},
{“ID”:“asset3”,“color”:“green”,“size”:10,“owner”:“Jin Soo”,“appraisedValue”:500},
{“ID”:“asset4”,“color”:“yellow”,“size”:10,“owner”:“Max”,“appraisedValue”:600},
{“ID”:“asset5”,“color”:“black”,“size”:15,“owner”:“Adriana”,“appraisedValue”:700},
{“ID”:“asset6”,“color”:“white”,“size”:15,“owner”:“Michel”,“appraisedValue”:800},

6)通道账本中新增一条数据:
目录/usr/local/go/src/github.com/hyperledger/fabric-samples/test-network,输入命令

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"CreateAsset","Args":["asset7","blue","20","Klay","777"]}'

在这里插入图片描述
调用CreateAsset函数,可以看到成功status=200的输出:

在这里插入图片描述
7)通道账本中验证新增一条数据
目录/usr/local/go/src/github.com/hyperledger/fabric-samples/test-network,输入命令
peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'在这里插入图片描述
可以看到查询结果:

在这里插入图片描述
格式化后:
[{“ID”:“asset1”,“color”:“blue”,“size”:5,“owner”:“Tomoko”,“appraisedValue”:300},
{“ID”:“asset2”,“color”:“red”,“size”:5,“owner”:“Brad”,“appraisedValue”:400},
{“ID”:“asset3”,“color”:“green”,“size”:10,“owner”:“Jin Soo”,“appraisedValue”:500},
{“ID”:“asset4”,“color”:“yellow”,“size”:10,“owner”:“Max”,“appraisedValue”:600},
{“ID”:“asset5”,“color”:“black”,“size”:15,“owner”:“Adriana”,“appraisedValue”:700},
{“ID”:“asset6”,“color”:“white”,“size”:15,“owner”:“Michel”,“appraisedValue”:800},
{“ID”:“asset7”,“color”:“blue”,“size”:20,“owner”:“Klay”,“appraisedValue”:777}]

第5步:链码交互完毕后,关闭网络:
进入目录/usr/local/go/src/github.com/hyperledger/fabric-samples/test-network,输入命令

./network.sh down

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值