《Hyperledger Fabric菜鸟进阶攻略》 —2.3.2 orderer.yaml详解

举报
华章计算机 发表于 2020/02/16 20:05:34 2020/02/16
【摘要】 本节书摘来自华章计算机《Hyperledger Fabric菜鸟进阶攻略》 一书中第2章,第2.3.2节,作者是黎跃春 韩小东 付金亮  。

2.3.2 orderer.yaml详解

orderer.yaml配置文件是Orderer节点的示例配置文件,具体路径在fabric-samples/config目录下。该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),即软件基础的加密方式。

详细配置信息参考如下:

General:

  LedgerType: file                 # 指定账本类型(可选file、RAM、json)

  ListenAddress: 127.0.0.1          # 监听地址

  ListenPort: 7050                 # 监听端口号

  TLS:                              # GRPC服务器的TLS设置

      Enabled: false                   # 默认不启用

      PrivateKey: tls/server.key # 签名的私钥文件

      Certificate: tls/server.crt   # 证书文件

      RootCAs:                           # 可信任的根CA证书

        - tls/ca.crt

      ClientAuthRequired: false

      ClientRootCAs:

 

  Keepalive:                           # GRPC服务器的激活设置

      ServerMinInterval: 60s            # 客户机ping之间的最小允许时间

      ServerInterval: 7200s        # 连接到客户机的ping之间的时间

      ServerTimeout: 20s                  # 服务器等待响应的超时时间

  LogLevel: info

  LogFormat: '%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}]

    %{shortfunc} -> %{level:.4s} %{id:03x}%{color:reset} %{message}'

 

  GenesisMethod: provisional           # 生成初始区块的提供方式(可选provisional、file)

  GenesisProfile: SampleInsecureSolo    # 用于动态生成初始区块的概要

  GenesisFile: genesisblock        # 生成初始区块的配置文件

  

  LocalMSPDir: msp                    # 本地MSP目录

  LocalMSPID: SampleOrg                 # MSP ID

 

  Profile:                                # 是否为Go"profiling"配置启用HTTP服务

      Enabled: false

      Address: 0.0.0.0:6060

  BCCSP:                                # 区块链加密实现

      Default: SW                       # 默认使用SW

      SW:

          Hash: SHA2

          Security: 256

          FileKeyStore:

              KeyStore:

 

  Authentication:                         # 与身份验证相关的配置

      TimeWindow: 15m                  # 当前服务器时间与客户端请求消息中

                                         # 指定的客户端时间差异

2.FileLedger部分

如果指定分类账本类型为文件类型,则通过FileLedger部分配置文件账本的相关信息。

Location指定区块链的本地存储路径。

Prefix指定临时空间中的前缀名称(未指定Location时)。

参考配置如下:

FileLedger:

  Location: /var/hyperledger/production/orderer       # 区块存储路径

  Prefix: hyperledger-fabric-ordererledger           # 在临时空间中生成分类

                                                       # 目录时使用的前缀

3.RAMLedger部分

如果分类账本指定不使用文件账本类型,而是内存账本类型时,则需要通过HistorySize属性指定在内存中保存区块的最大数量。参考配置如下:

RAMLedger:

  HistorySize: 1000        # 如果设置为保存在内存中,分类账本最大保留的块的数量

4.Kafka部分

如果Orderer服务使用Kafka实现排序服务,则进行相关的配置信息指定:

Retry指定连接到Kafka的重试请求信息。

Verbose指定是否启用日志记录。

TLS指定Orderer连接到Kafka的TLS相关设置,包括是否启动TLS,指定TLS密钥、证书及可信任的CA根证书。

Version指定Kafka的版本信息。

具体参考配置信息如下:

Kafka:

  Retry:                           # 无法建立到Kafka集群的连接时的重试请求   

      ShortInterval: 5s         # 重试时间间隔

      ShortTotal: 10m         # 重试的总时间

      LongInterval: 5m       # 重试失败后再次发送重试的时间间隔

      LongTotal: 12h           # 重试的最长总时间

      NetworkTimeouts:            # 网络超时设置

          DialTimeout: 10s

          ReadTimeout: 10s

          WriteTimeout: 10s

      Metadata:                   # 请求领导人选举时影响元数据的设置

          RetryBackoff: 250ms # 指定重试的最大时间

          RetryMax: 3        # 重试的最大次数

      Producer:                    # 向Kafka集群发送消息失败的设置

          RetryBackoff: 100ms # 指定重试的最大时间

          RetryMax: 3        # 重试的最大次数

      Consumer:                 # 向Kafka集群读取消息失败的设置

          RetryBackoff: 2s # 指定重试的最大时间

 

  Verbose: false                    # 是否为与Kafka集群的交互启用日志记录

 

  TLS:                       # Orderer连接到Kafka集群的TLS设置

    Enabled: false         # 连接到Kafka集群时是否使用TLS

    PrivateKey:     

    Certificate:      

    RootCAs:

  Version:                       # Kafka版本(未指定时默认值为0.10.2.0)

5.Debug部分

此部分配置信息相对简单,主要指定广播服务与交付服务的请求保存目录,参考如下:

Debug:

  BroadcastTraceDir:     # 对广播服务的每个请求写入此目录中的文件

  DeliverTraceDir:   # 对交付服务的每个请求写入此目录中的文件

FAQ

这些配置文件的内容需要全部都记下吗?

不需要死记硬背,重要的是理解这些配置信息都指定了哪些重要内容。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。