本文设定了一个简单的Fabric网络场景,包括2个organization,每个有2个peer,并使用“solo” ordering服务。网络实体所需的加密材料(x509证书)已预先生成并放到相应目录和配置文件里了,你无需修改这些配置。examples/e2e_cli文件夹里包含了docker-compose文件和要用来创建和测试网络的脚本文件。
本文还演示了使用配置生成工具configtxgen生成网络配置。
1.前提
完成以下安装Fabric源码和编译configtxgen
工具:
- 完成环境安装,具体可以参考官方文档和博客,以及知乎专栏
- 拉取fabric源码
git clone https://github.com/hyperledger/fabric.git
- 编译
configtxgen
工具: 如果运行在Linux,在Fabric目录下执行以下命令:cd $GOPATH/src/github.com/hyperledger/fabric make configtxgen # 如果出错:'ltdl.h' file not found sudo apt install libtool libltdl-dev # 然后再运行make make configtxgen
编译成功后输出:
build/bin/configtxgen CGO_CFLAGS=" " GOBIN=/Users/johndoe/work/src/github.com/hyperledger/fabric/build/bin go install -ldflags "-X github.com/hyperledger/fabric/common/metadata.Version=1.0.0-snapshot-8d3275f -X github.com/hyperledger/fabric/common /metadata.BaseVersion=0.3.0 -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric" github.com/hyperledger/fabric/common/configtx/tool/configtxgen Binary available as build/bin/configtxgen``
编译后执行文件放在Fabric目录下的的
build/bin/configtxgen
```git //这里GOPATH路径出现问题 //应该这样设置才是正确的
vi ~/.profile
export PATH=$PATH:/usr/local/go/bin export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$HOME/go/bin
source ~/.profile
### 2. 执行完整脚本
- fabric源码下载之后,进入fabric路径
```git
cd ~/go/src/github.com/hyperledger/fabric
// 由于Fabric一直在更新,所有我们并不需要最新最新的源码,需要切换到v1.0.0版本的源码即可:
git checkout v1.0.0
- 进行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
得到结果如下:
3. 启动Fabric网络并完成测试
我们仍然停留在e2e_cli文件夹,这里提供了启动、关闭Fabric网络的自动化脚本。我们要启动Fabric网络,并自动运行Example02 ChainCode的测试,执行一个命令:
./network_setup.sh up