零基础搭建区块链Hyperledger Fabric v1.0环境

  2018新年伊始,一个被大家炒的比较热门的技术映入大众眼帘,没错就是“区块链”,这个去中心化技术的爆红得益于以比特币为代表的数字货币最近这几年的疯涨,也因此伴随着衍生出各种诸如“挖矿”、“矿工”、“矿机”...等新鲜词汇。作为一名搞技术的理工男,区块链适合研发什么样的项目,如何着手研发,它的技术特性及优势...才是我们最关心的。下面就来介绍下Hyperledger Fabric v1.0的搭建过程~

 

环境搭建所需准备的软件及版本

Linux系统Ubuntu 16.04 + go1.9 linux/amd64 + docker17.12.0-ce + docker-compose 1.12.0

 

1、如果是windows开发环境的话建议先装一个VMware,之后下载Ubuntu系统的iso镜像ubuntukylin-16.04-desktop-amd64.iso。将该镜像文件载入到VMware中安装运行,如果出现安装好的虚拟机无法自适应屏幕大小,则可以参考另一篇博文:VMware安装的虚拟机窗口如何自适应屏幕大小

 

2、更新apt source为国内

 

在终端中执行以下命令行查看apt源列表

$ sudo vi /etc/apt/sources.list 

 

如果其中看到的是http://us.xxxxx之类的,那么就是外国的,如果看到的是http://cn.xxxxx之类的,那么就不用换的。 

 

如果是us,则在命令模式下,输入: 

:%s/us./cn./g 

批量替换,然后输入 :wq 保存退出

 

3、安装go

a,由于Ubuntu的apt-get自带的go版本太低,这里我们重新安装,输入指令:
$ wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz

b,解压
$ sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz 

c,编辑当前用户的环境变量
$ vi ~/.profile

d,在最后添加以下内容

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$HOME/go/bin

e,:wq保存并退出

f,重新编译载入环境变量
$ source ~/.profile

 

注意:我们把go的目录GOPATH设置在当前用户的文件夹下,所以记得要创建go文件夹 

$ cd ~ 回到根目录 

$ mkdir go 创建go文件夹 

 

4、安装docker

具体安装步骤请参考另一篇博文:Ubuntu 16.04环境下安装Docker17.12.0-ce详细步骤

 

5、安装docker-compose(官方推荐为1.8.0版本以上,这里我们下载的是1.12.0) 

a,从docker-compose官网获取linux环境下对应版本的下载命令并执行
$ sudo curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

b,给当前用户增加docker-compose的安装目录可执行权限
$ chmod +x /usr/local/bin/docker-compose

c,查看docker-compose的安装版本,验证是否安装成功
$ docker-compose version

 

6、下载fabric源码

a,创建存放源码的文件夹
$ mkdir -p ~/go/src/github.com/hyperledger

b,切换到存放源码的文件夹目录下
$ cd ~/go/src/github.com/hyperledger

c,用git命令下载完整源码 
$ git clone https://github.com/hyperledger/fabric.git

 

7、下载fabric的docker镜像

a,切换到上一步下载好的fabric源码目录fabric/examples/e2e_cli/下
$ cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/

b,执行以下命令开始下载fabric的docker镜像
$ source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

c,执行以下命令查看已下载的docker镜像
$ docker images

 

8、启动Fabric网络

 

首先进入到fabric/examples/e2e_cli/下,这里提供了启动、关闭Fabric网络的自动化脚本。我们要启动Fabric网络,并自动运行Example02 ChainCode的测试,执行以下命令: 

$ ./network_setup.sh up

 

这个过程比较漫长,需要耐心等待一会,最终看到end-e2e打印体界面,那就说明整个Fabric网络已经通了。Ctrl + C 退出,启动成功。

 

qiangjy@ubuntu:~/go/src/github.com/hyperledger/fabric/examples/e2e_cli$ ./network_setup.sh up
setting to default channel 'mychannel'
mychannel

Building cryptogen
make: Entering directory '/home/qiangjy/go/src/github.com/hyperledger/fabric'
Building release/linux-amd64/bin/configtxgen for linux-amd64
mkdir -p release/linux-amd64/bin
CGO_CFLAGS=" " GOOS=linux GOARCH=amd64 go build -o /home/qiangjy/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxgen -tags "nopkcs11" -ldflags "-X github.com/hyperledger/fabric/common/configtx/tool/configtxgen/metadata.Version=1.0.0" github.com/hyperledger/fabric/common/configtx/tool/configtxgen
Building release/linux-amd64/bin/cryptogen for linux-amd64
mkdir -p release/linux-amd64/bin
CGO_CFLAGS=" " GOOS=linux GOARCH=amd64 go build -o /home/qiangjy/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/cryptogen -tags "nopkcs11" -ldflags "-X github.com/hyperledger/fabric/common/tools/cryptogen/metadata.Version=1.0.0" github.com/hyperledger/fabric/common/tools/cryptogen
Building release/linux-amd64/bin/configtxlator for linux-amd64
mkdir -p release/linux-amd64/bin
CGO_CFLAGS=" " GOOS=linux GOARCH=amd64 go build -o /home/qiangjy/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxlator -tags "nopkcs11" -ldflags "-X github.com/hyperledger/fabric/common/tools/configtxlator/metadata.Version=1.0.0" github.com/hyperledger/fabric/common/tools/configtxlator
Building release/linux-amd64/bin/peer for linux-amd64
mkdir -p release/linux-amd64/bin
CGO_CFLAGS=" " GOOS=linux GOARCH=amd64 go build -o /home/qiangjy/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/peer -tags "nopkcs11" -ldflags "-X github.com/hyperledger/fabric/common/metadata.Version=1.0.0 -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.3.1 -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric -X github.com/hyperledger/fabric/common/metadata.DockerNamespace=hyperledger -X github.com/hyperledger/fabric/common/metadata.BaseDockerNamespace=hyperledger" github.com/hyperledger/fabric/peer
Building release/linux-amd64/bin/orderer for linux-amd64
mkdir -p release/linux-amd64/bin
CGO_CFLAGS=" " GOOS=linux GOARCH=amd64 go build -o /home/qiangjy/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/orderer -tags "nopkcs11" -ldflags "-X github.com/hyperledger/fabric/orderer/metadata.Version=1.0.0" github.com/hyperledger/fabric/orderer
mkdir -p release/linux-amd64/bin
make: Leaving directory '/home/qiangjy/go/src/github.com/hyperledger/fabric'

##########################################################
##### Generate certificates using cryptogen tool #########
##########################################################
org1.example.com
org2.example.com

Using configtxgen -> /home/qiangjy/go/src/github.com/hyperledger/fabric/examples/e2e_cli/../../release/linux-amd64/bin/configtxgen
##########################################################
#########  Generating Orderer Genesis block ##############
##########################################################
2018-02-08 15:13:52.659 CST [common/configtx/tool] main -> INFO 001 Loading configuration
2018-02-08 15:13:52.802 CST [common/configtx/tool] doOutputBlock -> INFO 002 Generating genesis block
2018-02-08 15:13:52.804 CST [common/configtx/tool] doOutputBlock -> INFO 003 Writing genesis block

#################################################################
### Generating channel configuration transaction 'channel.tx' ###
#################################################################
2018-02-08 15:13:52.851 CST [common/configtx/tool] main -> INFO 001 Loading configuration
2018-02-08 15:13:52.855 CST [common/configtx/tool] doOutputChannelCreateTx -> INFO 002 Generating new channel configtx
2018-02-08 15:13:52.856 CST [common/configtx/tool] doOutputChannelCreateTx -> INFO 003 Writing new channel tx

#################################################################
#######    Generating anchor peer update for Org1MSP   ##########
#################################################################
2018-02-08 15:13:52.873 CST [common/configtx/tool] main -> INFO 001 Loading configuration
2018-02-08 15:13:52.881 CST [common/configtx/tool] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2018-02-08 15:13:52.881 CST [common/configtx/tool] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update

#################################################################
#######    Generating anchor peer update for Org2MSP   ##########
#################################################################
2018-02-08 15:13:52.895 CST [common/configtx/tool] main -> INFO 001 Loading configuration
2018-02-08 15:13:52.899 CST [common/configtx/tool] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2018-02-08 15:13:52.900 CST [common/configtx/tool] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update

Creating network "e2ecli_default" with the default driver
Creating peer1.org1.example.com
Creating peer0.org1.example.com
Creating peer0.org2.example.com
Creating peer1.org2.example.com
Creating orderer.example.com
Creating cli

 ____    _____      _      ____    _____           _____   ____    _____ 
/ ___|  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值