本例中使用的官方提供的fabric-sample案例,在该网络中,cli客户端能够直接调用chaincode,在实际开发环境中,cli不允许直接调用chaincode,只有peer结点才能运行chaincode,该环境适用于调试开发环节。
在配置过程中遇到的问题可以参考另一篇博客,总结了我遇到的部分问题和解决方法
https://blog.youkuaiyun.com/tianlongtc/article/details/80861804
在运行之前,请确保系统环境已经配置好。包括go, nodejs, docker等等配置。
打开三个终端,分别为终端1,终端2, 终端3
终端1
1、下载hyperledger fabric sample源码
2、进入fabric-sample目录
cd fabric-samples
3、下载二进制文件
curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0
4、进入devmode目录
cd chaincode-docker-devmode
5、修改配置文件
vim docker-compose-simple.yaml
将 cli 和 chaincode 的 tty 注释掉
cli:
container_name: cli
image: hyperledger/fabric-tools
# tty: true
environment:
- GOPATH=/opt/gopath
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_LOGGING_LEVEL=DEBUG
- CORE_PEER_ID=cli
- CORE_PEER_ADDRESS=peer:7051
- CORE_PEER_LOCALMSPID=DEFAULT
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp
working_dir: /opt/gopath/src/chaincodedev
command: /bin/bash -c ‘./script.sh’
volumes:
- /var/run/:/host/var/run/
- ./msp:/etc/hyperledger/msp
- ./../chaincode:/opt/gopath/src/chaincodedev/chaincode
- ./:/opt/gopath/src/chaincodedev/
depends_on:
- orderer
- peerchaincode:
container_name: chaincode
image: hyperledger/fabric-ccenv
# tty: true
environment:
- GOPATH=/opt/gopath
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_LOGGING_LEVEL=DEBUG
- CORE_PEER_ID=example02
- CORE_PEER_ADDRESS=peer:7051
- CORE_PEER_LOCALMSPID=DEFAULT
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp
working_dir: /opt/gopath/src/chaincode
6、启动网络
docker-compose -f docker-compose-simple.yaml up
终端2
1、进入fabric-sample目录
2、启动chaincode
docker exec -it chaincode bash
3、编译链码
cd sacc
go build
4、运行链码
CORE_PEER_ADDRESS=peer:7052 CORE_CHAINCODE_ID_NAME=mycc:0 ./sacc
终端3
1、启动 cli
docker exec -it cli bash
2、安装链码并实例化链码
peer chaincode install -p chaincodedev/chaincode/sacc -n mycc -v 0
peer chaincode instantiate -n mycc -v 0 -c ‘{“Args”:[“a”,”10”]}’ -C myc
3、调用链码,设置a的值为20
peer chaincode invoke -n mycc -c ‘{“Args”:[“set”, “a”, “20”]}’ -C myc
4、调用链码,查询a的值
peer chaincode query -n mycc -c ‘{“Args”:[“query”,”a”]}’ -C myc
转载自hyperledger官方文档,并做了部分修改,原文存在一些小问题:
http://hyperledger-fabric.readthedocs.io/en/release-1.1/chaincode4ade.html?spm=5176.11409106.555.1.29472487VAEz9Z