链码开发好后
参考文章:https://blog.csdn.net/taifei/article/details/85234632
1:启动网络后,查看容器
docker ps -a
部署链码是在cli容器里面。第一步我们可以先查看一下cli有没有成功启动,他的ID是什么。后续可以通过ID或者名字进入容器。
2.进入容器,建立专用放链码文件夹,拷贝链码到文件夹中
docker exec -it 【CONTAINER ID或者NAMES】 /bin/bash
mkdir 【文件夹名字】
文件夹一定要在gopath目录下。
拷贝链码到docker cli容器里面。
docker cp ./【链码名字】.go 【CONTAINER ID或者NAMES】:【文件夹路径】
【CONTAINER ID或者NAMES】是容器,为CONTAINER ID或者NAMES均可
3.(无桌面只有bash需要这一步)退出容器
退出容器
exit
(如果是有可视化桌面,可以另外再开一个terminal进行第四步操作)
4.拷贝链码到对应文件夹
docker cp ./【链码名字】 【CONTAINER ID或者NAMES】:/opt/gopath/src/github.com/hyperledger/fabric/peer/【专用文件夹名字】
5.编译(编译这步可省略)
go build
6.(重新进入容器,到链码所在文件夹)安装链码
peer chaincode install -n 【链码名字】 -v 1.0 -p 【链码路径】
-n:指定要安装的链码名称
-v:指定链码的版本
-p:指定要安装的链码所在的路径
这个路径注意
现在在docker里面。
路径前面的三个文件夹是默认固定的,是/opt/gopath/src/
所以我们这里填写的是/opt/gopath/src/文件夹下面的某个路径。
举个例子:peer chaincode install -p chaincodedev/chaincode/marbles_chaincode -n mycc -v 0
成功后显示:Installed remotely response:<status:200 payload:“OK” >
7.实例化链码
peer chaincode instantiate -n 【链码名字】-v 1.0 -c ‘{“Args”:[]}’ -C 【指定通道名称】–tls true --cafile 【指定 TLS_CA 证书的所在路径】
注意,此处–cafile: 指定 TLS_CA 证书的所在路径 是完整路径,从头开始。
参数说明:
-o: 指定Oderer服务节点地址
–tls: 开启 TLS 验证
–cafile: 指定 TLS_CA 证书的所在路径
-n: 指定要实例化的链码名称,必须与安装时指定的链码名称相同
-v: 指定要实例化的链码的版本号,必须与安装时指定的链码版本号相同
-C: 指定通道名称
-c: 实例化链码时指定的参数
-P: 指定背书策略
实例化完成后,用户即可向网络中发起交易。
实例:
peer chaincode instantiate \-C mychannel \-n mycc \-v 1.0 \-c '{"Args":["wallet","123"]}' \--tls true \--cafile /myorg/hyperledger/fabric/peer/crypto-config/ordererOrganizations/myorg.org/orderers/orderer.myorg.org/msp/tlscacerts/tlsca.myorg.org-cert.pem
如果不记得自己channel名字的话:
在cli里面,查找当前有哪些channel:
peer channel list
执行后可看到现有channel
检查环境变量是否正确配置(是不是目前想要的channel)
echo ¥CHANNEL_NAME
如果不对的话就改:
export CHANNEL_NAME=【channel名字】
8.查询链码
略