🧭
区块链技术指南
  • 前言
  • 修订记录
  • 如何贡献
  • 区块链的诞生
    • 记账科技的千年演化
    • 分布式记账与区块链
    • 集大成者的比特币
    • 区块链的商业价值
    • 本章小结
  • 核心技术概览
    • 定义与原理
    • 技术的演化与分类
    • 关键问题和挑战
    • 趋势与展望
    • 认识上的误区
    • 本章小结
  • 典型应用场景
    • 应用场景概览
    • 金融服务
    • 征信管理
    • 权属管理与溯源
    • 资源共享
    • 物流与供应链
    • 物联网
    • 数字艺术品和 NFT
    • 其它场景
    • 本章小结
  • 分布式系统核心技术
    • 一致性问题
    • 共识算法
    • FLP 不可能原理
    • CAP 原理
    • ACID 原则与多阶段提交
    • Paxos 算法与 Raft 算法
    • 拜占庭问题与算法
    • 可靠性指标
    • 本章小结
  • 密码学与安全技术
    • 密码学简史
    • Hash 算法与数字摘要
    • 加解密算法
    • 消息认证码与数字签名
    • 数字证书
    • PKI 体系
    • Merkle 树结构
    • Bloom Filter 结构
    • 同态加密
    • 其它技术
    • 本章小结
  • 比特币 —— 初露锋芒的区块链
    • 比特币项目简介
    • 比特币诞生背景
    • 工作原理
    • 挖矿过程
    • 共识机制
    • 闪电网络
    • 侧链
    • 热门问题
    • 相关工具
    • 本章小结
  • 以太坊 —— 挣脱加密货币的枷锁
    • 以太坊项目简介
    • 核心概念
    • 主要设计
    • 相关工具
    • 安装客户端
    • 使用智能合约
    • 智能合约案例:投票
    • 本章小结
  • 超级账本 —— 面向企业的分布式账本
    • 超级账本项目简介
    • 社区组织结构
    • 顶级项目介绍
    • 开发必备工具
    • 贡献代码
    • 本章小结
  • Fabric 安装与部署
    • 简介
    • 本地编译组件
    • 容器方式获取
    • 本地方式启动 Fabric 网络
    • 容器方式启动 Fabric 网络
    • 本章小结
  • 管理 Fabric 网络
    • 简介
    • 使用通道
    • 管理节点
    • 管理链上代码
    • 监听网络事件
    • 自动发现网络信息
    • 使用运维服务
    • 如何升级网络版本
    • 使用 SDK
    • 注意事项与最佳实践
    • 本章小结
  • 智能合约开发
    • 简介
    • 链码概念与结构
    • 示例一:信息公证
    • 示例二:交易资产
    • 示例三:数字货币发行与管理
    • 示例四:学历认证
    • 示例五:社区能源共享
    • 小结
  • Fabric 架构与设计
    • 简介
    • 架构设计
    • 消息协议
    • 小结
  • 区块链服务平台设计
    • 简介
    • IBM Bluemix 云区块链服务
    • 微软 Azure 云区块链服务
    • 使用超级账本 Cello 搭建区块链服务
    • 本章小结
  • 性能与评测
    • 简介
    • Hyperledger Fabric v0.6
    • 小结
  • 附录
    • 术语
    • 常见问题
    • Go 语言开发相关
      • 安装与配置 Golang 环境
      • 编辑器与 IDE
      • 高效开发工具
      • 依赖管理
    • ProtoBuf 与 gRPC
    • 参考资源链接
由 GitBook 提供支持
在本页

这有帮助吗?

在GitHub上编辑
  1. Fabric 安装与部署

容器方式启动 Fabric 网络

除了上面讲解的手动部署的方式,读者还可以基于容器方式来快速部署 Fabric 网络并验证功能。

首先,按照如下命令下载 Docker-Compose 模板文件,并进入 hyperledger_fabric 目录,可以看到有对应多个 Fabric 版本的项目,用户可以根据需求选用特定版本:

$ git clone https://github.com/yeasy/docker-compose-files
$ cd docker-compose-files/hyperledger_fabric

以 Fabric 2.0.0 版本为例,进入到对应目录下,并先下载所需镜像文件:

$ cd v2.0.0
$ make download

查看目录下内容,主要包括若干 Docker-Compose 模板文件,主要包括:

  • docker-compose-2orgs-4peer-raft.yaml:包括 4 个 peer 节点(属于两个组织)、3 个 Orderer 节点(Raft 模式)、2 个 CA 节点、1 个客户端节点;

  • docker-compose-1orgs-1peers-dev.yaml:包括 1 个 peer 节点、1 个 Orderer 节点、1 个 CA 节点、1 个客户端节点。本地 Fabric 源码被挂载到了客户端节点中,方便进行调试;

  • docker-compose-2orgs-4peer-kafka.yaml:包括 4 个 peer 节点(属于两个组织)、3 个 Orderer 节点(Kafka 模式)、2 个 CA 节点、1 个客户端节点;

  • docker-compose-2orgs-4peer-couchdb.yaml:包括 4 个 peer 节点(属于两个组织,启用 couchDB 作为状态数据库)、2 个 Orderer 节点、1 个 CA 节点、1 个客户端节点。

使用 Make 命令进行操作。例如使用 HLF_MODE 指定排序服务为 Raft 模式,快速启动网络并执行一系列测试:

$ HLF_MODE=raft make test

make test 实际上自动执行了一系列指令:

  • make gen_config_crypto:生成网络需要的身份文件;

  • make gen_config_channel:生成网络需要的配置文件;

  • make start:启动网络;

  • make channel_test:执行通道创建和加入通道;

  • make update_anchors:更新锚节点信息;

  • make cc_test:执行链码相关测试,包括安装、实例化和调用;

  • make test_lscc:测试系统链码 LSCC 调用(使用 2.0 中新的链码生命周期则不支持);

  • make test_qscc:测试系统链码 QSCC 调用;

  • make test_cscc:测试系统链码 CSCC 调用;

  • make test_fetch_blocks:获取通道内的区块;

  • make test_config_update:生成新版本配置;

  • make test_channel_update:测试更新通道配置;

  • make test_configtxlator:测试 configtxlator 转换;

  • make test_channel_list:测试列出 Peer 加入的通道;

  • make test_channel_getinfo:测试获取通道信息;

  • make stop:停止网络。

运行过程中会自动创建网络并逐个完成通道和链码的相关测试,注意查看输出日志中无错误信息。

网络启动后,可以通过 docker ps 命令查看本地系统中运行的容器信息:

$ docker ps
CONTAINER ID        IMAGE                                     COMMAND                  CREATED             STATUS              PORTS                               NAMES
1ee7db027b3f        yeasy/hyperledger-fabric-peer:2.0.0      "peer node start"        27 seconds ago      Up 22 seconds       9443/tcp, 0.0.0.0:8051->7051/tcp    peer1.org1.example.com
8f7bffcd14b3        yeasy/hyperledger-fabric-peer:2.0.0      "peer node start"        27 seconds ago      Up 22 seconds       9443/tcp, 0.0.0.0:10051->7051/tcp   peer1.org2.example.com
8a4e9aaec7ba        yeasy/hyperledger-fabric-peer:2.0.0      "peer node start"        27 seconds ago      Up 22 seconds       9443/tcp, 0.0.0.0:9051->7051/tcp    peer0.org2.example.com
7b9d394f26c0        yeasy/hyperledger-fabric-peer:2.0.0      "peer node start"        27 seconds ago      Up 23 seconds       0.0.0.0:7051->7051/tcp, 9443/tcp    peer0.org1.example.com
ce9ca6c7b672        yeasy/hyperledger-fabric-orderer:2.0.0   "orderer start"          30 seconds ago      Up 27 seconds       8443/tcp, 0.0.0.0:8050->7050/tcp    orderer1.example.com
2646b7f0e462        yeasy/hyperledger-fabric:2.0.0           "bash -c 'cd /tmp; s…"   30 seconds ago      Up 15 seconds       7050-7054/tcp                       fabric-cli
c35e8694c634        yeasy/hyperledger-fabric-orderer:2.0.0   "orderer start"          30 seconds ago      Up 27 seconds       8443/tcp, 0.0.0.0:9050->7050/tcp    orderer2.example.com
1d6dd5009141        yeasy/hyperledger-fabric-orderer:2.0.0   "orderer start"          30 seconds ago      Up 27 seconds       0.0.0.0:7050->7050/tcp, 8443/tcp    orderer0.example.com

用户如果希望在客户端、Peer 或 Orderer 容器内执行命令,可以通过 make cli|peer|orderer 命令进入到容器中。

例如,如下命令可以让用户登录到客户端节点,在其中以指定身份发送网络请求:

$ make cli

用户也可以通过如下命令来查看日志输出:

$ make logs

更多操作命令用户可以参考 Makefile 内容,在此不再赘述。

上一页本地方式启动 Fabric 网络下一页本章小结

最后更新于3年前

这有帮助吗?