1,Fabric的程序模块组成

Fabric不是一个单独的程序而是由一组模块组成,这些模块中的每一个都是一个可独立运行的可执行文件。

(1)peer  主节点模块,负责存储区块链数据,运行维护链码;

(2)orderer  负责对交易进行排序,并将排好序的交易打包成区块;

(3)cryptogen  组织和证书生成模块;

(4)configtxgen  区块和交易生成模块;

(5)configtxlator  区块和交易解析模块。

开发一个Fabric应用都需要这些模块的参与。

2,安装Golang运行环境

安装Fabric之前要先安装Golang的运行环境和相关软件

使用wget命令行下载安装包到linux
wget https://studygolang.com/dl/golang/go1.12.linux-amd64.tar.gz

解压到/usr/local
tar -C /usr/local -xzf go1.12.linux-amd64.tar.gz
vi /etc/profile   编辑环境变量文件
export GOROOT=/usr/local/go    go的安装目录
export PATH=$PATH:$GOROOT/bin    添加到环境比变量
export GOPATH=/root/go      设置go的工作目录
export PATH=$PATH:$GOPATH/BIN
刷新环境变量
source /etc/profile
查看go是否安装成功
go --version

3,安装Docker

https://docs.docker.com/install/linux/docker-ce/centos/

安装docker

curl -sSL https://get.daocloud.io/docker | sh
查看是否下载成功,下载的版本是什么:docker version
开启docker服务:service docker start
查看docker运行状态:sudo service docker status
安装完成后要修改当前用户的权限:
sudo usermod -aG docker 用户名
注销并重新登陆,随后添加DaoCloud镜像(加速器):
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://36051225.m.daocloud.io
重新启动docker:
service docker start
sudo service docker status
把docker设置成开机自启动:
systemctl enable docker

安装docker-compose

ubuntu:
sudo apt-get install python-pip
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

centos:
yum -y install epel-release
sudo yum install python-pip
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 

4,Fabric的两种安装方式

4.1利用源码直接编译

利用已有Makefile文件进行make编译,编译完成后,这些模块就可以直接运行了。

第一步:创建目录并下载代码

mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger 
git clone https://github.com/hyperledger/fabric.git  (或者 git clone https://gerrit.hyperledger.org/r/fabric

其中$GOPATH为Golang的工作目录

第二步:安装相关依赖软件

go get github.com/golang/protobuf/protoc-gen-go
mkdir -p $GOPATH/src/github.com/hyperledger/fabric/.build/docker/gotools/bin
cp $GOPATH/bin/protoc-gen-go $GOPATH/src/github.com/hyperledger/fabric/.build/docker/gotools/bin

注意:

(1)如果用go get 命令没有反应,可能是网址被屏蔽,参考https://blog.csdn.net/qq_22211217/article/details/101854419解决

我用的是 设置代理 如下命令

go env -w GOPROXY=https://github.com/goproxy

(2)go get下载的文件会自动存放到$GOBIN对应的目录中,如果没有设置GOBIN,则会存放到$GOPATH/bin下面

第三步:编译Fabric模块

进入Fabric源码所在文件夹,执行下面命令可以一次编译完成fabric的5个主要模块。

cd $GOPATH/src/github.com/hyperledger/fabric
make release

编译结果

[root@localhost fabric]# make release
Building release/linux-amd64/bin/configtxgen for linux-amd64
mkdir -p release/linux-amd64/bin
CGO_CFLAGS=" " GOOS=linux GOARCH=amd64 go build -o /root/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxgen -tags "" -ldflags "-X github.com/hyperledger/fabric/common/tools/configtxgen/metadata.CommitSHA=8196d66" github.com/hyperledger/fabric/common/tools/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 /root/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/cryptogen -tags "" -ldflags "-X github.com/hyperledger/fabric/common/tools/cryptogen/metadata.CommitSHA=8196d66" github.com/hyperledger/fabric/common/tools/cryptogen
Building release/linux-amd64/bin/idemixgen for linux-amd64
mkdir -p release/linux-amd64/bin
CGO_CFLAGS=" " GOOS=linux GOARCH=amd64 go build -o /root/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/idemixgen -tags "" -ldflags "-X github.com/hyperledger/fabric/common/tools/idemixgen/metadata.CommitSHA=8196d66" github.com/hyperledger/fabric/common/tools/idemixgen
Building release/linux-amd64/bin/discover for linux-amd64
mkdir -p release/linux-amd64/bin
CGO_CFLAGS=" " GOOS=linux GOARCH=amd64 go build -o /root/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/discover -tags "" -ldflags "-X github.com/hyperledger/fabric/cmd/discover/metadata.CommitSHA=8196d66" github.com/hyperledger/fabric/cmd/discover
Building release/linux-amd64/bin/configtxlator for linux-amd64
mkdir -p release/linux-amd64/bin
CGO_CFLAGS=" " GOOS=linux GOARCH=amd64 go build -o /root/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/configtxlator -tags "" -ldflags "-X github.com/hyperledger/fabric/common/tools/configtxlator/metadata.CommitSHA=8196d66" 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 /root/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/peer -tags "" -ldflags "-X github.com/hyperledger/fabric/common/metadata.Version=1.4.4 -X github.com/hyperledger/fabric/common/metadata.CommitSHA=8196d66 -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.4.16 -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 /root/go/src/github.com/hyperledger/fabric/release/linux-amd64/bin/orderer -tags "" -ldflags "-X github.com/hyperledger/fabric/common/metadata.Version=1.4.4 -X github.com/hyperledger/fabric/common/metadata.CommitSHA=8196d66 -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.4.16 -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/orderer
[root@localhost fabric]# 
View Code

相关文章: