Loading

搭建fabric开发网络

本文写于2021/09/24

启动网络

演示从fabric源码根目录开始,创建一个排序节点和一个peer节点。

预先准备

使用fabric代码编译二进制文件

make orderer peer configtxgen
export PATH=$(pwd)/build/bin:$PATH
export FABRIC_CFG_PATH=$(pwd)/sampleconfig
configtxgen -profile SampleDevModeSolo -channelID syschannel -outputBlock genesisblock -configPath $FABRIC_CFG_PATH -outputBlock "$(pwd)/config/genesisblock"

启动orderer

在当前窗口启动

export ORDERER_GENERAL_GENESISPROFILE=SampleDevModeSolo 
orderer

启动peer

新窗口启动

export PATH=$(pwd)/build/bin:$PATH
export FABRIC_CFG_PATH=$(pwd)/sampleconfig
export FABRIC_LOGGING_SPEC=chaincode=debug
export CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052 
peer node start --peer-chaincodedev=true
# --peer-chaincodedev表示进入链码开发模式(不启动链码容器,而是本地模式)

创建channel并加入

新建窗口

export PATH=$(pwd)/build/bin:$PATH
export FABRIC_CFG_PATH=$(pwd)/sampleconfig
configtxgen -channelID ch1 -outputCreateChannelTx ch1.tx -profile SampleSingleMSPChannel -configPath $FABRIC_CFG_PATH
peer channel create -o 127.0.0.1:7050 -c ch1 -f ch1.tx

peer channel join -b ch1.block

链码main函数

func main() {
	chaincode, err := contractapi.NewChaincode(new(SmartContract))
	if err := chaincode.Start(); err != nil {
		log.Panicf("error starting my chaincode: %s", err)
	}
}

启动链码

这里使用编译后的二进制文件启动,如果使用ide启动,请参考goland配置或者vscode配置

CORE_CHAINCODE_LOGLEVEL=debug CORE_PEER_TLS_ENABLED=false CORE_CHAINCODE_ID_NAME=mycc:1.0
./simpleChaincode -peer.address 127.0.0.1:7052

安装链码到channel

peer lifecycle chaincode approveformyorg  -o 127.0.0.1:7050 --channelID ch1 --name mycc --version 1.0 --sequence 1 --init-required --signature-policy "OR ('SampleOrg.member')" --package-id mycc:1.0
peer lifecycle chaincode checkcommitreadiness -o 127.0.0.1:7050 --channelID ch1 --name mycc --version 1.0 --sequence 1 --init-required --signature-policy "OR ('SampleOrg.member')"
peer lifecycle chaincode commit -o 127.0.0.1:7050 --channelID ch1 --name mycc --version 1.0 --sequence 1 --init-required --signature-policy "OR ('SampleOrg.member')" --peerAddresses 127.0.0.1:7051

调用链码

链码的调用按按实际情况来。

CORE_PEER_ADDRESS=127.0.0.1:7051 peer chaincode invoke -o 127.0.0.1:7050 -C ch1 -n mycc -c '{"Args":["init","a","100","b","200"]}' --isInit
CORE_PEER_ADDRESS=127.0.0.1:7051 
peer chaincode invoke -o 127.0.0.1:7050 -C ch1 -n mycc -c '{"Args":["invoke","a","b","10"]}'
CORE_PEER_ADDRESS=127.0.0.1:7051 peer chaincode invoke -o 127.0.0.1:7050 -C ch1 -n mycc -c '{"Args":["query","a"]}'

ide配置

goland配置

go build中设置两部分内容

# environment
DEVMODE_ENABLED=true;CORE_CHAINCODE_ID_NAME=mycc:1.0;CORE_PEER_TLS_ENABLED=false

# program arguments
--peer.address 192.168.1.220:7052

vscode配置

{
      "version": "0.2.0",
      "configurations": [
            {
                  "name": "debug chaincode local",
                  "type": "go",
                  "request": "launch",
                  "mode": "debug",
                  "program": "${workspaceFolder}",
                  "env": {
                        "CORE_CHAINCODE_ID_NAME": "mycc:1.0",
                        "CORE_PEER_TLS_ENABLED": false
                  },
                
                  "args": ["--peer.address","192.168.1.220:7052"] // 填写链码地址
            }
      ]
}
posted @ 2021-09-24 09:30  ly_arise  阅读(130)  评论(0编辑  收藏  举报