Hyperledger Fabric环境搭建流程记录详解

Fabric环境搭建记录 :

什么是超级账本Fabric:

1、Fabric的本质:
与一般区块链技术的相同点:Fabric与其他区块链技术一样,都有一个账本。和以太坊相像,也允许使用智能合约。从本质上看,它是参与者共同管理交易的系统,是联盟链的典型应用。

2、与一般区块链技术的不同点:

  • 具有多种节点类型。不同节点赋予了不同的功能,增加了交易处理效率。

  • 拥有准入资格授权机制。要成为超级账本Fabric的成员,首先要在MSP进行注册。

  • 提供可插拔的选项。数据可以以多种格式存储,支持多种功能模块,如共识、权限管理模块等,模块允许加入或退出。

  • 允许创建多通道。允许参与者建立单独的交易账本,不同通道间信息隔离。

3、Fabric的几个特性

  • 代币:Fabric是准入型网络,通过激励制度来保证网络安全与可持续性的需求不大,因此也没有代币机制。

  • 区块打包:没有设置出块时间,有交易时才创建新区块,另外区块的大小也可以灵活设置。

  • 共识不可逆转:以基于工作量证明共识机制的公有链为例,共识结果是可以随着时间的发生进行调整或改变。而Fabric的共识机制具有最终性,一旦达成,不可逆转。

  • 数据的隐私与安全:Fabric可以对交易进行追踪,防止抵赖,但数据只有进行了授权才可以访问,隐私性强。另外,也有对数据的监管和审计,安全性高。

  • 作为联盟链的一个典型应用,各个节点通过授权后才能加入与退出网络,共同维护区块链的健康运转。它的可插拔性、可编程性、多通道性、完整的身份管理机制、以及对不同模块的支持等特性,也使得它更容易与实际应用相结合,与企业相结合。

Fabric环境搭建具体步骤:

本机环境是macOS,虚拟机是Ubuntu16.04 64位,有时候按步骤安装也会报错和出现缺少组建的情况这可能是网络波动的原因,所以建议用一个新的虚拟机来装有问题直接重装因为有些问题自己没法查错,多试几遍即可。

1、环境搭建

  • 安装合适版本的的Ubuntu 64位
  • 为了获取更快的下载速度,这里采用换源操作:
sudo cp /etc/apt/sources.list 
sudo vim /etc/apt/sources.list

然后根据需要换成清华阿里的镜像源:

https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/

Hyperledger Fabric环境搭建流程记录详解_第1张图片
然后更新一下源即可:

 sudo apt-get update 

如果没安装ssh可以安装下,这样接下来就可以用Xshell或者SecureCRT之类的客户端远程连接Ubuntu:

sudo apt-get install ssh

2、安装golang

  • 下载go二进制⽂文件:
$ wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
  • 解压压缩包文件:
sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
  • 配置用户环境变量:

先打开配置文件:

vim ~/.profile

再添加这几句进去:

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

输入:wq 编辑保存并退出vim后,记得使这些环境变量生效:

source ~/.profile

将go的目录GOPATH设置为当前⽤用户的⽂文件夹下,创建go⽂件夹,一般他会自动创建。

 cd ~ 
 mkdir go

3、docker安装

  • 由于apt官⽅方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:
sudo apt-get remove docker docker-engine docker.io containerd runc
  • 更新apt包索引:
sudo apt-get update
  • 安装以下包以使apt可以通过HTTPS使用存储库(repository):
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
  • 添加DaoClound的镜像https://www.daocloud.io/mirror#accelerator-doc:(替代官⽅方Docker’s official GPG key: $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - )
 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s
http://f1361db2.m.daocloud.io
  • 修改权限,添加当前用户到组 sudo usermod -aG docker $ USER ,其中的$USER表示当前的⽤户名。

  • 使⽤下⾯的命令来设置stable存储库:

sudo add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 更新一下apt包索引:
sudo apt-get update
  • 安装最新版本的Docker CE:
sudo apt-get install -y docker-ce

注意:在⽣产系统上,可能会需要应该安装⼀一个特定版本的Docker CE,⽽不是总是使用最新版本: 列出可用的版本:apt-cache madison docker-ce 选择要安装的特定版本,第⼆列是版本字符串,第三列是存储库名称,它指示包来自哪个存储库,以及扩展它的稳定性级别。要安装一个 特定的版本,将版本字符串附加到包名中,并通过等号(=)分隔它们: sudo apt-get install docker-ce=

  • 测试是否安装成功 :
docker --version
  • 保存并退出,接着执⾏:
sudo systemctl daemon-reload sudo systemctl restart docker
  • 查看docker服务是否启动:
 systemctl status docker

若未启动,则启动docker服务:
sudo service docker start或者sudo systemctl start docker

4、Docker-compose安装

  • Docker-compose是⽀持通过模板脚本批量创建Docker容器器的⼀个组件。在安装Docker-
    Compose之前,需要安装Python-pip,运⾏脚本:
sudo apt-get install python-pip
  • 然后是安装docker-compose,我们从官方网站(https://github.com/docker/compose/release s)下载也可以从国内的进行DaoClound下载,为了速度快接下来从DaoClound安装Docker- compose,运⾏脚本:
curl -L
https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-
compose-`uname -s`-`uname -m` > ~/docker-compose
sudo mv ~/docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
sudo mv ~/docker-compose /usr/local/bin/docker-compose

sudo mv ~/docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

官方推荐为1.8.0版本以上,这⾥我们下载的是1.12.0

  • 验证是否成功:
docker-compose --version

5、配置Git

直接git clone速度很慢,因为github.global.ssl.fastly.Net域名被限制了。只要找到这个域名对应
的ip地址,然后在hosts⽂件中加上ip–>域名的映射,刷新DNS缓存就可以了。

  • 查询域名 global-ssl.fastly.Net 和 github.com 公⽹地址:可以使用https://www.ipaddres
    s.com/ 查以下两个地址:
github.global.ssl.fastly.net github.com
  • 将ip地址添加到hosts⽂文件:
sudo vim /etc/hosts

在⽂件下方输⼊下面内容并保存,前⾯面两个ip就是我们刚才上面查找到的ip:

151.101.185.194 github.global.ssl.fastly.net 192.30.253.113 github.com
  • 修改完hosts还不会立即生效,你需要刷新DNS缓存,告诉电脑我的hosts⽂件已经修改了了。
sudo /etc/init.d/networking restart

如果不行也可以尝试重启一下电脑,接下来再去git clone就快很多了了。

6、Fabric源码下载

  • 我们可以使⽤用Git命令下载源码,⾸先需要建立对应的目录,然后进入该目录,Git下载源码:
mkdir -p ~/go/src/github.com/hyperledger
cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
  • 由于Fabric⼀一直在更新,所有我们并不需要最新的源码,需要切换到v1.0.0版本的源码即可:
cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0

7、下载Fabric Docker镜像

  • 这个其实很简单,因为我们已经设置了Docker Hub镜像地址,所以下载也会很快。官⽅文件也提供了批量量下载的脚本。我们直接运行:
  cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
  source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

时间较长,需要保持网络稳定。

下载完成后,检查下载的镜像列列表:

docker images

Hyperledger Fabric环境搭建流程记录详解_第2张图片

8、启动Fabric⽹络并完成ChainCode的测试

我们仍然停留在e2e_cli⽂件夹,这⾥提供了启动、关闭Fabric网络的⾃动化脚本。我们要启动Fabric⽹络,并自动运行Example02 ChainCode的测试,执行⼀个命令:

./network_setup.sh up

这个做了以下操作:

1、编译生成Fabric公私钥、证书的程序,程序在目录:fabric/release/linux-amd64/bin
2、基于configtx.yaml⽣生成创世区块和通道相关信息,并保存在channel-artifacts⽂件夹。
3、基于crypto-config.yaml⽣成公私钥和证书信息,并保存在crypto-config⽂件夹中。
4、基于docker-compose-cli.yaml启动1Orderer+4Peer+1CLI的Fabric容器器。
5、在CLI启动的时候,会运行scripts/script.sh⽂件,这个脚本文件包含了创建Channel,加入 Channel,安装Example02,运行Example02等功能。

最后运⾏完毕,我们可以看到这样的界面:
Hyperledger Fabric环境搭建流程记录详解_第3张图片

9、测试一下Fabric网络

  • 我们仍然是以现在安装好的Example02为例,在官方例⼦中,channel名字是mychannel,链码的名字是mycc。我们⾸先进入CLI,我们重新打开一个命令行窗口,输入:
docker exec -it cli bash
  • 运行以下命令可以查询a账户的余额:
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
  • 可以看到余额是90:

在这里插入图片描述

  • 然后,我们试⼀试把a账户的余额再转20元给b账户,运⾏命令:
peer chaincode invoke -o orderer.example.com:7050  --tls true --cafile
/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations
/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-
cert.pem  -C mychannel -n mycc -c '{"Args":["invoke","a","b","20"]}'
  • 现在转账完毕我们试⼀试再查询一下a账户的余额,没问题的话,应该是只剩下70了。
  • 最后,我们需要关闭Fabric,这⾥先使用exit命令退出cli容器exit 。再输入以下命令停止
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli
./network_setup.sh down

Hyperledger Fabric环境搭建流程记录详解_第4张图片
⾄此,现在我们整个Fabric的环境已经测试完毕,恭喜⼀切正常,接下来我们就是去做⾃己的区块链的开发了。

你可能感兴趣的:(Fabric,区块链,环境,hyperledger,区块链)