联盟链搭建
我是在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 (注:默认下载的最新1.1.0 可是后面镜像默认下载的是1.0.0所以会出错) 上述下载完成之后,我们可以看到当前工作目录下多了一个fabric的文件夹(如果是手动在网页上下载的需要在/gopath/src/github.com/hyperledger目录下解压但是文件夹不是fabric需要把名称改为fabric)
进入到~/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+1CLI的Fabric容器。 在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这个容器中,才能执行Fabric的CLI命令。 docker exec -it cli bash 如果成功进入,我们会切换到该容器的root用户下,得到如下的命令行目录:
链上代码是需要经过Install和Instantiate两步的。下面我们首先安装Example02,并指定一个名字,比如我们这里就用devincc: peer chaincode install -n devincc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
测试成功 |