RAFT多机Fabric1.4.7

raft搭建需要2n+1的order节点,本文部署5个order节点
5台虚拟机
raftone、192.168.84.144、order(7050)节点、两个peer节点(peer0(7051)peer1(8051))、cli节点
rafttwo、192.168.84.139、order(7050)节点、两个peer节点(peer0(9051)peer1(10051))、cli节点
raftthree、192.168.84.140、order(7050)节点、两个peer节点(peer0(11051)peer1(12051(7051))、cli节点
raftfour、192.168.84.141、order(7050)节点、两个peer节点(peer0(13051)peer1(14051))、cli节点
raftfive、192.168.84.142、order(7050)节点

四个组织 raftone(fy)、rafttwo(ga)、raftthree(jc)、raftfour(sf)

关于账本数据实现 fy查看账本数据 、写入账本数据需要ga、jc、sf都同意

配置:
fabric1.4.7
启用couchdb数据库
启用ca镜像
在base/docker-compose-base.yaml中 order和peer的端口下都加入extra_hosts

   extra_hosts:
      - fy.jdml.pro:192.168.84.144
      - ga.jdml.pro:192.168.84.139
      - jc.jdml.pro:192.168.84.140
      - sf.jdml.pro:192.168.84.141
      - orderer.jdml.pro:192.168.84.142
      - peer0.fy.jdml.pro:192.168.84.144
      - peer1.fy.jdml.pro:192.168.84.144
      - peer0.ga.jdml.pro:192.168.84.139
      - peer1.ga.jdml.pro:192.168.84.139
      - peer0.jc.jdml.pro:192.168.84.140
      - peer1.jc.jdml.pro:192.168.84.140
      - peer0.sf.jdml.pro:192.168.84.141
      - peer1.sf.jdml.pro:192.168.84.141

1、修改加密文件(crypto-config.yaml),生成5个组织,组织1-4下各有两个节点,每个组织除Admin外有5个用户
2、修改配置文件(创世区块、通道配置、组织锚节点)
3、进入192.168.84.144(raftone)虚拟机
进入first-network目录
生成加密证书

../bin/cryptogen generate --config=./crypto-config.yaml

4、生成创世区块

../bin/configtxgen -profile SampleMultiNodeEtcdRaft -channelID byfn-sys-channel -outputBlock ./channel-artifacts/genesis.block

5、生成通道配置文件

../bin/configtxgen -profile FourOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID jdml

6、生成锚节点配置文件
组织1

../bin/configtxgen -profile FourOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID jdml -asOrg Org1MSP

组织2

../bin/configtxgen -profile FourOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID jdml -asOrg Org2MSP

组织3

../bin/configtxgen -profile FourOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org3MSPanchors.tx -channelID jdml -asOrg Org3MSP

组织4

../bin/configtxgen -profile FourOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org4MSPanchors.tx -channelID jdml -asOrg Org4MSP

7、进入cli终端创建通道

peer channel create -o fy.jdml.pro:7050 -c jdml -f ./channel-artifacts/channel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/jdml.pro/orderers/ fy.jdml.pro /msp/tlscacerts/tlsca.jdml.pro-cert.pem

将生成的通道块拷贝到channel-artifacts文件夹下

cp jdml.block ./channel-artifacts

8 、先授权(chmod 777 -R xxx)再打包 加密文件(crypto-config)配置文件(channel-artifacts)

tar -cvf xxx.tar.gz xxx 

9、将压缩文件复制到rafttwo、raftthree、raftfour、raftfive
解压到first-network路径下,5台虚拟机使用同一个加密文件以及网络配置文件,配置多机服务
10、raftone虚拟机 修改first-network/scripts/utils.sh 方便节点切换
11、进入raftone cli 节点执行peer指令

docker exec -it cli bash

12、创建通道

peer channel create -o fy.jdml.pro:7050 -c jdml -f ./channel-artifacts/channel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/jdml.pro/orderers/fy.jdml.pro/msp/tlscacerts/tlsca.jdml.pro-cert.pem

查看peer环境

env | grep CORE

peer0加入通道

peer channel join -b channel-artifacts/jdml.block

切换节点

source scripts/utils.sh
setGlobals 1 1
env | grep CORE

peer1加入通道

peer channel join -b channel-artifacts/jdml.block

13、rafttwo、raftthree、raftfour虚拟机执行上述加入通道操作
修改utils.sh文件、peer0加入通道、切换节点、peer1加入通道
14、4个组织8个节点全部加入通道后,执行更新锚节点操作
raftone

peer channel update -o fy.jdml.pro:7050 -c jdml -f ./channel-artifacts/Org1MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/jdml.pro/orderers/fy.jdml.pro/msp/tlscacerts/tlsca.jdml.pro-cert.pem

rafttwo

peer channel update -o ga.jdml.pro:7050 -c jdml -f ./channel-artifacts/Org2MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/jdml.pro/orderers/ga.jdml.pro/msp/tlscacerts/tlsca.jdml.pro-cert.pem

raftthree

peer channel update -o jc.jdml.pro:7050 -c jdml -f ./channel-artifacts/Org3MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/jdml.pro/orderers/jc.jdml.pro/msp/tlscacerts/tlsca.jdml.pro-cert.pem

raftfour

peer channel update -o sf.jdml.pro:7050 -c jdml -f ./channel-artifacts/Org4MSPanchors.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/jdml.pro/orderers/sf.jdml.pro/msp/tlscacerts/tlsca.jdml.pro-cert.pem

15、查看最新区块 从0开始
在raftone上查看

peer channel fetch newest -c jdml -o fy.jdml.pro

在rafttwo上查看

peer channel fetch newest -c jdml -o ga.jdml.pro

在raftthree上查看

peer channel fetch newest -c jdml -o jc.jdml.pro

在raftfour上查看

peer channel fetch newest -c jdml -o sf.jdml.pro

创世区块 0
更新组织1的锚节点 1
更新组织2的锚节点 2
更新组织3的锚节点 3
更新组织4的锚节点 4

猜你喜欢

转载自blog.csdn.net/weixin_41303815/article/details/114460134