從提供服務的視角來看,基於raft和kafka的排序服務是類似的,他們都是基於CFT(crash fault tolerant)模型的排序服務,並且都使用了主從節點的設置。如果妳是應用開發者或者智能合約開發者,妳不會註意到他們之間的卻別。但是,有壹些主要的區別值得探討,尤其是妳需要管理排序服務。
raft排序是fabric實現拜占庭容錯排序服務的第壹步,如我們所見,開發raft排序服務的決定也是基於此的。
raft節點之間通過使用TLS認證身份,如果壹個攻擊者想要偽造raft節點,就必須要獲得壹個有效的證書和對應的私鑰。所以,沒有壹個有效的TLS證書,是不可能運行raft節點的。
要使用raft***識,需要修改兩個地方
需要註意的是,每個channel有屬於它自己的raft集群。因此,在chennel中要指定raft節點,指定的方式是把raft節點的tls證書配置到channel的配置文件中。在系統通道和應用通道中的配置中,每個排序以consenter的形式列出來。下面是configtx.yaml中關於raft節點配置的章節。
orderer.yaml配置文件中有兩個關於raft排序配置的章節,分別問cluster和Consensus
當節點啟動後,如果想要更改配通道置並且使配置生效,只有重啟節點服務。有壹個例外是SnapshotIntervalSize配置項,它可以在運行時動態調整。
(後續實踐後,見更新具體使用步驟,敬請關註)