区块链(BlockChain)是一个不可修改的账本,Hyperledger Fabric是一个知名的开源区块链框架,通过ChainCode支持智能合约(Smart Contracts),常用于记录不可更改的交易(事务)。
这篇博客适用于Ubuntu 14.04 16.04以及18.04 LTS,将用较为简便的方法安装Fabric与Fabric CA 1.4.2。
需要安装的依赖有cURL、Docker、Docker Compose、Go Language、Node.js、NPM、Python,其中部分依赖可能已经预先安装在Ubuntu中了,跳过或重新安装均可。
默认会预先安装在Ubuntu中,可跳过此步,无版本要求。
sudo apt install curl
Docker最低版本要求为17.06.2社区版,Docker Compose最低要求为1.14.0。
Docker安装最新的社区版即可,可以使用自动安装脚本。
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
同样的,Docker Compose安装最新版本即可,可以在GitHub上查看最新的版本。
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
/usr/local/bin/docker-compose
Go需要安装1.12.x版本,以1.12.7为例。
curl https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz -o go1.12.7.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.12.7.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
/usr/local/go
Node.js支持8或10,分别需要8.9.4以上或10.15.3以上,以10.16.2为例。
curl https://nodejs.org/dist/v10.16.2/node-v10.16.2-linux-x64.tar.xz -o node-v10.16.2-linux-x64.tar.xz
sudo mkdir -p /usr/local/lib/nodejs
sudo tar -C /usr/local/lib/nodejs -xJvf node-v10.16.2-linux-x64.tar.xz
export PATH=$PATH:/usr/local/lib/nodejs/node-v10.16.2-linux-x64/bin
/usr/local/lib/nodejs/node-v10.16.2-linux-x64
Fabric需要Python2,而Ubuntu从16.04开始便只预安装Python3,需要手动安装Python2,14.04可以跳过这一步。
sudo apt install python
自动安装脚本的url为https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh
,缩略后的url为http://bit.ly/2ysbOFE
,如果后者打不开,请使用前者代替。
脚本的使用方法:bootstrap.sh [Fabric版本 [CA版本 [第三方版本]]] [选项]
-h
选项:显示帮助文本-d
选项:跳过Docker镜像下载-s
选项:跳过样例下载-b
选项:跳过平台相关二进制文件下载例如,下面的命令将会安装Fabric 1.4.2,且不下载样例。
sudo curl -sSL http://bit.ly/2ysbOFE -o bootstrap.sh
sudo chmod +x ./bootstrap.sh
sudo ./bootstrap.sh 1.4.2 1.4.2 0.4.15 -s
如果这一步的Pulling fabric Images
下载过慢,请参考下面的“Docker Hub 镜像源”。
安装Fabric的过程中需要从Docker Hub拉取内容,国内的访问速度可能不是特别理想,所以可以使用Docker Hub 镜像源来加速这一过程。
推荐使用中国科学技术大学的镜像源https://docker.mirrors.ustc.edu.cn/
。
编辑文件/etc/default/docker
,加入或修改以下内容:
DOCKER_OPTS="--registry-mirror=https://docker.mirrors.ustc.edu.cn/"
然后重新启动服务。
sudo service docker restart
编辑文件/etc/docker/daemon.json
,加入或修改以下内容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}
重启服务。
sudo systemctl restart docker
https://hyperledger-fabric.readthedocs.io/en/release-1.4/prereqs.html
https://hyperledger-fabric.readthedocs.io/en/release-1.4/install.html