hyperledger多机部署

一、环境配置

5台服务器全部是centos7.4

orderer 47.75.123.155 orderer.example.com orderer

peer0.org1 47.52.202.124 

二、服务器的初始化和安装有关软件

(1)更新依赖源 sudo yum update

(2)安装docker

sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2

(3)安装有关的依赖

sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo

(4)安装docker-ce

sudo yum install docker-ce

(5)检查安装结果

docker --version

(6)启动 service docker start

(7)每次自动启动 chkconfig docker on

(8)安装curl 命令 yum install curl

(9)下载docker-compose,注意不是单引号

sudo curl -L https://github.com/docker/compose/releases/download/1.20.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

(10)cp /usr/local/bin/docker-compose /usr/bin

(11)docker-compose version  如果提示权限不足,那么chmod +x /usr/local/bin/docker-compose

(12)安装go

curl -O https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz

tar -C /usr/local -xzf go1.10.1.linux-amd64.tar.gz

解压缩到/usr/local目录

  (13)配置环境

vim /etc/profile

export PATH=$PATH:/usr/local/go/bin

export GOPATH=/opt/gopath

source /etc/profile

(14)查看go 安装信息

echo $PATH

go version

(15)安装git

yum install git

(16)创建安装目录

mkdir -p /opt/gopath/src/github.com/hyperledger

(17)进入安装目录

cd /opt/gopath/src/github.com/hyperledger

(18)拉取源代码

git clone https://github.com/hyperledger/fabric.git

(19)切换到分支

cd fabric

git checkout -b v1.0.0 切换到分支

git checkout v1.0.0   这两个有差异!应该这样而不是上面的 -b是新建分支的意思!

(20)拉取docker

------------------------------------------------------------

cd fabric/examples/e2e_cli/

chmod +x download-dockerimages.sh

./download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

docker images 查看下载内容

8、运行fabric网络

./network_setup.sh up

如果遇到问题,参考

https://blog.csdn.net/frankxixu/article/details/80641336

2018-01-26 05:03:26.153 UTC [msp/identity] Sign -> DEBU 00f Sign: digest: A5892BF4C08D07882B34D959932CFA784DE00E1B29D40411B1CF8B59C16DF557 
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x63 pc=0x7ff4023cb259]

./network_setup.sh down

docker rm -f $(docker ps -aq)

解决办法:

修改vim /etc/resolv.conf 配置,将 options timeout:2 attempts:3 rotate single-request-reopen 这一行内容注释掉

还有问题的话 rm -rf fabric文件夹 重来

生成了bin 在fabric/release/linux-amd64/下

在fabric目录下mkdir aberic目录

将bin考入aberic

./network_setup.sh down 先停止服务

cp -r bin /opt/gopath/src/github.com/hyperledger/fabric/aberic

还需要configtx.yaml 和 crypto-config.yaml

这两个文件来自/opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli

cp configtx.yaml /opt/gopath/src/github.com/hyperledger/fabric/aberic

cp crypto-config.yaml /opt/gopath/src/github.com/hyperledger/fabric/aberic

配置文件已经齐了!

准备启动  aberic目录下

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

结果生成

org1.example.com

org2.example.com

crypto-config 目录也添加了

生成创世区块

export FABRIC_CFG_PATH=$PWD

在fabric/aberic目录下执行以上

echo $PWD

输出:/opt/gopath/src/github.com/hyperledger/fabric/aberic

6、执行创世区块生成

在fabric/aberic目录下创建channel-artifacts目录

mkdir channel-artifacts

执行

./bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

./bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel

分析:之前单独拉取docker image或者下载bin文件,都导致各种的问题

最终通过执行example/e2e-cli 的 network_setup 脚本 完成

说明该脚本中下载了合适版本的二进制工具!

三、准备orderer启动脚本

1、准备docker-orderer.yaml脚本,内容P91

2、在aberic目录下启动

docker-compose -f docker-orderer.yaml up -d

docker ps  没有信息?

./bin/configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/mychannel.tx -channelID mychannel

这步不能少

四、启动1个peer节点(单独服务器) peer0.org1

1、按照第二步准备好环境

2、遇到了错误:

可能是1G内存不够!此时bin文件目录已经生成,先继续

./bin/configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block

上面这步没做

把chaincode 目录考入 aberic  /opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode

cp -r chaincode /opt/gopath/src/github.com/hyperledger/fabric/aberic

3、准备peer0.org1启动脚本 P92-P93

其中具体的 CA编号要替换

scp -r /Users/developer/Desktop/hyperledger/scripts/docker-peer01.yaml [email protected]:/opt/gopath/src/github.com/hyperledger/fabric/aberic

docker-compose -f docker-peer01.yaml up -d

进入cli

创建 mychannel

peer channel create -o orderer.example.com:7050 -c mychannel -t 50 -f ./channel-artifacts/mychannel.tx

猜你喜欢

转载自blog.csdn.net/frankxixu/article/details/81348874