本文记录了在virtualBox6.1.8上的ubuntu16.04.7上使用容器docker18.09.7安装fanbric最新版本,搭建单机多节点fabric基础网络的过程。
fabric环境配置
-
环境准备:使用vscode插件,ssh连接ubuntu。
-
进行换源
-
更新软件源
sudo apt update sudo apt upgrade
安装相关环境
docker安装
-
安装docker.io
sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker docker --version
-
将非root用户添加到docker组。
sudo groupadd docker # 添加docker组 sudo usermod -aG docker kate #将当前用户添加到docker组里面
重启电脑,使用
docker images
测试。 -
安装
docker compose
sudo apt install docker-compose docker-compose --version
cURL安装
sudo apt-get install curl
GO语言环境安装
-
从官网下载最新版本:
curl -O https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
-
解压:
tar -xvf go1.10.3.linux-amd64.tar.gz
得到
./go/
文件夹:ls go/
计算机的输出是:
api bin CONTRIBUTORS favicon.ico LICENSE PATENTS README.md src VERSION AUTHORS CONTRIBUTING.md doc lib misc pkg robots.txt test
-
进入 go 可执行文件目录:
cd ./go/bin/
查看文件
ls
计算机的输出:
go godoc gofmt
其中上面三个文件都是绿色,说明是可执行文件。
-
得到当前目录的绝对路径
pwd
计算机的输出:
/home/flyq/workspace/go/bin
因此拿着这个绝对论据去设置go的环境变量(就是去修改 .bashrc 文件):
用编辑器打开 ~/.bashrc 文件,比如我是用 vim:
vim ~/.bashrc
在最后一行添加:(具体添加的是刚才查询到的路径)
export PATH=$PATH:/home/kate/fabric/go/bin/
然后保存好,更新一下:
source ~/.bashrc
运行
go version
出现以下结果即表示安装成功:go version go version go1.10.3 linux/amd64s
-
最后设置一下
GOPATH
环境变量,同样是修改~/.bashrc
文件:-
创建一个新建目录 gopath:
mkdir gopath
; -
进入这个目录:
cd gopath
; -
创建需要的文件夹:
mkdir src bin pkg
; -
得到当前目录的绝对路径:
pwd
; -
将添加这两行到
~/.bashrc
下面:vim ~/.bashrc
;source ~/.bashrc
go 环境已经安装并配置好了.
-
安装 gopm
注:如果你的终端环境能翻墙,这步跳过。 如果不能翻墙,那么就无法使用 go get
来获取对应的项目,这里推荐用 gopm get
来获取对于项目,因为它是无需翻墙的。
拉去 gopm
代码:
cd $GOPATH/src
mkdir -p github.com/gpmgo/
cd ./github.com/gpmgo
git clone https://github.com/gpmgo/gopm.git
cd ./gopm
go build
ls
然后可以看到会生成一个可执行文件 gopm
,把它复制到 $GOPATH/bin
下面即可:
cp ./gopm $GOPATH/bin
运行:
gopm --version
得到输出:
Gopm version 0.8.8.0307 Beta
说明安装成功。
接下来你就可以在任意路径下使用 gopm get
来代替 go get
了。
Fabric环境部署&运行示例
-
下载fabric源代码
mkdir -p $GOPATH/src/github.com/hyperledger cd $GOPATH/src/github.com/hyperledger git clone https://github.com/hyperledger/fabric.git
-
docker组件下载
-
搜索镜像
docker search fabric
-
拉取合适镜像
docker pull hyperledger/fabric-ca docker pull hyperledger/fabric-orderer docker pull hyperledger/fabric-peer docker pull hyperledger/fabric-ccenv docker pull hyperledger/fabric-tools docker pull hyperledger/fabric-baseos docker pull hyperledger/fabric-kafka docker pull hyperledger/fabric-zookeeper docker pull hyperledger/fabric-couchdb
-
-
主要节点的依赖关系:
遇到的问题
-
push镜像的时候:
error pulling image configuration: Get https://registry-1.docker.io/v2/hyperledger/fabric-ca/blobs/sha256:dbbc768aec79740d023872893260a3be124b657782593a44676ffa6112977883: net/http: TLS handshake timeout
原因:官方的仓库下载速度太慢
解决办法:换源
-
使用https://www.daocloud.io/mirror#accelerator-doc
该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
sudo systemctl restart docker //重启docker
-
或者换阿里的镜像(阿里的更加稳定一点)
修改/etc/docker/daemon.json文件配置,没有则新建
{ "registry-mirrors": ["https://m3dz4myl.mirror.aliyuncs.com"] }
重启daemon
systemctl daemon-reload
重启docker服务
systemctl restart docker
-