一、环境配置
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 root@47.52.202.124:/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