hyperledger-fabric+docker安装体验

参考

http://hyperledger-fabric.readthedocs.io/en/latest/samples.html

说明

下面【】表示要求的版本

步骤

  1. 安装vmware和ubuntu虚拟客户机,笔者环境为ubuntu16.04.2 LTS和vm12.5.7
  2. 下载安装git 2.14.0【git: 2.9.x or higher
    • 安装依赖包

      sudo apt install zlib1g-dev
    • 下载源代码包
      https://www.kernel.org/pub/software/scm/git/
    • 进入git解压包的根目录,配置安装目录,笔者是/usr/local/git

      ./configure /usr/local/git
    • 编译

      make
    • 安装

      sudo make install
    • 设置环境变量,这一步自行百度
    • 检查

      git --version
  3. 一般linux中非root名字用户无法获得root权限,加入root组也不可以,只能加入sudo用户组,以使用sudo命令行使root权限,然后重启

    usermod -aG sudo <username>
  4. 安装go环境 1.8.3,环境变量配置好后重启
    http://www.cnblogs.com/auh2010006/p/6343231.html

  5. 更新ubuntu的源,使用了阿里云的源

    笔者个人觉得这个源比较新,根据个人选择

    http://blog.csdn.net/paincupid/article/details/52895676

  6. 安装curl工具

    sudo apt install curl
  7. 安装docker,这个下载docker版本是足够的【Version 17.03 or higher

    curl -sSL https://get.docker.com/ | sh

    如果此链接不可用,那就用linux源的docker

    apt install docker
  8. 将用户加入docker组并重启

    usermod -aG docker <username>
  9. 启动hello-world测试docker是否安装成功,效果是,没找到镜像但是会自动去pull下那个镜像

    docker run hello-world
  10. 安装docker-compose,要求【1.8】,阿里源的版本是1.8,如果apt安装的不是该版本范围请自行通过下载压缩包安装

    apt install docker-compose
  11. 安装nodejs【6.x (note version 7 is not supported)如果apt安装的不是该版本范围请自行通过下载压缩包安装

    apt install nodejs

    官网下载

    • 官网下载https://nodejs.org/en/download/
    • 把node包根目录/bin/node和node包根目录/lib/node_modules/npm/bin/npm-cli.js链接到/usr/bin

      ln node包根目录/bin/node /usr/bin/node
      ln node包根目录/lib/node_modules/npm/bin/npm-cli.js /usr/bin/npm
    • 检查

      node --version
      npm --version
  12. 安装npm【v3.x or v5.v如果apt安装的不是该版本范围请自行通过下载压缩包安装

    apt install npm
  13. 为了通过 sudo start docker 启动docker后,就可以远程访问,需要修改docker服务配置,文件位于/etc/default/docker:

    # Use DOCKER_OPTS to modify the daemon startup options.
    #DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
    DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:2375"

    然后重启docker服务

    service docker restart

    参考http://www.cnblogs.com/zqifa/p/linux-docker-3.html

  14. 下载fabric的一些工具和脚本并且自动下载镜像和修改tag这样就省略了后面第16步了(这是个国外链接,需要翻墙,如果找到一个bin的包解压使用,需要第16步)

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

    这个链接不需要翻墙

    curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap-1.0.0-rc1.sh | bash
  15. 配置fabric环境变量并重启,配置的变量是第14步下载了的bin目录,可参考byfn.sh脚本的开头,也可以不配置环境变量但是bin目录要放在第17步下载的fabric-samples第一层文件夹内,因为byfn.sh脚本有设置变量

  16. 进入bin目录,执行fabric中bin文件的get-docker-images.sh获取镜像,会很慢,然后设置别名

    ./get-docker-images.sh
    docker tag 镜像名:tag 新的镜像名:新的tag即latest
  17. 下载一个fabric例子和脚本用于搭建fabric网络

    git clone https://github.com/hyperledger/fabric-samples.git
  18. 进入byfn.sh脚本目录,执行

    ./byfn.sh -m generate

    This first step generates all of the certificates and keys for all our various network entities, the genesis block used to bootstrap the ordering service, and a collection of configuration transactions required to configure a Channel.

    然后,执行

    ./byfn.sh -m up

    up命令其实连带执行了generate命令了,会先判断是否已经生成证书,如果没有就会先执行generate

    测试结束时,执行

    ./byfn.sh -m down

    这个命令是将network摧毁,会删除up过程生成的container、image和证书文件等产生物

  19. 网络搭建成功,测试是否有容器运行

    docker ps
    
    #docker ps -a可以看显示不在运行中的容器
    

开始运行测试

【这里的channel_name是mychannel,chaincode_name是mycc】

  • 安装部署
chaincode:peer chaincode install -n <chaincode_name> -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
  • 初始化
chaincode:peer chaincode instantiate -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 <channel_name> -n <chaincode_name> -v 1.0 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
  • 进入cli容器
docker exec -it cli bash
  • 产生一笔交易
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 <channel_name> -n <chaincode_name> -c '{"Args":["invoke","b","a","50"]}'
  • 查询
peer chaincode query -C <channel_name> -n <chaincode_name> -c '{"Args":["query","b"]}'
  • 打印cli日志
docker logs -f cli
  • 打印某个容器的日志
docker logs dev-peer0.org2.example.com-mycc-1.0

【其他需要的命令参考本文开头的参考链接】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值