(Fabric 超级账本学习【2】)Fabric2.4环境下部署自己编写的链码
1、前提是搭建好了Fabric 2.4(Fabric2.x)版本的区块链网络,并在以此环境下部署自己编写的链码,如下图先进入 test-network 文件夹目录下
2、假如你之前开启过网络,先关闭网络,以免节点信息冲突,部署错误
./network.sh down
3、正式启动网络,部署网络命令以及成功截图如下
./network.sh up
如果想要同时启动CA服务器和couchdb,执行这条指令:
./network.sh up createChannel -ca -s couchdb
!!!!!!!!!假如启动失败如下,可能之前测试网络时出现重复或者已经存在的镜像,删除即可
docker ps -qa | xargs docker stop
docker ps -qa | xargs docker rm
4、接着在测试网络加入通道:
./network.sh createChannel
5、接下来就是部署自己的链码了
前期准备:先配置Go代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
执行 go env 查看配置代理后的环境变量,方便后续部署链码时下载相应的go环境
然后我们再 test-network 文件夹目录下 创建单独放置自己链码的 mychaincode 文件夹
把自己编写的 链码放进去
!!!!!!!!!!!依次执行如下命令
go mod init
go mod tidy
go mod vendor
执行如上命令后成功截图以及生成文件如下:
此时,我们的链码环境才算完成了!接下来就是链码的安装:回到test-network目录下:
如上学习部署链码指令,我们可以执行自己的链码命令进行部署如下:
sudo ./network.sh deployCC -ccn lianma -ccp ./mychaincode -ccl go
可以看得到链码成功部署!!!!
在fabric2.x版本中默认是不需要实例化链码了,所以直接调用invoke即可,首先配置一下环境变量
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
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
执行初始化链码
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 mycc --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":"Init","Args":["A","100","B","200"]}'