ubuntu18.04搭建基于Raft共识的fabric1.4网络环境
环境准备
安装golang
-
下载最新包
wget https://studygolang.com/dl/golang/go1.13.4.linux-amd64.tar.gz
-
解压安装
sudo tar -C /usr/local -zxf go1.13.4.linux-amd64.tar.gz
-
配置环境变量
// 以下方式选择一种
// 系统环境变量
vim ~/.bashrc
// 用户环境变量
vim /etc/profile
追加以下代码
export GOPATH=~/gopath
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
生效配置
source ~/.bashrc
source /etc/profile
查看是否安装成功
go version
安装Docker && Docker Compose
-
通过版本库安装 docker ce
// 添加HTTPS协议,允许apt从HTTPS安装软件包 sudo apt-get install apt-transport-https ca-certificates curl software-properties-common // 添加Docker 公共密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add // 设置版本库类型(Ubuntu18.04对应版本“bionic“”),软件版本包括三种:** stable、edge、test** sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" // 更新系统包索引 sudo apt-get update // 安装最新版Docker CE sudo apt-get install docker-ce
-
安装docker-compose
- 进入https://github.com/docker/compose/releases 查看最新版本,当前版本为1.24.1
sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
- 设置权限
sudo chmod +x /usr/local/bin/docker-compose
- 查看是否安装成功
docker-compose --version
-
配置Docker镜像加速器
sudo vim /etc/docker/daemon.json
添加官方加速地址
https://registry.docker-cn.com
{ "registry-mirrors": ["https://registry.docker-cn.com"] }
重启
sudo systemctl daemon-reload sudo systemctl restart docker
安装node.js
搭建网络
fabric源码下载
-
直接使用
go get
命令获取github源码go get github.com/hyperledger/fabric
-
执行引导脚本,自动下载fabric-samples和fabric镜像 (非必须)
cd $GOPATH/src/github.com/hyperledger/fabric ./scripts/bootstrap.sh
运行fabric-samples
-
编译fabric工具
cd $GOPATH/src/github.com/hyperledger/fabric // 编译 cryptogen make cryptogen // 编译 configtxgen make coinfigtxgen
编译后会在build/bin目录下生成
cryptogen
和coinfigtxgen
,将其复制到$GOPATH/bin下cp build/bin/cryptogen $GOPATH/bin cp build/bin/coinfigtxgen $GOPATH/bin
-
执行byfn.sh脚本,初始化网络
cd $GOPATH/src/github.com/hyperledger/fabric-samples/first-network/ ./byfn.sh generate
启动网络,此时会自动拉取fabric镜像
./byfn.sh up
关闭网络,同时会删除docker fabric容器
./byfn.sh down
修改共识 solo -> etcdraft
-
修改脚本
byfn.sh
将
CONSENSUS_TYPE="solo"
修改为CONSENSUS_TYPE="etcdraft"
疑难杂症
有疑问加站长微信联系(非本文作者)