hyperledger fabric docker-compose 安装方式(多节点)(一)

1.环境准备

系统

[root@build e2e_cli]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

机器

IPdomainhostname
192.168.1.110orderer.example.comfabricorderer
192.168.1.109peer0.org1.example.comfabric-CA
192.168.1.105peer0.org2.example.combuild
192.168.1.106peer1.org1.example.comk8s03
192.168.1.111peer1.org2.example.comk8s02

安装golang docker docker-compose 等等环境在这里就不在详细说了

yum install go docker python-pip 
pip install --upgrade pip
pip install docker-compose
[root@build e2e_cli]# go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/root/gopath"
GORACE=""
GOROOT="/usr/lib/golang"
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build584348799=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"

获取代码及切换分支

mkdir -p /opt/gopath/src/github.com/hyperledger/ && cd /opt/gopath/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git

git checkout v1.0.0-beta
[root@build e2e_cli]# git status
# 头指针分离于 v1.0.0-beta

下载镜像

[root@build e2e_cli]# pwd
/root/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli
[root@build e2e_cli]# ls -l
总用量 84
drwxr-xr-x 2 root root    60 4月   5 18:38 base
drwxr-xr-x 2 root root   111 4月   5 19:31 channel-artifacts
-rw-r--r-- 1 root root  5013 45 18:41 configtx.yaml
drwxr-xr-x 4 root root    59 4月   5 19:31 crypto-config
-rw-r--r-- 1 root root  3858 45 18:41 crypto-config.yaml
-rw-r--r-- 1 root root  1930 45 19:09 docker-compose-cli.yaml
-rw-r--r-- 1 root root  2005 45 18:41 docker-compose-couch.yaml
-rw-r--r-- 1 root root  2517 45 18:41 docker-compose-e2e-template.yaml
-rw-r--r-- 1 root root  2517 45 18:41 docker-compose-e2e.yaml
-rw-r--r-- 1 root root  2119 45 18:41 download-dockerimages.sh
-rw-r--r-- 1 root root 41280 45 18:41 end-to-end.rst
drwxr-xr-x 3 root root    23 4月   5 18:41 examples
-rwxr-xr-x 1 root root  3588 45 18:41 generateArtifacts.sh
-rwxr-xr-x 1 root root  2504 45 18:41 network_setup.sh
drwxr-xr-x 5 root root    83 4月   5 19:57 peer
drwxr-xr-x 2 root root    23 4月   5 18:41 scripts


[root@build e2e_cli]# bash download-dockerimages.sh
[root@build e2e_cli]# docker images 
REPOSITORY                               TAG                 IMAGE ID            CREATED             SIZE
docker.io/hyperledger/fabric-tools       x86_64-1.0.0-beta   ae6b0f53cb70        10 months ago       1.32 GB
hyperledger/fabric-tools                 latest              ae6b0f53cb70        10 months ago       1.32 GB
docker.io/hyperledger/fabric-couchdb     x86_64-1.0.0-beta   31bbbec3d853        10 months ago       1.48 GB
hyperledger/fabric-couchdb               latest              31bbbec3d853        10 months ago       1.48 GB
docker.io/hyperledger/fabric-kafka       x86_64-1.0.0-beta   c4ac1c9a4797        10 months ago       1.3 GB
hyperledger/fabric-kafka                 latest              c4ac1c9a4797        10 months ago       1.3 GB
docker.io/hyperledger/fabric-zookeeper   x86_64-1.0.0-beta   2c4ebacb6f00        10 months ago       1.31 GB
hyperledger/fabric-zookeeper             latest              2c4ebacb6f00        10 months ago       1.31 GB
docker.io/hyperledger/fabric-orderer     x86_64-1.0.0-beta   11ff350dd297        10 months ago       179 MB
hyperledger/fabric-orderer               latest              11ff350dd297        10 months ago       179 MB
docker.io/hyperledger/fabric-peer        x86_64-1.0.0-beta   e01c2b645f11        10 months ago       182 MB
hyperledger/fabric-peer                  latest              e01c2b645f11        10 months ago       182 MB
docker.io/hyperledger/fabric-javaenv     x86_64-1.0.0-beta   61c188dca542        10 months ago       1.42 GB
hyperledger/fabric-javaenv               latest              61c188dca542        10 months ago       1.42 GB
docker.io/hyperledger/fabric-ccenv       x86_64-1.0.0-beta   7034cca1918d        10 months ago       1.29 GB
hyperledger/fabric-ccenv                 latest              7034cca1918d        10 months ago       1.29 GB
hyperledger/fabric-ca                    latest              e549e8c53c2e        10 months ago       238 MB
docker.io/hyperledger/fabric-ca          x86_64-1.0.0-beta   e549e8c53c2e        10 months ago       238 MB
docker.io/hyperledger/fabric-baseos      x86_64-0.3.1        4b0cab202084        11 months ago       157 MB

保存镜像

docker save $(docker images | grep beta | awk {'print $1'} ) -o images

保存完镜像就可以通过scp命令到其他你所需要的节点上

orderer节点要有的镜像

hyperledger/fabric-orderer               latest              11ff350dd297        10 months ago       179 MB

peer节点要有的镜像

hyperledger/fabric-tools              latest              ae6b0f53cb70        10 months ago       1.32 GB
hyperledger/fabric-peer               latest              e01c2b645f11        10 months ago       182 MB

另外各个节点上需要修改hosts

[root@peer0.org1.example.com e2e_cli]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.110 orderer.example.com


root@build e2e_cli]# cat /etc/hosts
hosts        hosts.allow  hosts.deny   
[root@peer1.org1.example.com e2e_cli]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.110 orderer.example.com
192.168.1.109 peer0.org1.example.com

[root@k8s03 e2e_cli]# cat /etc/hosts
hosts        hosts.allow  hosts.deny   
[root@peer0.org2.example.com e2e_cli]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.110 orderer.example.com

[root@peer1.org2.example.com e2e_cli]# cat /etc/hosts
192.168.1.110 orderer.example.com
192.168.1.105 peer0.org2.example.com

生成证书


[root@build e2e_cli]# pwd
/root/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli
[root@build e2e_cli]#./generateArtifacts.sh
...
2018-04-05 19:29:35.807 CST [common/configtx/tool] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2018-04-05 19:29:35.807 CST [common/configtx/tool] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update
[root@build e2e_cli]# ls -l channel-artifacts/
总用量 20
-rw-r--r-- 1 root root  461 45 19:31 channel.tx
-rw-r--r-- 1 root root 6644 45 19:31 genesis.block
-rw-r--r-- 1 root root  250 45 19:31 Org1MSPanchors.tx
-rw-r--r-- 1 root root  250 45 19:31 Org2MSPanchors.tx
[root@build e2e_cli]# ls -l crypto-config
总用量 0
drwxr-xr-x 3 root root 25 45 19:31 ordererOrganizations
drwxr-xr-x 4 root root 54 45 19:31 peerOrganizations
[root@build e2e_cli]# 

然后把整个代码复制到所有的节点

这一节主要是环境的准备,下一节将会讲到具体的修改的内容

您可以在以下示例中找到一个基本的Docker Compose配置文件,用于在Fabric网络中部署和运行多个Peer节点: ```yaml version: '2.3' services: peer0.org1.example.com: container_name: peer0.org1.example.com image: hyperledger/fabric-peer environment: - CORE_PEER_ID=peer0.org1.example.com - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 - CORE_PEER_LISTENADDRESS=0.0.0.0:7051 - CORE_PEER_CHAINCODEADDRESS=peer0.org1.example.com:7052 - CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052 - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org1.example.com:7051 - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051 - CORE_PEER_LOCALMSPID=Org1MSP - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock volumes: - /var/run/:/host/var/run/ ports: - 7051:7051 - 7052:7052 peer1.org1.example.com: container_name: peer1.org1.example.com image: hyperledger/fabric-peer environment: - CORE_PEER_ID=peer1.org1.example.com - CORE_PEER_ADDRESS=peer1.org1.example.com:7051 - CORE_PEER_LISTENADDRESS=0.0.0.0:7051 - CORE_PEER_CHAINCODEADDRESS=peer1.org1.example.com:7052 - CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052 - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051 - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051 - CORE_PEER_LOCALMSPID=Org1MSP - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock volumes: - /var/run/:/host/var/run/ ports: - 8051:7051 - 8052:7052 networks: default: external: name: net_basic ``` 上述配置文件定义了两个Peer节点(peer0.org1.example.com和peer1.org1.example.com),它们都基于hyperledger/fabric-peer镜像运行。每个Peer节点都配置了与其相关的环境变量,例如节点地址、链码地址、本地MSP ID等。此外,配置文件还将宿主机的Docker套接字挂载到Peer容器中,以便让Peer与Docker守护进程进行通信。 请注意,此配置文件假设您已经在网络中创建了名为"net_basic"的外部网络。如果您还没有创建网络,请确保在运行此配置文件之前先创建一个网络。 请根据您的需求进行适当的修改,并确保您已经安装了所需的依赖项和镜像。使用`docker-compose up`命令可以启动网络,并在后台运行Peer节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值