首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链学习之二-Hyperledger区块链网络启动原理详解

在上篇文章中,我们是直接利用fabric-samples工程中自带的脚本byfn.sh文件来搭建我们的区块链的,直接省略了很多细节,本文探索下背后的细节与实现。

1 byfn.sh generate

generate用于生成区块链网络启动必须的配置项信息(证书、创世区块等等),它会依次执行脚本中的如下3个方法:

下面依次介绍这3个方法。

1.1 generateCerts

使用cryptogen工具生成网络实体所需的密钥证书文件,用于网络实体之间通信过程中的加密和验证。

cryptogen工具依赖配置文件crypto-config.yaml,具体内容如下:

该文件包含了网络拓扑结构,我们可以据此生成组织以及组织中各实体的证书。我们运行该方法之后,证书会被放置在一个名为crypto-config的文件夹下。通过私钥(keystore)加签,通过公钥(signcerts)验证。

本示例区块链网络拓扑结构如下:

1.2 replacePrivateKey

采用模板文件docker-compose-e2e-template.yaml,将其中的变量替换为生成的密钥文件名,生成文件:docker-compose-e2e.yaml。具体内容不详述。

1.3 generateChannelArtifacts

该方法通过Configtxgen工具生成如下配置项:

(1)排序节点的创世区块

(2)channel configuration transaction

(3)two anchor peer transactions - one for each Peer Org

该工具依赖配置文件configtx.yaml:

该文件包含了对应网络的结构定义,包含3个成员:1个排序组织以及2个peer组织(每个管理2个peer节点)。

2 byfn.sh up-启动示例区块链网络

核心脚本代码:

会执行的详细操作主要在docker-compose-cli.yaml文件中,可以看到是先启动CLI container,然后执行了shell脚本./scripts/script.sh,完整步骤示意图如下:

核心脚本如下:

createChannel

joinChannel

updateAnchorPeers

installChaincode

instantiateChaincode

chaincodeQuery

chaincodeInvoke

通过控制台的日志输出可以看出上述步骤的执行状况。

3 byfn.sh down

此操作会移除之前生成的配置文件、容器以及链码镜像。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180527G0WJTR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券