ubuntu下搭建区块链(Hyperledger Fabric)


title: ubuntu下搭建区块链 (Hyperledger Fabric)
date: 2020-01-04 19:50:36
tags: 区块链
category: 教程


本文首发于喜欢二福的沧月君的小站

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

**使用root用户登录 **

1、安装Golang环境

1.1下载golang

  • 下载

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

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

1.2配置go的环境变量

  • 打开配置文件

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

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

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

    PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:ZK_HOME/bin: G O P A T H / b i n : GOPATH/bin: GOPATH/bin:PATH

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

    source .bashrc
    
  • 新建 go的目录GOPATH

    mkdir go
    

2、下载docker

2.1安装docker

  • 安装必要的一些系统工具
apt-get update
  • 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
  • 写入软件源信息
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

  • 更新并安装 Docker-CE
apt-get -y update
apt-get -y install docker-ce

  • 查看是否安装完成,显示当前的docker版本
docker version

  • 注销并重新登录,然后添加阿里云的Docker Hub镜像
mkdir -p /etc/docker

  • 修改文件

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

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

    systemctl daemon-reload
    systemctl restart docker
    
    

2.2 Docker-Compose的安装

  • 要安装Python-pip:
sudo apt-get install python-pip

  • 然后是安装docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose

sudo mv ~/docker-compose /usr/local/bin/docker-compose 
chmod +x /usr/local/bin/docker-compose

3、Fabric源码下载

3.1 github上clone 下载源代码

  • 我们可以使用Git命令下载源码,首先需要建立对应的目录,然后进入该目录,Git下载源码:
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多一点,就用了这个)
cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0

3.2 Fabric Docker镜像的下载

  • 下载
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

  • 下载完毕后,检查下载的镜像列表:
执行命令:docker images

4、编译cryptogen

  • 编译生成 cryptogen之前我们需要安装一个软件包,否则编译时会报错
 apt install libtool libltdl3-dev

  • Fabric提供了专门编译cryptogen的入口,我们只需要运行以下命令即可:
cd ~/go/src/github.com/hyperledger/fabric
make cryptogen

  • 运行后系统返回如下结果即代表编译成功了
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 、修改文件运行区块链

  • 切换路径
cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli 

  • 修改 /etc/resolv.conf 配置,将 options ********** 内容注释掉,作者修改后的内容如下
# 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

./network_setup.sh up mychannel

进入到docker 的shell 中

docker exec -it cli bash

查看a 用户有多少余额

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

  • 如果要转帐20 元给b,执行以下命令
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元
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

  • 关闭e2e_cli 的demo服务
exit

  • 关闭 myChannel
./network_setup.sh down myChannel

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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值