orderer.yaml是orderer节点的配置文件,凡是orderer需要设置的内容,全在这里找。该orderer.yaml示例配置文件指定了如下五大部分内容。
1.General部分
General部分是orderer.yaml配置文件的基础配置信息部分,主要指定配置如下:
- LedgerType指定分类账本类型。
- ListenAddress与ListenPort指定节点监听地址及端口号。
- TLS部分指定是否启用TLS验证、TLS证书、签名私钥、信任的根CA证书信息。
- Keepalive指定与客户端的连接信息。
- LogLevel与LogFormat指定日志级别与日志输出格式。
- GenesisMethod、GenesisProfile、GenesisFile指定生成初始区块相关的信息。
- LocalMSPDir与LocalMSPID指定MSP目录所在路径及MSP的ID。
- BCCSP部分主要指定区块链的加密实现方式,默认为SW(SoftWare),即软件基础的加密方式。
2.FileLedger部分
如果指定分类账本类型为文件类型,则通过FileLedger部分配置文件账本的相关信息。
Location指定区块链的本地存储路径。
Prefix指定临时空间中的前缀名称(未指定Location时)。
3.RAMLedger部分
如果分类账本指定不使用文件账本类型,而是内存账本类型时,则需要通过HistorySize属性指定在内存中保存区块的最大数量。
4.Kafka部分
如果Orderer服务使用Kafka实现排序服务,则进行相关的配置信息指定:
Retry指定连接到Kafka的重试请求信息。
Verbose指定是否启用日志记录。
TLS指定Orderer连接到Kafka的TLS相关设置,包括是否启动TLS,指定TLS密钥、证书及可信任的CA根证书。
Version指定Kafka的版本信息。
5.Debug部分
此部分配置信息相对简单,主要指定广播服务与交付服务的请求保存目录。
全文配置文件参考和解析:
# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#
---
################################################################################
#
# Orderer Configuration
#
# - This controls the type and configuration of the orderer.
#
################################################################################
General:
# 监听地址
ListenAddress: 127.0.0.1
# 监听端口号
ListenPort: 7050
# GRPC服务器的TLS设置
TLS:
# 在实际生产网络中,应该使用 TLS 安全通信,这个值应该是true
# 默认不启用
Enabled: false
# 提供 TLS CA 为此节点生成的私钥的路径和文件名。
PrivateKey: tls/server.key
# 提供 TLS CA 为该节点生成的公共证书(也称为签名证书)的路径和文件名。
Certificate: tls/server.crt
# (应注释掉)此参数通常未设置以供正常使用。
# 它是附加根证书的路径列表,用于在出站连接期间验证其他排序节点的证书。
# 它可用于扩充每个通道配置的 MSP 中可用的 TLS CA 证书集。
# 可信任的根CA证书
RootCAs:
- tls/ca.crt
ClientAuthRequired: false
ClientRootCAs:
# GRPC服务器的激活设置
Keepalive:
# # 客户机ping之间的最小允许时间(除非通过测试确定有必要,否则不应覆盖默认值)
ServerMinInterval: 60s
# 连接到客户机的ping之间的时间(除非通过测试确定有必要,否则不应覆盖默认值)
ServerInterval: 7200s
# 服务器等待响应的超时时间(除非通过测试确定有必要,否则不应覆盖默认值)
ServerTimeout: 20s
# 由于所有节点都应该一致,建议将MaxRecVMGSize和MaxSendMsgSize的默认值保持为100MB
# GRPC服务器和客户端可以接收的最大消息大小(字节)
MaxRecvMsgSize: 104857600
# GRPC服务器和客户端可以发送的最大消息大小(字节)
MaxSendMsgSize: 104857600
# 与其他订购服务节点(如基于Raft的订购服务)通信的订购服务节点的群集设置。
Cluster:
# SendBufferSize 是缓冲区中的最大消息数。
# 如果缓冲区已满,共识消息将被丢弃,交易消息就会被等待去释放。
SendBufferSize: 10
# 管理客户端TLS证书的文件位置用于与其他订购服务节点建立相互TLS连接。
# 如果未设置,则服务器将处于常规状态。TLS证书被重复使用
ClientCertificate:
# 管理客户端TLS证书的私钥的文件位置。<