Fabric 入门
文章目录
【注意】最后更新于 March 26, 2019,文中内容可能已过时,请谨慎使用。
1 摘要
本文介绍使用 Fabric Sample 快速在本地搭建一个基本的 Fabric 链码测试环境。
2 前提要求
开始之前,请检查是否已经安装了 Fabric 区块链应用开发和运行所需要的相关工具和平台。
2.1 Doker 和 Docker Compose
需要在你运行或者开发 Fabric 的平台上安装 Docker 以及 Docker Compose:
- MacOSX, *nix,或者 Windows 10: Docker 17.06.2-ce 或者更高版本。
- 老版本 Windows: Docker Toolbox,Docker 17.06.2-ce 及更高版本。
运行 docker --version
检查你安装的 Docker 版本。运行 docker-compose --version
检查 Docker Compose 版本。
2.2 Go 编程语言
Fabric 很多组件使用 Go 编程语言。需要 Go 1.10.x 版本以上。
根据不同的安装方法,你可能需要设置两个环境变量:
|
|
3 使用 Fabric Sample
Fabric Sample 提供了有关 Fabric 网络的很多实例,可以根据需要启动需要的测试网络。
3.1 Clone Fabric Sample
运行如下命令克隆 Fabric Sample 项目:
|
|
3.2 下载二进制工具和 Docker 镜像
脚本 scripts/boostrap.sh
用于拉取所有运行 Fabric 需要的 Docker 镜像并标记为最新版本。可以指定 fabric, fabirc-ca, 以及第三方镜像版本号,默认为当前最新版本。
|
|
检查 Docker 镜像:
|
|
检查二进制工具:
|
|
3.3 运行本地链码开发环境
目录 chaincode-docker-devmode
预先配置好了一个用于开发的环境。你可以直接启动并测试链码,首先,运行 cd chaincode-docker-devmode
进入该目录。
3.4 Terminal 1 - 启动开发网络
运行如下命令启动开发开发网络:
|
|
以上命令启动使用 SingleSampleMSPSolo
orderer profile 并且启动对等节点为 devmode
:
- hyperledger/fabric-orderer - order 节点,监听端口: 7050。
- hyperledger/fabric-peer - 一个对等节点,监听端口:7051, 7053。
- hyperledger/fabric-ccenv - 包含开发环境的客户节点。
- hyperledger/fabric-tools - CLI 容器。
3.5 Terminal 2 - 构建和启动链码
在另外一个终端运行如下命令:
|
|
系统显示结果如下:
|
|
系统默认挂载 ../chaincode
目录至容器,现在,可以编译例子链码:
|
|
现在,可以运行该链码:
|
|
现在,链码在对等节点启动,链码日志显示链码已经成功启动。注意,在这个阶段,链码并没有关联到任何通道,随后的步骤会使用 instantiate
命令完成这个任务。
3.6 Terminal 3 - 使用链码
尽管是在 --peer-chaincodedev
模式下,仍然需要安装链码以完成系统链码生命周期管理常规检查。这个要求可能会在随后版本去掉。
我们可以使用 CLI 容器去完成链码安装和实例化操作:
|
|
|
|
现在,可以调用链码从 a 转移 10 到 b:
|
|
最后,查询 a,我们将看到 a 的值是 90:
|
|
3.7 测试自己的链码
默认情况下,我们仅挂载 chaincode-example02
目录。你可以容易的通过添加你自己的链码子目录或者修改 docker-compose-simple.yaml
挂载你自己的链码目录,并重新运行网络来测试自己的链码。
如下是 docker-compose-simple.yaml
文件的一部分,通过修改 chaincode
容器定义片段标记为 @1
的那行,可以挂载你自己的链码目录。
|
|
4 参考文献
- Getting Started, https://hyperledger-fabric.readthedocs.io/en/release-1.2/getting%5Fstarted.html.
- Fabric Sample, https://github.com/hyperledger/fabric-samples.
- Using dev mode, https://github.com/hyperledger/fabric-samples/tree/release-1.2/chaincode-docker-devmode.
文章作者 Junahan
上次更新 2019-03-26 (3db8aa5)