Hyperledger Fabric 开发和运行环境搭建

一 环境配置

VirtualBox 5.1.12

Git 2.18.0

Go 1.10.3

Windows下设置GOPATH开发目录

Vagrant 2.1.2

进入BIOS设置Virtuallization为enable

二 Fabric开发环境搭建

1 配置Git

  git config --get core.autocrlf

  git config --global core.autocrlf false

2 建立开发目录

  cd $GOPATH

  mkdir -p src/github.com/hyperledger

3 下载fabric项目

  git clone https://github.com/hyperledger/fabric.git

4 切换至v1.0.0版本

  cd fabric

  git checkout v1.0.0

5 拷贝virtualbox.box至devenv,并添加到box list

  vagrant box add hyperledger virtualbox.box

6 移除devenv下Vagrantfile文件,并初始化box

  vagrant init hyperledger

7 启动vagrant(可在Vagrantfile添加box.name)

  vagrant up

8 关闭virtualbox中虚拟机,并替换回原本的Vagrantfile

  要指定的Vagrantfile,不然会少掉fabric层

9 连接virtualbox虚拟机

  vagrant ssh

10 Xshell登录

  Address:127.0.0.1:2222

  Username:vagrant

  Password:vagrant

11 Go安装

  下载Go:wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz

  添加到/usr/local路径:tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz

  配置go环境变量:vim ~/.bashrc

    export PATH=$PATH:/usr/local/go/bin

    export GOROOT=/usr/local/go

    export PATH=$PATH:$GOROOT/bin

    export GOPATH=/opt/gopath

  保存bashrc修改:source ~/.bashrc

12 Docker-Compose 安装

       curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose

  mv ~/docker-compose /usr/local/bin/docker-compose

  chmod +x /usr/local/bin/docker-compose

三 Fabric运行环境搭建

1 把root用户添加到docker

  usermod -aG docker root

2 新建docker目录

  mkdir -p /etc/docker

3 添加阿里云Docker Hub镜像

  tee /etc/docker/daemon.json <<-'EOF'

  {

    "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]

  }

  EOF

  systemctl daemon-reload

  systemctl restart docker

4 下载e2e_cli的Docker镜像

  cd /opt/gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/

  source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

5 启动e2e_cli项目

  ./network_setup.sh up

6 测试e2e_cli项目

  切换到root权限:sudo su

  进入CLI:docker exec -it cli bash

  1)  查询a账户余额:

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

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

  3)  再次查询a账户

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

猜你喜欢

转载自www.cnblogs.com/jychao/p/9280300.html