搭建fabric1.0的开发环境+e2e_cli例子的运行

环境说明:

     vmware workstation 12   

    ubuntu 16   desktop版本的

    windows10   

   

    下面我将一步一步的进行操作搭建起fabric的开发环境,可以运行简单的例子程序。第一步是将需要的工具安装上,前提ubuntu可以上网。为了避免访问github.com等网站被墙,需要提前给ubuntu设置好网络代理,前提主机可以用工具进行。

如何设置网络代理:参考https://www.atgfw.org/2015/04/0.html

需要的工具安装

   git:

        先执行以下: apt-get update, 然后直接执行apt install git进行安装。

   golang:

        参考:http://www.linuxdiyf.com/linux/24581.html

        我的配置:

        export GOROOT="/usr/local/go"                    //这个是你的golang解压后的路径
        export GOBIN=$GOROOT/bin
        export GOPATH=/opt/gopath                          //这个目录后面自己会创建出来,不要忘了在该目录下建立bin, src, pkg三个目录
        export PATH=$PATH:$GOBIN

   curl:

        参考:http://www.linuxidc.com/Linux/2014-11/109910.htm

   docker:

       直接执行集成脚本:curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

       然后执行run测试一下,如下图所示:

      搭建fabric1.0的开发环境+e2e_cli例子的运行_第1张图片

   pip:

      执行:apt install python-pip

   docker-composer:

      参考:https://yeasy.gitbooks.io/docker_practice/content/compose/install.html

      执行:sudo pip install -U docker-compose

      可以执行:docker-compose --version检查一下是否安装成功,如下图所示:

     

   node.js:

      (建议创建一个目录专门存放需要下载的压缩包)

      在该目录下执行:wget https://nodejs.org/download/release/v6.9.5/node-v6.9.5-linux-x64.tar.gz

      然后进行解压:tar -zxvf node-v6.9.5-linux-x64.tar.gz

      然后进入到该解压包的bin/下,可以看到一个node的执行文件,执行./node -v可以看到版本号:6.9.5

      对配置文件.bashrc进行设置:vim ~/.bashrc 

      在PATH变量后面加上一个冒号和你的该node执行文件的路径,如下图所示:(保存退出)

    

     然后执行:

               source ~/.bashrc

     可以检查一下是否安装成功了:

    

     

   布置环境:

   1:下载代码

        创建一个放项目的目录:mkdir -p /opt/gopath/src/github.com/hyperledger    (很多资料和脚本都会自动去找这个目录,建议这样创建)
        进入该目录:cd /opt/gopath/src/github.com/hyperledger/
        下载代码:git clone http://gerrit.hyperledger.org/r/fabric

          或者:     git clone https://git.oschina.net/mellymeng/fabric.git

        这是目录下回多一个文件夹fabric,进去就是fabric项目了。

        

  2:下载镜像

         可以使用脚本进行自动下载:

           curl -sSL https://goo.gl/iX9dek | bash

        如果你报端口443拒绝连接可以参考一下我的解决方法,比较傻瓜式的:

       搭建fabric1.0的开发环境+e2e_cli例子的运行_第2张图片

    其中prepare文件中将https://goo.gl/iX9dek网页上面的脚本内容拷贝进去,保存。

    这个脚本文件会把平台需要的二进制文件下载下来(多一个bin目录), 而来会把需要的镜像都下载下来。(需要等待一些时间)

    搭建fabric1.0的开发环境+e2e_cli例子的运行_第3张图片

    下载镜像会比较的慢,请用阿里加速器,我之前有写这方面博客(http://blog.csdn.net/mellymengyan/article/details/77323691),或者百度一下。

    镜像下载以后:

   搭建fabric1.0的开发环境+e2e_cli例子的运行_第4张图片

     并且会多一个bin目录,下面是需要的二进制执行文件:

    

    下面编辑一下配置文件~/.bashrc将该bin目录加上:

    

    

   编译代码:

      执行make docker命令,一直到success。

       (中间会出现各种各样的问题,可以参考我的前面的文章,看看有没有帮助:http://blog.csdn.net/mellymengyan/article/details/77529747)  

   

    运行e2e_cli例子(自动):

       进入到fabric目录中,执行:git checkout v1.0.0, 将版本1.0确认一下。

        进入examples/e2e_cli中,执行:source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0, 将所有需要的镜像全部下载下来,latest版本,最终将会看到如下:       搭建fabric1.0的开发环境+e2e_cli例子的运行_第5张图片

 搭建fabric1.0的开发环境+e2e_cli例子的运行_第6张图片

        在e2e_cli中,有自动启动,关闭网络的脚本,并且在脚本中设置了自动执行测试的脚本,测试中用到了example02  chaincode例子。接下来执行

./network_setup.sh up 命令启动fabric网络。启动过程中主要分为两个过程:

       1:进行相关的部署和准备工作:

       搭建fabric1.0的开发环境+e2e_cli例子的运行_第7张图片

    2:执行测试脚本,部署example02例子并执行:

搭建fabric1.0的开发环境+e2e_cli例子的运行_第8张图片

    最后出现这个画面,说明所有的测试都是正常的,成功的!

   搭建fabric1.0的开发环境+e2e_cli例子的运行_第9张图片

      

  运行e2e_cli例子(手动):

       我们可以直接在上面fabric网络启动起来,并跑完测试例子的基础上进行手动测试:

       执行docker ps,查看当前的容器状态:

       搭建fabric1.0的开发环境+e2e_cli例子的运行_第10张图片搭建fabric1.0的开发环境+e2e_cli例子的运行_第11张图片

    上面三个dev开头的容器是三个链码容器,一个fabric-tools充当客户端cli, 4个fabric-peer, 一个fabric-order提供节点共识服务。

    接下里我们执行:docker exec -it cli bash  进入cli容器,进行操作测试:  

    首先,在example02上面已经对a进行了初始化,所以我们不用再初始化了,直接进行查询:

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

   

   查询结果为90, 说明a现在有90元。

   下面我们做一个交易,a向b转账20元。

   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"]}'

   搭建fabric1.0的开发环境+e2e_cli例子的运行_第12张图片

       然后再查询a: peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

      搭建fabric1.0的开发环境+e2e_cli例子的运行_第13张图片

   发现A还剩70了,说明是正确的。通过exit来退出该容器。

   至此,例子和环境都成功了。最后执行./network_setup.sh down, 进行网络的关闭和清理。

   搭建fabric1.0的开发环境+e2e_cli例子的运行_第14张图片

你可能感兴趣的:(区块链(fabric))