hyperledger fabric设置开发者模式

修改链码后,总要从新部署,这在开发过程中很麻烦。设置开发者模式,就可以比较方便调试修改代码。以fabric-sample的basic-network为事例。

操作系统:centos 7.6

  1. 修改docker-compose.yml
#修改peer节点,启动时候开启开发者模式
#command: peer node start
command: peer node start --peer-chaincodedev=true
#修改peer节点的端口映射,添加7052端口
port:
	- 7052:7052

这个端口就是我们在本地启动chaincode连接peer节点时使用的端口,
可以通过 config/core.yaml 修改默认端口。

  1. 跑启动脚本
./start.sh

脚本帮我们启动了docker容器,创建channel,并把peer节点加入到channel。

  1. 设置环境变量,编译链码
cd fabric-samples/chaincode/chaincode_example02/go
# .env文件位于链码目录下,作为全局环境配置文件
# CORE_PEER_ADDRESS=peer:7052
echo 'export CORE_PEER_ADDRESS=127.0.0.1:7052'  >> .env
# CORE_CHAINCODE_ID_NAME=chaincodeName:chaincodeVersion
echo 'export CORE_CHAINCODE_ID_NAME=mycc:1.0'  >> .env
. .env
go run .

输出结果

2019-02-07 20:55:49.076 CST [shim] setupChaincodeLogging -> INFO 001 Chaincode log level not provided; defaulting to: INFO
2019-02-07 20:55:49.076 CST [shim] setupChaincodeLogging -> INFO 002 Chaincode (build level: ) starting up ...

已经连接上了

  1. 启动容器cli,进入容器
docker-compose -f docker-compose.yml up -d cli
docker exec -it cli /bin/bash
  1. 安装链码,初始化链码,调用链码
peer chaincode install -n mycc -v 1.0 -p github.com/chaincode_example02/go
peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v 1.0 -c '{"Args":["init", "a", "100", "b", "200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}'

在 go run . 的窗口,发现了fmt.Print的信息。

ex02 Init
Aval = 100, Bval = 200
ex02 Invoke
Aval = 90, Bval = 210

Ctrl-c,修改链码,再go run .

发现修改后的代码也能跑。甚至go的dlv也能使用。

你可能感兴趣的:(hyperledger,fabric,go)