Fabric 1.0原始碼分析(28) Orderer #localconfig(Orderer配置檔案定義)

尹成發表於2018-05-20
# 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
```






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



欲領取造幣技術與全套虛擬機器資料

區塊鏈技術交流QQ群:756146052  備註:CSDN

尹成學院微信:備註:CSDN





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



欲領取造幣技術與全套虛擬機器資料

區塊鏈技術交流QQ群:756146052  備註:CSDN

尹成學院微信:備註:CSDN

相關文章