超级账本1 【Fabric 环境搭建】

2018年9月18日 作者 jacky

超级账本是由Linux基金会牵头,IBM,Intel,Cisco共同宣布了Htperledger联合项目成立的。
超级账本项目为透明,公开,去中心化的企业级分布式账本技术提供开源参考实现。目前超级账本的社区中有:艾亿数融、OnChain、比邻共赢、BitSE、布比、三一童工、万达、华为等诸多企业加入

超级账本首次将区块链技术引入到分布式联盟账本的应用场景中,为未来基于区块链技术打造高效率的商业网络奠定了基础。

超级账本有面向不同目录和场景的八大顶级子项目构成:

  • Fabric:目标是区块链的基础核心平台,支持PBFT(拜占庭容错算法)等新的共识机制,支持权限管理
  • Sawtooth:是Intel主要发起和贡献的区块链平台,支持全新的基于硬件芯片的共识机制Proof Of Elapsed Time(POEF)
  • iroha:账本平台项目,基于C++实现,带有面向web和Mobile的特性
  • BlockChain explorer:提供Web操作界面,可查询查看绑定的区块链的状态(区块链的个数,交易历史)信息等。
  • Cello:提供区块链平台的部署和运行时管理功能,应用开发者无需关心如何搭建和维护区块链。
  • Indy:提供基于分布式账本技术的数字身份管理机制。
  • Composer:提供面向链码开发的高级语言支持,自动生成链码。
  • Burrow:提供以太坊虚拟机的支持,实现支持高效交易带权限的区块链平台

Fabric是基于Go语言实现的。项目地址:https://github.com/hyperledger/fabric

环境搭建

快速入门https://github.com/hyperledger/fabric

环境前提:

  • git
  • curl
  • Docker (version 1.12 + )
  • Docker Compose
  • Goland (Fabric 1.1.0要求Go1.9+,1.0.0要求GO1.7+)
  • Node环境

环境安装命令

$ sudo apt update 
$ sudo apt install git
$ sudo apt install curl
$ sudo apt install docker.io
$ docker --version
$ sudo apt install docker-compose
$ dokcer-compose --verion

GO环境安装

$ tar -zxvf go1.10.1.linux-amd64.tar.gz -C /usr/local/
  

添加GO到环境变量

$ vim /etc/profile
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH

$ source /etc/profile
$ go version

安装Node和npm

安装nvm

$ sudo apt update
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash
$ export NVM_DIR="$HOME/.nvm"
$ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

安装Node和查询相应的版本

$ nvm install v8.11.1
$ node -v
$ npm -v

Hyperledger Fabric Samples 下载安装

创建一个空目录

mkdir jacky-hyperledger-fabric

下载方式一

新建文件bootstrap.sh

$ vim bootstrap.sh

https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.sh中的内容拷贝处理保存

$ chmod 777  bootstrap.sh

配置docker加速器

配置docker加速器的目的是为了下载docker镜像的快一点

$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://8890cb8b.m.daocloud.io

重启docker服务

$ sudo systemctl restart docker.service

指定bootstrap.sh脚本

$ sudo ./bootstrap.sh 1.1.0

下载方式二(建议使用方式一的下载方式):

$ curl
https://github.com/hyperledger/fabric/blob/master/scripts/bootstrap.
sh | bash -s 1.1.0

安装输出的结果:

hyperledger/fabric-ca
weeks ago    299 MB
hyperledger/fabric-ca
weeks ago    299 MB
hyperledger/fabric-tools
weeks ago    1.46 GB
hyperledger/fabric-tools       x86_64-1.1.0    b7bfddf508bc   5
weeks ago    1.46 GB
latest          72617b4fa9b4   5
x86_64-1.1.0    72617b4fa9b4   5
latest          b7bfddf508bc   5
hyperledger/fabric-orderer     latest          ce0c810df36a   5
weeks ago    180 MB
hyperledger/fabric-orderer     x86_64-1.1.0    ce0c810df36a   5
weeks ago    180 MB
hyperledger/fabric-peer        latest          b023f9be0771   5
weeks ago    187 MB
hyperledger/fabric-peer        x86_64-1.1.0    b023f9be0771   5
weeks ago    187 MB
hyperledger/fabric-javaenv     latest          82098abb1a17   5
weeks ago    1.52 GB
hyperledger/fabric-javaenv     x86_64-1.1.0    82098abb1a17   5
weeks ago    1.52 GB
hyperledger/fabric-ccenv       latest          c8b4909d8d46   5
weeks ago    1.39 GB
hyperledger/fabric-ccenv       x86_64-1.1.0    c8b4909d8d46   5
weeks ago    1.39 GB
hyperledger/fabric-zookeeper   latest          92cbb952b6f8   2
months ago   1.39 GB
hyperledger/fabric-zookeeper   x86_64-0.4.6    92cbb952b6f8   2
months ago   1.39 GB
hyperledger/fabric-kafka       latest          554c591b86a8   2
months ago   1.4 GB
....

添加环境变量

 $ export PATH=<path to download location>/bin:$PATH

ps: 表示下载的fabric-samples文件目录所在路径

到这里为止,Hyperledger-fabric的环境就搭建好了