Hyperledger Fabric是一个提供分布式账本解决方案的平台。Hyperledger Fabric被设计成支持不同的模块组件直接拔插启用。
系统要求:
Ubuntu18.04虚拟机
先卸载老版docker:
$sudo apt-get remove docker docker-engine docker.io containerd runc
安装docker:
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
加入Docker官方GPG key:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
验证一下:
$ sudo apt-key fingerprint 0EBFCD88
设置稳定版仓库:
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
注意,这一步是对于x86_64 / amd64位的,如需其他版本请去docker官网看文档,传送门:https://docs.docker.com/engine/install/ubuntu/
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
安装成功了。
如果想不想安装对应的最新版本,想安装其他版本,可以选择以下命令:
$apt-cache madison docker-ce
docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
...
这时会出现对应的版本,复制你想要的版本,经你想要的版本替换下面命令中的
$ sudo apt-get install docker-ce= docker-ce-cli= containerd.io
最后,我们验证一下docker是否安装成功:
$ sudo docker run hello-world
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
注意这里要在本机中运行上网软件,在ubuntu中设置好代理,具体可以参见文章虚拟机kx上网问题。
设置权限:
sudo chmod +x /usr/local/bin/docker-compose
检查是否安装成功
$ docker-compose --version
==================================================================
到现在基本的docker环境已经配置好了,那么我们接下来安装和配置Go环境:
安装Go:
sudo apt install golang
接下来编辑当前用户的环境变量
vim ~/.profile(也可以gedit)
在最后边追加:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/opt/gopath
载入环境变量:
source ~/.profile
注意创建文件夹:
mkdir -p /opt/gopath/src/github.com/hyperledger
==========================================================================
下面我们开始配置hyperledge fabric:
cd /opt/gopath/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
请切换到最新分支2.0.0上
git checkout v2.0.0
之后,拉取docker镜像及一些可执行文件。
请注意,这一步时间非常长,在没有配置阿里云加速的情况下我下了一个晚上也没有成功,请配置好阿里云加速:
然后运行命令:
./opt/gopath/src/github.com/hyperledger/fabric/scripts/bootstrap.sh
切换到
/opt/gopath/src/github.com/hyperledger/fabric
运行
curl -sSL https://bit.ly/2ysbOFE | bash -s
这个命令是拉取一个脚本并运行,我们可以进入https://bit.ly/2ysbOFE查看脚本。分析一下脚本:
这里是拉取了release文件
这里是拉取fabric-sample库:
剩下还有拉取docker镜像等功能,就不一一列举了。
运行完上述命令后,我可以发现fabric文件夹中出现了fabric-samples文件夹和hyperledger-fabric-linux-amd64-2.0.0.tar.gz,将其拷贝到fabric-samples文件夹下并解压。
如果因为种种原因,上述脚本无法运行(一般来说是因为要配置curl代理和github代理的问题),由于我们已经分析过脚本了,在这里有一种替代的方法:
1.git clone fabric-sample 到fabric文件夹(再github上搜索fabric-sample)
2.下载https://github.com/hyperledger/fabric/releases中关于2.0.0版本的平台文件。
拷贝到虚拟机中,在fabric-sample文件夹下解压,发现多出来来给你个文件夹bin和config
3.进入basic-network 文件夹运行start.sh脚本,下载相应的docker image
现在我们已经配置好了fabric,下面我们来验证一下:
进入fabric-samples文件夹
进入basic-network 文件夹运行start.sh脚本
./start.sh
然后切换到fabric-samples/first-network文件夹下,
./bysn.sh up
总结,在配置的过程中会遇到各种各样的问题,非fabric本身的问题有很多,比如:
curl -sSL https://bit.ly/2ysbOFE | bash -s --
以获取特定的平台文件时会发现有的脚本已经失效了,源码中的有的平台迁移了
总之,请耐心地配置,遇到问题善用google,千万不要想一蹴而就。当摩托车出问题的时候,一颗导致问题的螺丝就和这辆摩托车一样重要了。