在hyperledger fabric 1.0中,创建channel需要使用configtxgen工具进行配置,生成创世块。channel配置项一般写在configtx.yaml文件中。
curl -sSL https://goo.gl/eYdRbX | bash
下载完成后,工具会保存在bin文件夹。
也可以选择使用hyperledger源码自行编译。
cryptogen: $GOPATH/github.com/hyperledger/fabric/common/tools/cryptogen
configtxgen: $GOPATH/github.com/hyperledger/fabric/common/configtx/tool/configtxgen
将工具位置加入到环境变量中。
export PATH=$GOPATH/src/github.com/hyperledger/fabric/build/bin:${PWD}/../bin:${PWD}:$PATH
export FABRIC_CFG_PATH=${PWD}
cryptogen generate --config=./crypto-config.yaml //crypto-config.yaml是配置文件,可自行需改
执行完成后,生成crypto-config文件夹,内有order节点、peer节点的organization的配置信息。
configtxgen -profile $PROFILE_NAME -outputBlock ./config/genesis.block //$PROFILE_NAME在configtx.yaml命名
执行完成后,生成创世块genesis.block。
configtxgen -profile $PROFILE_NAME -outputCreateChannelTx ./config/channel.tx -channelID $CHANNEL_NAME //$PROFILE_NAME,$CHANNEL_NAME在configtx.yaml命名
执行完成后,生成channel configuration transaction channel.tx。
默认你已经启动好了fabric网络。
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/[email protected]/msp" peer0.org1.example.com peer channel create -o orderer.example.com:7050 -c mychannel -f channel.tx
docker exec -e "CORE_PEER_LOCALMSPID=Org1MSP" -e "CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/[email protected]/msp" peer0.org1.example.com peer channel join -b mychannel.block
docker exec -it cli bash
peer chaincode install -p github.com/chaincode_example02 -n mycc -v 1.0
Installed remotely response:200 payload:"OK" >
[main] main -> INFO 003 Exiting.....
peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}'
[main] main -> INFO 009 Exiting.....
peer chaincode invoke -n mycc -c '{"Args":["invoke","a", "b","50"]}' -C mychannel
[main] main -> INFO 009 Exiting.....
peer chaincode query -n mycc -c ‘{“Args”:[“query”, “a”]}’ -C mychannel
Query Result: 50
[main] main -> INFO 005 Exiting.....