介紹:該例程已經配置好docker,通過GoLand得docker工具啟動容器后,通過CLI安裝、實體化和呼叫鏈碼,
1.克隆fabric-samples
git clone https://github.com/hyperledger/fabric-samples.git
2.使用GoLand打開chaincode-docker-devmode的docker-compose-simple.yaml
version: '2'
services:
orderer:
container_name: orderer
image: hyperledger/fabric-orderer
environment:
- FABRIC_LOGGING_SPEC=debug
- ORDERER_GENERAL_LISTENADDRESS=orderer
- ORDERER_GENERAL_GENESISMETHOD=file
- ORDERER_GENERAL_GENESISFILE=orderer.block
- ORDERER_GENERAL_LOCALMSPID=DEFAULT
- ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp
- GRPC_TRACE=all=true,
- GRPC_VERBOSITY=debug
working_dir: /opt/gopath/src/github.com/hyperledger/fabric
command: orderer
volumes:
- ./msp:/etc/hyperledger/msp
- ./orderer.block:/etc/hyperledger/fabric/orderer.block
ports:
- 7052:7052
peer:
container_name: peer
image: hyperledger/fabric-peer
environment:
- CORE_PEER_ID=peer
- CORE_PEER_ADDRESS=peer:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer:7051
- CORE_PEER_LOCALMSPID=DEFAULT
- CORE_PEER_ADDRESSAUTODETECT=true
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- FABRIC_LOGGING_SPEC=DEBUG
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp
volumes:
- /var/run/:/host/var/run/
- ./msp:/etc/hyperledger/msp
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
command: peer node start --peer-chaincodedev=true
ports:
- 7051:7051
- 7053:7053
depends_on:
- orderer
cli:
container_name: cli
image: hyperledger/fabric-tools
tty: true
environment:
- GOPATH=/opt/gopath
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- FABRIC_LOGGING_SPEC=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
- peer
##如果chaincode容器可以順利開啟,則配置正確,然后用用goland得本地運行代替chaincode容器
chaincode:
container_name: chaincode
image: hyperledger/fabric-ccenv
tty: true
privileged: true
environment:
- GOPATH=/opt/gopath
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- FABRIC_LOGGING_SPEC=DEBUG
- CORE_PEER_ID=chaincode
- CORE_CHAINCODE_ID_NAME=mycc:1
- CORE_PEER_TLS_ENABLED=false
- CORE_PEER_ADDRESS=peer:7051
- CORE_PEER_LOCALMSPID=DEFAULT
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp
working_dir: /opt/gopath/src/chaincode
command: /bin/sh -c 'sleep 6000000'
volumes:
- /var/run/:/host/var/run/
- ./msp:/etc/hyperledger/msp
- ../chaincode:/opt/gopath/src/chaincode
depends_on:
- orderer
- peer
3.啟動Docker

4.進入CLI終端
##安裝鏈碼
peer chaincode install -p chaincode/sacc/ -n mycc -v 1
##如果安裝失敗就配置代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
##實體化
peer chaincode instantiate -n mycc -v 1 -c '{"Args":["a","10"]}' -C myc
成功后生成鏈碼的運行容器

5.配置鏈碼Debug配置&&運行
以下地址peer容器的ip(進入終端 命令ifconfig查看)
#CORE_CHAINCODE_ID_NAME對應剛剛安裝和實體化得鏈碼名稱:版本號
#Environment
CORE_PEER_ADDRESS =17*.18.0.*:7051;CORE_CHAINCODE_ID_NAME=mycc:0;CORE_PEER_TLS_ENABLED=false
#Program arguments
-peer.address 17*.18.0.*:7052

6.設定斷點&CLI呼叫鏈碼
peer chaincode invoke -n mycc -c '{"Args":["set", "a", "30"]}' -C myc
觸發斷點

如果不行得話先把鏈碼容器關掉

參考:
HyperLedger Fabric chaincode 開發模式 docker-devmode
【fabric原始碼】Goland/Vscode除錯Hyperledger Fabric 2.0原始碼、單機網路(傻瓜式除錯)【附原始碼】_wx5ed8a22dd1db1_51CTO博客
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/298424.html
標籤:區塊鏈
