Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)

# Fabric 1.0源代码笔记 之 Orderer #localconfig(Orderer配置文件定义)

## 1、配置文件定义

```bash
General: #通用配置
LedgerType: file #账本类型,包括ram、json和file,其中ram保存在内存中,生产环境推荐使用file
ListenAddress: 127.0.0.1 #服务绑定的监听地址
ListenPort: 7050 #服务绑定的监听端口
TLS: #启用TLS时的相关配置
Enabled: false #是否启用TLS
PrivateKey: tls/server.key #Orderer签名私钥
Certificate: tls/server.crt #Orderer身份证书
RootCAs: #信任的根证书
- tls/ca.crt
ClientAuthEnabled: false #是否对客户端也进行认证
ClientRootCAs:
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指定的configtx.yaml中Profile生成,后者基于指定的初始区块文件
GenesisProfile: SampleInsecureSolo #provisional方式生成初始区块时采用的Profile
GenesisFile: genesisblock #使用现成的初始区块文件时,文件的路径
LocalMSPDir: msp #本地msp文件的路径
LocalMSPID: DEFAULT #MSP的ID
Profile: #是否启用go profiling
Enabled: false
Address: 0.0.0.0:6060
BCCSP: #密码库机制等,可以为SW(软件实现)或PKCS11(硬件安全模块)
Default: SW
SW:
Hash: SHA2 #哈希算法类型
Security: 256
FileKeyStore: #本地私钥文件路径,默认指向<mspConfigPath>/keystore
KeyStore:
FileLedger: #基于文件的账本的配置
Location: /var/hyperledger/production/orderer #存放区块文件的位置,一般为/var/hyperledger/production/orderer/目录
Prefix: hyperledger-fabric-ordererledger #如果不指定Location,则在临时目录下创建账本时使用的目录名称
RAMLedger: #基于内存的账本最多保留的区块个数
HistorySize: 1000
Kafka: #Orderer使用Kafka集群作为后端时,Kafka的配置
Retry: #Kafka未就绪时Orderer的重试配置,orderer会利用sarama客户端为channel创建一个producer、一个consumer,分别向Kafka写和读数据
ShortInterval: 5s #操作失败后的快速重试阶段的间隔
ShortTotal: 10m #快速重试阶段最多重试多长时间
LongInterval: 5m #快速重试阶段仍然失败后进入慢重试阶段,慢重试阶段的时间间隔
LongTotal: 12h #慢重试阶段最多重试多长时间
NetworkTimeouts: #sarama网络超时时间
DialTimeout: 10s
ReadTimeout: 10s
WriteTimeout: 10s
Metadata: #Kafka集群leader选举中的metadata请求参数
RetryBackoff: 250ms
RetryMax: 3
Producer: #发送消息到Kafka集群的超时
RetryBackoff: 100ms
RetryMax: 3
Consumer: #从Kafka集群读取消息的超时
RetryBackoff: 2s
Verbose: false #是否开启Kafka客户端的调试日志
TLS: #Kafka集群的连接启用TLS时的相关配置
Enabled: false #是否启用TLS,默认不开启
PrivateKey: #Orderer证明身份用的签名私钥
Certificate: #Kafka身份证书
RootCAs: #验证Kafka证书时的CA证书
Version: #Kafka版本号
#代码在/etc/hyperledger/fabric/orderer.yaml
```

## 2、TopLevel结构体定义

```go
type TopLevel struct {
    General General
    FileLedger FileLedger
    RAMLedger RAMLedger
    Kafka Kafka
}

type General struct {
    LedgerType string
    ListenAddress string
    ListenPort uint16
    TLS TLS
    GenesisMethod string
    GenesisProfile string
    GenesisFile string
    Profile Profile
    LogLevel string
    LogFormat string
    LocalMSPDir string
    LocalMSPID string
    BCCSP *bccsp.FactoryOpts
}

type TLS struct {
    Enabled bool
    PrivateKey string
    Certificate string
    RootCAs []string
    ClientAuthEnabled bool
    ClientRootCAs []string
}

type Profile struct {
    Enabled bool
    Address string
}

type FileLedger struct {
    Location string
    Prefix string
}

type RAMLedger struct {
    HistorySize uint
}

type Kafka struct {
    Retry Retry
    Verbose bool
    Version sarama.KafkaVersion
    TLS TLS
}

type Retry struct {
    ShortInterval time.Duration
    ShortTotal time.Duration
    LongInterval time.Duration
    LongTotal time.Duration
    NetworkTimeouts NetworkTimeouts
    Metadata Metadata
    Producer Producer
    Consumer Consumer
}

type NetworkTimeouts struct {
    DialTimeout time.Duration
    ReadTimeout time.Duration
    WriteTimeout time.Duration
}

type Metadata struct {
    RetryMax int
    RetryBackoff time.Duration
}

type Producer struct {
    RetryMax int
    RetryBackoff time.Duration
}

type Consumer struct {
    RetryBackoff time.Duration
}
//代码在orderer/localconfig/config.go
```





Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)

网址:http://www.qukuailianxueyuan.io/

Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)

Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)

欲领取造币技术与全套虚拟机资料

区块链技术交流QQ群:756146052  备注:****

尹成学院微信:备注:****

Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)




Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)

网址:http://www.qukuailianxueyuan.io/

Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)

Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)

欲领取造币技术与全套虚拟机资料

区块链技术交流QQ群:756146052  备注:****

尹成学院微信:备注:****

Fabric 1.0源代码分析(28) Orderer #localconfig(Orderer配置文件定义)