这里我想记录一下每次开机之后关于fabric重新部署环境和测试链码的心得。
我们首先查看是否有通道的配置文件:
我们可以利用其中的mychannel.tx生成一个通道文件:
./bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel
首先我们输入 docker ps 查看之前开启的容器:
然后输入 docker rm -f `docker ps -aq` 删除所有的容器 rm代表remove的意思 docker pa -aq 代表列出所有容器的id
docker ps -aq 代表列出所有容器的id
然后我们输入指令开启需要开启的对应的容器:
启动order和perr
docker-compose -f docker-orderer.yaml up -d
docker-compose -f docker-peer.yaml up -d
然后我们进入客户端(client)容器中进行操作:
docker exec -it cli bash
peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/mychannel.tx
然后我们需要利用配置文件加入对应的通道:
peer channel join -b mychannel.block
我们再将自己写的智能合约安装一下:
peer chaincode install -n myfanfan -p github.com/hyperledger/fabric/aberic/chaincode/go/chaincode_example02/abcde -v 1.0
对应文件所在地方:
我们进行初始化链码:
peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n myfan01 -c '{"Args":["init"]}' -v 1.0
用invoke调用方法:
输入自定义字符串:peer chaincode invoke -C mychannel -n myfanfan -c '{"Args":["saySomething","hello"]}'
增加节点: peer chaincode invoke -C mychannel -n myfanfan -c '{"Args":["addPeer","a","0","0","d","e","0"]}'
查询指定节点:peer chaincode query -C mychannel -n mych01 -c '{"Args":["userQueryPeer","a"]}'
加入委员会:peer chaincode invoke -C mychannel -n mych01 -c '{"Args":["alterIsCapacity","a"]}'
退出委员会:peer chaincode invoke -C mychannel -n mych01 -c '{"Args":["alterQuitCapacity","a"]}'
获取当前用户的证书内容:peer chaincode invoke -C mychannel -n myfanfan -c '{"Args":["getUserCert"]}'
注意这里:我们再修改值的时候,系统会有一个延迟的,所以要等个几秒钟再查询,其实是可以修改值的。
用query调用方法:
两者都可以执行,但是,一般我们查询就用query,如果是修改数据推荐使用invoke。
这里,总结一个小细节:
在底层链码go语言层面:
日志文件应该是用来记录操作,保存操作的。
自己一点小小的心得,用来记录,希望可以帮助到大家,也方便自己日后回顾知识。