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
```
網址:http://www.qukuailianxueyuan.io/
欲領取造幣技術與全套虛擬機器資料
區塊鏈技術交流QQ群:756146052 備註:CSDN
尹成學院微信:備註:CSDN
網址:http://www.qukuailianxueyuan.io/
欲領取造幣技術與全套虛擬機器資料
區塊鏈技術交流QQ群:756146052 備註:CSDN
尹成學院微信:備註:CSDN
相關文章
- Fabric 1.0原始碼分析(26)Orderer #ledger(Orderer Ledger)原始碼
- Fabric 1.0原始碼分析(25) Orderer原始碼
- Fabric 1.0原始碼分析(27) Orderer #configupdate(處理通道配置更新)原始碼
- Fabric 1.0原始碼分析(29) Orderer #multichain(多鏈支援包)原始碼AI
- Fabric 1.0原始碼分析(30) Orderer #BroadcastServer(Broadcast服務端)原始碼ASTServer服務端
- fabric orderer 排序節點的筆記排序筆記
- [fabric]Cannot start service orderer: Mounts denied: In MacMac
- Fabric 1.0原始碼分析(2) blockfile(區塊檔案儲存)原始碼BloC
- Fabric 1.0原始碼分析(22)Ledger #blkstorage(block檔案儲存)原始碼BloC
- Fabric 1.0原始碼分析(6)configtx(配置交易) #ChannelConfig(通道配置)原始碼
- Fabric 1.0原始碼分析(31) Peer原始碼
- Fabric 1.0原始碼分析(7)configtx(配置交易) #configtxgen(生成通道配置)原始碼
- Fabric 1.0原始碼分析(3)Chaincode(鏈碼)原始碼AI
- Fabric 1.0原始碼分析(40) Proposal(提案)原始碼
- Fabric 1.0原始碼分析(9)configtx(配置交易)體系介紹原始碼
- Fabric 1.0原始碼分析(14) flogging(Fabric日誌系統)原始碼
- Fabric 1.0原始碼分析(18) Ledger(賬本)原始碼
- Fabric 1.0原始碼分析(43) Tx(Transaction 交易)原始碼
- Fabric 1.0原始碼分析(47)Fabric 1.0.4 go程式碼量統計原始碼Go
- Fabric 1.0原始碼分析(42)scc(系統鏈碼)原始碼
- Hyperledger Fabric無排序組織以Raft協議啟動多個Orderer服務、TLS組織執行維護Orderer服務排序Raft協議TLS
- Fabric 1.0原始碼分析(13)events(事件服務)原始碼事件
- Fabric 1.0原始碼分析(39) policy(背書策略)原始碼
- Fabric 1.0原始碼分析(45)gRPC(Fabric中註冊的gRPC Service)原始碼RPC
- Fabric 1.0原始碼分析(10)consenter(共識外掛)原始碼
- Fabric 1.0原始碼分析(15)gossip(流言演算法)原始碼Go演算法
- Fabric 1.0原始碼分析(23)LevelDB(KV資料庫)原始碼資料庫
- Fabric 1.0原始碼分析(44)Tx #RWSet(讀寫集)原始碼
- Fabric 1.0原始碼分析(5)Chaincode(鏈碼)體系總結原始碼AI
- Fabric 1.0原始碼分析(8)configtx(配置交易) #genesis(系統通道創世區塊)原始碼
- Hyperledger Fabric無排序組織以Raft共識演算法啟動多個Orderer服務、多組織共同執行維護Orderer服務排序Raft演算法
- Fabric 1.0原始碼分析(20) Ledger #idStore(ledgerID資料庫)原始碼資料庫
- Fabric 1.0原始碼分析(35)Peer #EndorserServer(Endorser服務端)原始碼Server服務端
- Fabric 1.0原始碼分析(36) Peer #EndorserClient(Endorser客戶端)原始碼client客戶端
- Fabric 1.0原始碼分析(37) Peer #DeliverClient(Deliver客戶端)原始碼client客戶端
- Fabric 1.0原始碼分析(38) Peer #BroadcastClient(Broadcast客戶端)原始碼ASTclient客戶端
- Fabric 1.0原始碼分析(41)putils(protos/utils工具包)原始碼
- Fabric 1.0原始碼分析(19) Ledger #statedb(狀態資料庫)原始碼資料庫