黎跃春
孔壹学院、ChainDesk创始人兼CEO
从零到壹学习超级账本理论加实战为一个系列,一共23讲,包括超级账本简介、搭建环境、启动网络、测试链码、区块链应用开发等。今天我们将为大家介绍从零到壹学习超级账本理论加实战第五讲:测试链码。话不多说,马上开启我们的超级账本理论加实战学习之旅。
孔壹学院
fresh
flower
测试链码
测试链码
确定进入CLI容器中
$ sudo docker exec -it cli bashPeer
加入应用通道后, 可以执行链码相关操作,进行测试
链码在调用之前, 必须先经过安装和实例化两个步骤, 部署到Peer节点上.
检查环境变量是否正确设置
echo $CHANNEL_NAME
设置环境变量
export CHANNEL_NAME=mychannel
链码使用之前必须:
将其安装在指定的节点上
安装完成后要对其进行实例化
调用链码(查询, 执行事务)
安装并实例化Chaincode
安装:
peer chaincode install -n mycc -v 1.0 -p github.com/chaincode/chaincode_example02/go/
参数说明:
-n: 指定要安装的链码的名称
-v: 指定链码的版本
-p: 指定要安装的链码的所在路径
实例化:
参数说明:
-o: 指定Oderer节点地址
--tls: 开启TLS验证
--cafile: 指定TLS_CA证书路径
-n: 指定要实例化的链码名称
-v:指定要实例化的链码的版本号
-C: 指定通道名称
-c: 实例化链码时指定的参数
-P: 指定背书策略
查询
peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
输出结果:Query Result: 100
参数说明:
-n: 指定要调用的链码名称
-C: 指定通道名称
-c: 指定调用链码时所需要的参数
func query(account string){
}
账本保存数据以 key-value方式保存
调用/转账
参数说明:
-o: 指定orderer节点地址
--tls: 开启TLS验证
--cafile: 指定TLS_CA证书路径
-n: 指定链码名称
-C: 指定通道名称
-c: 指定调用链码的所需参数
func invoke(accoutF string, accountT stirng, amount string)
查询a账户的金额
peer chaincode query -C $CHANNEL_NAME -n mycc -c '{"Args":["query","a"]}'
输出结果: Query Result: 90
孔壹学院
练习
将github.com/chaincode/sacc/的链码安装并实例化
查询a账户的余额
使用set方法设置a账户的余额
使用get方法获取a账户的余额
'{"Args":["init", "a", "100", "b", "200"]}'
注: 实例化时只需要两个参数, 不需要指定操作名称
两个参数: 账户名, 金额
set
账户名, 金额
get
账户名
声明:本文由入驻金色财经的作者撰写,观点仅代表作者本人,绝不代表金色财经赞同其观点或证实其描述。
提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。
AiYing Compliance
Web3前沿
Foresight News
蛋蛋的区块链笔记
Block unicorn
火币HTX