Ubuntu 16.04 联盟链Fabric搭建

联盟链搭建

我是在Ubuntu16.04环境下安装的

一、安装Docker (注意:在安装Docker之前首先需要检查ubuntu 内核版本我是4.13)

1)切换到root用户下

$ su root

 

2)$ uname -r

 

3)验证是否安装了curl

$ which curl

 

备注:如果没有安装则进行安装,具体安装如下:

$ sudo apt-get update

$ sudo apt-get install curl

3)Ubuntu中建立ce存储库

1)安装软件包以允许apt通过HTTPS使用存储库:

$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

2)添加Docker的官方GPG密钥:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

备注:可验证秘钥指纹 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

$ sudo apt-key fingerprint 0EBFCD88

3)更新apt

$ sudo apt-get update

4) 安装最新版本的ce(注意:有可能会失败 我安装失败所有我选择了企业版docker)

$ sudo apt-get -y install docker-ce

如果失败解决如下:

安装python-pip

$ sudo apt-get install python-pip

测试安装是否成功

$ pip -V

 

安装企业版docker

$ pip install docker.io

测试是否安装成功

$ docker --version

 

 

二、安装最新版本的docker-compose

$ pip install docker-compose

测试是否安装成功

$ sudo docker-compose --version

 

 

三、安装go及环境变量配置

(1).下载最新版本的go二进制文件

$ wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz

(2).解压文件

$ sudo tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz

(3).配置环境变量

输入命令:

$ sudo vi /etc/profile

在配置文件末尾添加如下内容:

export GOPATH=$HOME/gopath

export GOROOT=/usr/local/go

export PATH=$GOROOT/bin:$GOPATH/bin:$PATH

 

退出编辑,输入以下命令使修改生效:

$ source /etc/profile

输入以下命令查看是否安装成功:

$ go version

若出现:go version go1.9.2 linux/amd64 则表明配置成功!

 

四、下载Fabric(建议:通过https://github.com/hyperledger/fabric.git下载一个1.0.0版本的Fabric)

1.创建工作目录

mkdir -p ~/gopath/src/github.com/hyperledger/

2.下载Fabric

cd ~/gopath/src/github.com/hyperledger

git clone https://github.com/hyperledger/fabric.git  (注:默认下载的最新1.1.0 可是后面镜像默认下载的是1.0.0所以会出错)

上述下载完成之后,我们可以看到当前工作目录下多了一个fabric的文件夹(如果是手动在网页上下载的需要在/gopath/src/github.com/hyperledger目录下解压但是文件夹不是fabric需要把名称改为fabric

  1. 需要pull镜像

进入到~/gopath/src/github.com/hyperledger/fabric/examples/e2e_clim目录下执行:

source download-dockerimages.sh   (注:一定要下载完所有镜像并且镜像版本要和Fabric版本一致如何没有下载问继续执行source download-dockerimages.sh命令直到在完如图所有镜像)

 

 

重启一下docker

service docker restart

一定要查看go是否可用如果如图需要再执行一下(source /etc/profile)

go version

 

 

五、测试Fabric环境是否成功

~/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli下执行

./network_setup.sh up

 

 

如上图表示成功

ctrl+c退出

启动成功!! 整个Fabric网络已经通了

./network_setup.sh up

这个指令具体进行了如下操作:

编译生成Fabric公私钥、证书的程序,程序在目录:fabric/release/linux-amd64/bin

基于configtx.yaml生成创世区块和通道相关信息,并保存在channel-artifacts文件夹。

基于crypto-config.yaml生成公私钥和证书信息,并保存在crypto-config文件夹中。

基于docker-compose-cli.yaml启动1Orderer+4Peer+1CLIFabric容器。

CLI启动的时候,会运行scripts/script.sh文件,这个脚本文件包含了创建Channel,加入Channel,安装Example02,运行Example02等功能。

 

六、测试代码

这里有官方提供的小例子,在官方例子中,channel名字是mychannel,链码的名字是mycc

首先进入CLI,然后重新打开一个命令行窗口,输入:

docker exec -it cli bash

这时用户为root@748dafdc900b,在/opt/gopath/src/github.com/hyperledger/fabric/peer目录下,运行以下命令可以查询a账户的余额:

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

如果在界面上看到了90表示正在运行chainchode链码

CLI中测试Example02

首先我们需要登录到CLI这个容器中,才能执行FabricCLI命令。

docker exec -it cli bash

如果成功进入,我们会切换到该容器的root用户下,得到如下的命令行目录:

root@5db681539c3c:/opt/gopath/src/github.com/hyperledger/fabric/peer#

 

链上代码是需要经过InstallInstantiate两步的。下面我们首先安装Example02,并指定一个名字,比如我们这里就用devincc:

peer chaincode install -n devincc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02

 

测试成功

 

posted @ 2018-04-02 13:39 菜鸟是你吗 阅读(...) 评论(...) 编辑 收藏