本文记录了在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