fabric 1.1教程(一):搭建第一个fabric网络
fabric 1.1教程(一):搭建第一个fabric网络
一、前提条件
1.1、系统适配
需要linux内核到4.x及以上,内存2G及以上,本教程运行在centos7.2上。
1.2、安装docker
要求:Docker version 17.06.2-ce及以上
(1)官方安装
参考:https://docs.docker.com/install/linux/docker-ce/centos/#prerequisites
(2)阿里云安装
- 安装docker-ce
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache
yum install docker-ce -y
- 查询版本是否正确
[[email protected] master]# docker --version
Docker version 18.06.1-ce, build e68fc7a
- 重启docker并设置为开机自启
systemctl start docker & systemctl enable docker
1.3、安装docker-compose
要求 :Docker Compose 版本1.14.0及以上
(1) 官方安装
-
安装docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
-
查询版本是否正确
[[email protected] master]# docker-compose --version docker-compose version 1.18.0, build 8dd22a9
(2) pip安装
-
安装docker-compose
yum -y install epel-release yum -y install python-pip pip install --upgrade pip
-
查询版本是否正确
[[email protected] master]# docker-compose --version docker-compose version 1.18.0, build 8dd22a9
1.4、安装golang
要求:Go语言版本在1.9.X及以上
-
下载并解压到/usr/local文件夹
Wget https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz tar -C /usr/local -xzf go1.10.1.linux-amd64.tar.gz
-
设置环境变量
-
创建gopath文件夹
mkdir -p /home/master/gopath
-
设置环境变量:GOPATH(go语言运行目录)、GOROOT(go语言安装包目录)
vim /etc/profile
,在其最后添加以下代码:export GOROOT=/usr/local/go export GOPATH=$HOME/gopath export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
-
-
查询版本是否正确
[[email protected] master]# go version
go version go1.10.4 linux/amd64
1.5、参考资料
官方文档:https://hyperledger-fabric.readthedocs.io/en/release-1.1/prereqs.html
二、源码下载
2.1 下载fabric源码
mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric.git
2.2 切换到release-1.1分支
cd fabric
git checkout release-1.1
git branch -a
显示结果为:
* release-1.1
release-1.2
remotes/origin/HEAD -> origin/release-1.2
remotes/origin/feature/ca
remotes/origin/feature/convergence
remotes/origin/master
remotes/origin/release-1.0
remotes/origin/release-1.1
remotes/origin/release-1.2
remotes/origin/v0.6
remotes/origin/v1.0.0-preview
2.3 下载fabric-samples
cd $GOPATH/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric-samples.git
2.4 切换到release-1.1分支
cd fabric-samples
git checkout release-1.1
git branch -a
显示结果为:
* release-1.1
release-1.3
remotes/origin/HEAD -> origin/release-1.3
remotes/origin/master
remotes/origin/release
remotes/origin/release-1.0
remotes/origin/release-1.1
remotes/origin/release-1.2
remotes/origin/release-1.3
三、编译或下载二进制文件
注:可以通过编译或者下载的方法生成二进制文件,二者选其一即可
### (1)下载法
-
进入到fabric-samples文件夹,通过wget下载1.1.0 版本的二进制文件
cd fabric-samples/ wget https://nexus.hyperledger.org/content/repositories/releases/org/hyperledger/fabric/hyperledger-fabric/linux-amd64-1.1.0/hyperledger-fabric-linux-amd64-1.1.0.tar.gz
-
解压下载的文件,会发现多了bin和config两个个文件夹
tar -zxvf hyperledger-fabric-linux-amd64-1.1.0.tar.gz
-
将bin文件夹下的二进制文件,拷贝到环境变量中
cp bin/* /usr/local/bin
(2) 编译法
-
安装相关依赖组件
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
-
进入fabric文件夹
cd $GOPATH/src/github.com/hyperledger/fabric
-
编译fabric组件
make release make docker
编译结束后,相关二进制文件存放在以下目录中:
$GOPATH/src/github.com/hyperledger/fabric/release/linux-adm64/bin
-
将bin文件夹下的二进制文件,拷贝到环境变量中
cp release/linux-adm64/bin/configtxgen /usr/local/bin cp release/linux-adm64/bin/configtxlator /usr/local/bin cp release/linux-adm64/bin/cryptogen /usr/local/bin cp release/linux-adm64/bin/orderer /usr/local/bin cp release/linux-adm64/bin/peer /usr/local/bin
-
修改文件的执行权限
chmod -R 775 /usr/local/bin/configtxgen chmod -R 775 /usr/local/bin/configtxlator chmod -R 775 /usr/local/bin/cryptogen
-
模块安装结果检查
[[email protected] fabric]# cryptogen version cryptogen: Version: 1.1.2-snapshot-9db3fbc Go version: go1.10.4 OS/Arch: linux/amd64 [[email protected] fabric]# cryptogen version cryptogen: Version: 1.1.2-snapshot-9db3fbc Go version: go1.10.4 OS/Arch: linux/amd64
四、下载镜像
- 进入到fabric下的scripts文件夹,运行bootstrap.sh,此过程需要等待几分钟
cd fabric/scripts/
./bootstrap.sh
- 通过
docker iamges
命令查看镜像
五、快速部署一个fabric网络
-
进入到fabric-samples/first-network
cd $GOPATH/src/github.com/hyperledger/fabric-samples/first-network
-
生成配置文件。执行下方代码后,会出现
Continue? [Y/n]
输入y选择同意后,则默认生成的通道名为mychannel的配置信息./byfn.sh generate
-
起动项目
./byfn.sh -m up
如果成功,则运行过程中不会报错,最终结果显示为:
-
成功后,关闭网络
./byfn.sh -m down
六、总结:
如果成功完成所有操作,看到上图所示的界面,那么,恭喜你,完成了fabric网络的搭建,已经快速部署了一个fabric网络,实现了对链码的操作。从而,从宏观上对fabric项目有了一定的认识,同时也表明你的电脑环境已经适用于fabric的开发了。下一教程,将详细介绍fabric网络部署以及链码的调用的各个步骤,谢谢!