fabric1.4多机部署:
原文链接:
https://www.cnblogs.com/llongst/p/9571363.html
多机多节点部署(1个orderer+4个peer)步骤如下:
====10.3.1 部署orderer.example.com
cd $GOPATH/src/github.com/hyperledger/fabric
mkdir multipeer
cd multipeer
(或者,可以创建好文件夹后,进行下面的命令)
export GOPATH=/home/cufeinfo/multipeer/chaincampus
chmod -R 777 ./bin
mkdir channel-artifacts
./bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
./bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel
=复制相关文件到相应的peer节点所在的主机上================
cd ..
scp -r crypto-config cufeinfo@192.168.0.120:/home/cufeinfo/multipeer/chaincampus/src/github.com/multipeer
scp -r crypto-config cufeinfo@192.168.0.111:/home/cufeinfo/multipeer/chaincampus/src/github.com/multipeer
scp -r crypto-config cufe@192.168.0.104:/home/cufe/multipeer/chaincampus/src/github.com/multipeer
scp -r crypto-config smallove@192.168.0.126:/home/smallove/multipeer/chaincampus/src/github.com/multipeer
scp -r channel-artifacts cufeinfo@192.168.0.120:/home/cufeinfo/multipeer/chaincampus/src/github.com/multipeer
scp -r channel-artifacts cufeinfo@192.168.0.111:/home/cufeinfo/multipeer/chaincampus/src/github.com/multipeer
scp -r channel-artifacts cufe@192.168.0.104:/home/cufe/multipeer/chaincampus/src/github.com/multipeer
scp -r channel-artifacts smallove@192.168.0.126:/home/smallove/multipeer/chaincampus/src/github.com/multipeer
- "orderer.example.com:192.168.0.109"
- "peer0.org1.example.com:192.168.0.120"
- "peer1.org1.example.com:192.168.0.111"
- "peer0.org2.example.com:192.168.0.104"
- "peer1.org2.example.com:192.168.0.126"
scp -r chaincode smallove@192.168.0.126:/home/smallove/multipeer/chaincampus/src/github.com/multipeer
- 启动Fabric网络
docker-compose -f docker-compose-orderer.yaml up -d
=部署peer0.org1.example.com===
- 准备docker配置文件
2.准备部署智能合约
启动fabric网络:
cd $GOPATH/src/github.com/hyperledger/fabric/multipeer
docker-compose -f docker-compose-peer.yaml up -d
docker exec -it cli bash
创建Channel
ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/mychannel.tx --tls --cafile $ORDERER_CA
(会生成mychannel.block文件,很重要~~~~~)
Peer加入Channel
peer channel join -b mychannel.block
保存mychannel.block到宿主机
exit
docker cp xxxxxxxx:/opt/gopath/src/github.com/hyperledger/fabric/peer/mychannel.block ./
xxxxxxxx是cli的容器id名(下面的也是这样的,不再陈述)
mychannel.block拷贝到org1的peer1电脑(其他三个节点)
scp mychannel.block root@192.168.235.102:/opt/gopath/src/github.com/hyperledger/fabric/multipeer
scp mychannel.block root@192.168.235.103:/opt/gopath/src/github.com/hyperledger/fabric/multipeer
scp mychannel.block root@192.168.235.104:/opt/gopath/src/github.com/hyperledger/fabric/multipeer
- 安装与运行智能合约
安装智能合约
docker exec -it cli bash
peer chaincode install -n mycc -p github.com/hyperledger/fabric/multipeer/chaincode/go/example02/cmd/ -v 1.0
实例化智能合约
区块初始化数据为a为100,b为200。
ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile $ORDERER_CA -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org1MSP.peer','Org2MSP.peer')"
Peer上查询a,显示100
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
Peer上进行a向b转10交易
peer chaincode invoke --tls --cafile $ORDERER_CA -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}'
Peer上查询a,显示210
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'
=======部署peer1.org1.example.com=
- 准备docker配置文件
2.准备部署智能合约
启动fabric网络:
cd $GOPATH/src/github.com/hyperledger/fabric/multipeer
docker-compose -f docker-compose-peer.yaml up -d
docker exec -it cli bash
拷贝mychannel.block到peer中
exit
docker cp ./mychannel.block xxxxxxxx:/opt/gopath/src/github.com/hyperledger/fabric/peer/
Peer加入Channel
docker exec -it cli bash
peer channel join -b mychannel.block
安装智能合约
peer chaincode install -n mycc -p github.com/hyperledger/fabric/multipeer/chaincode/go/example02/cmd/ -v 1.0
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
Peer上进行a向b转10交易
ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
peer chaincode invoke --tls --cafile $ORDERER_CA -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}'
Peer上查询b,显示220
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'
==部署peer0.org2.example.com
- 准备docker配置文件
2.准备部署智能合约
启动fabric网络:
cd $GOPATH/src/github.com/hyperledger/fabric/multipeer
docker-compose -f docker-compose-peer.yaml up -d
docker exec -it cli bash
拷贝mychannel.block到peer中
exit
docker cp ./mychannel.block xxxxxxxx:/opt/gopath/src/github.com/hyperledger/fabric/peer/
Peer加入Channel
docker exec -it cli bash
peer channel join -b mychannel.block
安装智能合约
peer chaincode install -n mycc -p github.com/hyperledger/fabric/multipeer/chaincode/go/example02/cmd/ -v 1.0
Peer上查询a,显示80
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
Peer上进行a向b转20交易
ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
peer chaincode invoke --tls --cafile $ORDERER_CA -C mychannel -n mycc -c '{"Args":["invoke","a","b","20"]}'
Peer上查询b,显示240
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'
=========部署peer1.org2.example.com
- 准备docker配置文件
2.准备部署智能合约
启动fabric网络:
cd $GOPATH/src/github.com/hyperledger/fabric/multipeer
docker-compose -f docker-compose-peer.yaml up -d
docker exec -it cli bash
拷贝mychannel.block到peer中
exit
docker cp ./mychannel.block xxxxxxxx:/opt/gopath/src/github.com/hyperledger/fabric/peer/
Peer加入Channel
docker exec -it cli bash
peer channel join -b mychannel.block
安装智能合约
peer chaincode install -n mycc -p github.com/hyperledger/fabric/multipeer/chaincode/go/example02/cmd/ -v 1.0
Peer上查询a,显示80
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
Peer上进行a向b转20交易
ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
peer chaincode invoke --tls --cafile $ORDERER_CA -C mychannel -n mycc -c '{"Args":["invoke","a","b","20"]}'
Peer上查询b,显示240
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'