1. 简介
基于上一篇文章的基础环境,我们接着准备Fabric的相关组件并启动一个单机网络。
2. Fabric组件安装
Hyperledger (超级账本)是一组开源工具,旨在构建一个强大的、业务驱动的区块链框架。Hyperledger (超级账本)是区块链行业中最大的项目之一,它由一组开源工具和多个子项目组成。该项目是由 Linux 基金会主办的一个全球协作项目,其中包括一些不同领域的领导者们,这些领导者们的目标是建立一个强大的、业务驱动的区块链框架。
Hyperledger Fabric 是 Hyperledger 项目的基石。它是基于许可的区块链,或者更准确地说是一种分布式分类帐技术(DLT),该技术最初由 IBM 公司和 Digital Asset 创建。分布式分类帐技术被设计为具有不同组件的模块化框架(概述如下)。它也是提供可插入的共识模型的一种灵活的解决方案,尽管它目前仅提供基于投票的许可共识。
2.1 下载源码
通过git下载相关的源码并切换到对应的分支,本次使用的V1.4.0:
# 准备文件夹
sudo mkdir -p $GOPATH/src/github.com/hyperledger/
cd $GOPATH/src/github.com/hyperledger/
# 从github仓库下载源码
sudo git clone https://github.com/hyperledger/fabric.git
cd fabric
# 切换到对应的分支
sudo git checkout v1.4.0
# 检查当前分支
sudo git branch -v
main 687fa1e0a Create HashedIndex in Pvtdata Store retroactively
* (头指针分离于 v1.4.0) d700b4347 Merge "[FAB-13555] Release fabric v1.4.0" into release-1.4
2.2 编译源码
通过make工具获取构建网络所需要的工具:
make release
# bin目录下的工具是我们需要的
cd release/linux-amd64/bin/
ll
total 139160
drwxr-xr-x 2 root root 4096 Mar 27 16:59 ./
drwxr-xr-x 3 root root 4096 Mar 27 16:59 ../
-rwxr-xr-x 1 root root 18382880 Mar 27 16:59 configtxgen*
-rwxr-xr-x 1 root root 20274424 Mar 27 16:59 configtxlator*
-rwxr-xr-x 1 root root 11929624 Mar 27 16:59 cryptogen*
-rwxr-xr-x 1 root root 19367224 Mar 27 16:59 discover*
-rwxr-xr-x 1 root root 829 Mar 27 16:59 get-docker-images.sh*
-rwxr-xr-x 1 root root 10738976 Mar 27 16:59 idemixgen*
-rwxr-xr-x 1 root root 27215424 Mar 27 16:59 orderer*
-rwxr-xr-x 1 root root 34562296 Mar 27 16:59 peer*
2.3 准备构建
将bin目录下的工具复制到对应的位置上,并授予执行权限:
cd /opt/gopath/src/github.com/hyperledger/fabric
mkdir singlepeer
cp -r ./release/linux-amd64/bin/ ./singlepeer
cd singlepeer
sudo chmod -R 755 ./bin/*
2.4 下载镜像
由于Fabric使用容器化的方式运行组件,所以我们需要使用docker下载对应的镜像:
# 拉取镜像
sudo docker pull hyperledger/fabric-peer:1.4
sudo docker pull hyperledger/fabric-orderer:1.4
sudo docker pull hyperledger/fabric-tools:1.4
sudo docker pull hyperledger/fabric-ccenv:1.4
sudo docker pull hyperledger/fabric-baseos:0.4
sudo docker pull hyperledger/fabric-kafka:latest
sudo docker pull hyperledger/fabric-zookeeper:latest
sudo docker pull hyperledger/fabric-couchdb:latest
3. 编写配置文件
在singlepeer目录下准备三个配置文件,用于构建区块链网络。我们构建的网络有一个排序节点,一个peer节点。构建网络所用的工具为:
- cryptogen:构建身份认证相关的工具,主要生成整个网络中每个peer所需要的CA证书;
- configtxgen:构建创世区块所用的工具,主要包括了对整个网络的配置。
构建网络所需要的配置文件通常是根据HyperLedger Fabric官方提供的sample configuration进行修改的,不建议个人手动编写,以免格式上出错。
文件名称 | 说明 |
---|---|
crypto-config.yaml | 构建身份认证相关的工具,主要生成整个网络中每个peer所需要的CA证书和密钥 |
configtx.yaml | 构建创世区块所用的工具,主要包括了对整个网络的配置 |
docker-compose-node.yaml | 对启动的容器的参数进行配置,利用docker-compose快速启动 |
3.1 crypto-config.yaml
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
# ---------------------------------------------------------------------------
# "OrdererOrgs" - Definition of organizations managing orderer nodes
# ---------------------------------------------------------------------------
OrdererOrgs:
# ---------------------------------------------------------------------------
# Orderer
# ---------------------------------------------------------------------------
- Name: Orderer
Domain: example.com
# ---------------------------------------------------------------------------
# "Specs" - See PeerOrgs below for complete description
# ---------------------------------------------------------------------------
Specs:
- Hostname: orderer
# ---------------------------------------------------------------------------
# "PeerOrgs" - Definition of organizations managing peer nodes
# ---------------------------------------------------------------------------
PeerOrgs:
# ---------------------------------------------------------------------------
# Org1
# ---------------------------------------------------------------------------
- Name: Org1
Domain: org1.example.com
EnableNodeOUs: true
# ---------------------------------------------------------------------------
# "S