首页
首页
文章目录
  1. 1、安装Golang环境
    1. 1.1下载golang
    2. 1.2配置go的环境变量
  2. 2、下载docker
    1. 2.1安装docker
    2. 2.2 Docker-Compose的安装
  3. 3、Fabric源码下载
    1. 3.1 github上clone 下载源代码
    2. 3.2 Fabric Docker镜像的下载
  4. 4、编译cryptogen
  5. 5 、修改文件运行区块链
  6. 到此,fabric 环境的搭建和演示就结束了。

ubuntu下搭建区块链 (Hyperledger Fabric)

博主环境:华为云Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-165-generic x86_64)

*使用root用户登录 *

1、安装Golang环境

1.1下载golang

  • 下载

    1
    wget https://studygolang.com/dl/golang/go1.9.linux-amd64.tar.gz
  • 安装

    1
    tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz

1.2配置go的环境变量

  • 打开配置文件

    1
    vim ~/.bashrc
  • 修改文件(在下面加入)

    1
    2
    3
    GOROOT=/usr/local/go 
    GOPATH=~/go
    PATH=$GOPATH/bin:$PATH

    如果配置过其他的环境,java什么的,PATH加到后面就行

    PATH=$JAVA_HOME/bin:$ZK_HOME/bin:$GOPATH/bin:$PATH

  • 保存退出(esc,输入:wq)

    1
    source .bashrc
  • 新建 go的目录GOPATH

    1
    mkdir go

2、下载docker

2.1安装docker

  • 安装必要的一些系统工具
1
apt-get update
  • 安装GPG证书
1
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
  • 写入软件源信息
1
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
  • 更新并安装 Docker-CE
1
2
apt-get -y update
apt-get -y install docker-ce
  • 查看是否安装完成,显示当前的docker版本
1
docker version
  • 注销并重新登录,然后添加阿里云的Docker Hub镜像
1
mkdir -p /etc/docker
  • 修改文件

    1
    vim /etc/docker/daemon.json
  • 加入

    1
    "registry-mirrors": ["https://obou6wyb.mirror.aliyuncs.com"]
  • 保存退出,重启docker

    1
    2
    systemctl daemon-reload
    systemctl restart docker

2.2 Docker-Compose的安装

  • 要安装Python-pip:
1
sudo apt-get install python-pip
  • 然后是安装docker-compose
1
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
1
2
sudo mv ~/docker-compose /usr/local/bin/docker-compose 
chmod +x /usr/local/bin/docker-compose

3、Fabric源码下载

3.1 github上clone 下载源代码

  • 我们可以使用Git命令下载源码,首先需要建立对应的目录,然后进入该目录,Git下载源码:
1
2
3
mkdir -p ~/go/src/github.com/hyperledger 
cd ~/go/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
  • Fabric 切换到指定版本v1.0.0(这个喜欢用哪个版本都可以,我看网上1.0.0多一点,就用了这个)
1
2
cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0

3.2 Fabric Docker镜像的下载

  • 下载
1
2
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
  • 下载完毕后,检查下载的镜像列表:
1
执行命令:docker images

4、编译cryptogen

  • 编译生成 cryptogen之前我们需要安装一个软件包,否则编译时会报错
1
apt install libtool libltdl3-dev
  • Fabric提供了专门编译cryptogen的入口,我们只需要运行以下命令即可:
1
2
cd ~/go/src/github.com/hyperledger/fabric
make cryptogen
  • 运行后系统返回如下结果即代表编译成功了
1
2
3
build/bin/cryptogen 
CGO_CFLAGS=" " GOBIN=/home/studyzy/go/src/github.com/hyperledger/fabric/build/bin go install -tags "" -ldflags "-X github.com/hyperledger/fabric/common/tools/cryptogen/metadata.Version=1.0.0" github.com/hyperledger/fabric/common/tools/cryptogen
Binary available as build/bin/cryptogen

5 、修改文件运行区块链

  • 切换路径
1
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli
  • 修改 ~/etc/resolv.conf 配置
1
vim  ~/etc/resolv.conf

将 options ** 内容注释掉,作者修改后的内容如下

1
2
3
4
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
127.0.0.1
# options timeout:2 attempts:3 rotate single-request-reopen

执行启动命令,它会启动一个 mychannel 的channel ls

1
./network_setup.sh up mychannel

进入到docker 的shell 中

1
docker exec -it cli bash

查看a 用户有多少余额

1
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
  • 如果要转帐20 元给b,执行以下命令
1
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"]}'
  • 再来查看a的余额,就变为70元
1
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
  • 关闭e2e_cli 的demo服务
1
exit
  • 关闭 myChannel
1
./network_setup.sh down myChannel

到此,fabric 环境的搭建和演示就结束了。

支持一下
扫一扫,支持一下,爱你。
  • 微信扫一扫
  • 支付宝扫一扫