Hyperledger Fabric Peer 配置解析
文中使用的 fabric 版本为 2.4.1
在Fabric网络中,用户可以设定Peer节点、排序节点、CA节点的行为,以及管理通道、组织身份等多种资源,这都涉及网络内配置。
Fabric节点在启动时可通过加载本地配置文件或环境变量等方式获取配置信息,同时结合少量命令行参数。
通常用户需要提前编写配置文件,供服务启动时使用;也可以仅在配置文件中指定部分默认值,使用环境变量动态指定可以实现更灵活的配置加载。
默认情况下,Fabric节点的主配置路径为 FABRIC_CFG_PATH 环境变量所指向路径(默认为/etc/hyperledger/fabric)。在不显式指定配置路径时,会尝试从主配置路径下查找相关的配置文件。
| 节点 | 默认配置文件路径 | 主要功能 |
|---|---|---|
| Peer 节点 | $FABRIC_CFG_PATH/core.yaml | 指定 peer 节点运行时参数 |
| Orderer | $FABRIC_CFG_PATH/orderer.yaml | 指定 orderer 节点运行时参数 |
| CA 节点 | $FABRIC_CA_SERVER_HOME/fabric-ca-server-config.yaml | 指定 CA 节点运行时参数 |
除了各节点配置文件,Fabric还在每个通道内通过配置区块来维护通道范围的配置信息,通道配置可由 configtx.yaml 文件设定。
这些配置需要使用特定工具进行管理,这些工具包括 cryptogen 、 configtxgen 和 configtxlator
| 工具 | 默认配置文件路径 | 主要功能 |
|---|---|---|
| cryptogen | 命令行参数 --config 指定 | 负责生成网络中组织结构和身份文件 |
| configtxgen | 命令行参数 --configPath 指定 | 利用 configtx.yaml 文件生成通道初始配置;创建配置更新交易 |
| configtxlator | N/A | 将通道配置在二进制和 JSON 格式之间进行转换,并计算配置更新量 |
Peer 配置剖析
<mark> 当Peer节点启动时,会按照优先级从高到低的顺序依次尝试从命令行参数、环境变量和配置文件中读取配置信息。 </mark>
<mark> 当从环境变量中读入配置信息时候,除了日志使用单独的FABRIC_LOGGING_SPEC环境变量进行指定,其他都需要以CORE_前缀开头。例如,配置文件中的peer.id项,对应环境变量CORE_PEER_ID。 > 当从环境变量中读入配置信息时候,除了日志使用单独的FABRIC_LOGGING_SPEC环境变量进行指定,其他都需要以CORE_前缀开头。例如,配置文件中的peer.id项,对应环境变量CORE_PEER_ID。 </mark>
<mark> Peer节点默认的配置文件读取路径为$FABRIC_CFG_PATH/core.yaml;如果没找到,则尝试查找当前目录下的./core.yaml文件;如果还没有找到,则尝试查找默认的/etc/hyperledger/fabric/core.yaml文件。 </mark>
<mark> 在结构上,core.yaml文件中包括peer、vm、chaincode、ledger、operations、metrics六大部分。 </mark>
peer 部分
peer部分包括与服务直接相关的核心配置,内容比较多。除了一些常规配置,还包括keepalive、Gossip、TLS、BCCSP、handler、discover等多个配置部分。
| 配置项 | 类型 | 作用 | 默认值 |
|---|---|---|---|
| id | 常规配置 | Peer在网络中的ID信息,用于辨识不同的节点 | N/A |
| networkId | 常规配置 | 网络自身的ID,逻辑上可以通过ID指定多个隔离的网络 | N/A |
| listenAddress | 常规配置 | 服务监听的本地地址,本地有多个网络接口时可指定仅监听某个接口 | 0.0.0.0:7051 |
| address | 常规配置 | 对同组织内其他节点的监听连接地址。当服务在NAT设备上运行时,该配置可以指定服务对外宣称的可访问地址。如果是客户端,则作为其连接的Peer服务地址 | 0.0.0.0:7051 |
| addressAutoDetect | 常规配置 | 是否自动探测服务地址。当Peer服务运行环境的地址是动态时,该配置可以进行自动探测,探测将内部地址作为服务地址。默认情况下关闭。注意启用TLS时候最好关闭,以免与指定的域名冲突造成认证失败 | false |
| fileSystemPath | 常规配置 | 本地数据存放路径,包括账本、链码等 | /var/hyperledger/production |
| mspConfigPath | 常规配置 | MSP目录所在的路径,可以为绝对路径,或相对配置目录的路径,一般建议为/etc/hyperledger/fabric/msp | msp |
| localMspId | 常规配置 | Peer所关联的MSP ID,一般为所属组织名称,需要与通道配置内名称一致 | SampleOrg |
| deliveryclient | 常规配置 | 到排序服务连接的配置。值得注意的是addressOverrides域。当Peer加入通道时会从初始区块提取排序服务信息,此时排序节点地址或证书可能已经发生变化。使用此处配置可以映射到新版本排序服务,避免出现无法加入通道的情况 | N/A |
| limits | 常规配置 | 对访问频率进行限制,可以限定endorserService , deliverService , gatewayService服务处理的并发数 | endorserService=2500 , deliverService=2500 , gatewayService=2500 |
| keepalive.interval | 保活消息 | 如果服务端发现客户端在指定时间内未有任何消息,则主动发送gRPC Ping进行探测 | 7200s |
| keepalive.timeout | 保活消息 | 服务端发送Ping消息后,如果客户端在指定时间内未响应,则断开连接 | 20s |

最低0.47元/天 解锁文章
1300

被折叠的 条评论
为什么被折叠?



