LibraBFT協(xié)議作為FacebookLibra區(qū)塊鏈的核心,其負(fù)責(zé)的是確保安全的狀態(tài)機復(fù)制。而在今日,其開發(fā)團隊Calibra發(fā)布了LibraBFT核心協(xié)議的重要
LibraBFT協(xié)議作為FacebookLibra區(qū)塊鏈的核心,其負(fù)責(zé)的是確保安全的狀態(tài)機復(fù)制。
而在今日,其開發(fā)團隊Calibra發(fā)布了LibraBFT核心協(xié)議的重要更新。
據(jù)悉,新版本的LibraBFT v2 協(xié)議包含了一些優(yōu)化,旨在減少網(wǎng)絡(luò)連接并改善Libra區(qū)塊鏈的commit延遲。
另外,Calibra還提供了Rust模擬器代碼以供參考,這部分代碼可在Calibra研究團隊的github存儲庫中找到。
在實踐中降低網(wǎng)絡(luò)復(fù)雜性
LibraBFT是HotStuff協(xié)議的一種改進(jìn)版本,其明確了用于實現(xiàn)節(jié)點間循環(huán)同步(round synchronization)的機制。非正式地說,在一輪投票期內(nèi),某個特定的領(lǐng)導(dǎo)者(leader)會被信任以推動進(jìn)展( 通常通過提議一個區(qū)塊(B)、收集投票(V)和廣播一個法定人數(shù)證書(C))(見下圖)。循環(huán)同步的目的是使節(jié)點最終執(zhí)行具有足夠長overlap(重疊)的同一循環(huán),以便該循環(huán)的領(lǐng)導(dǎo)者(leader)能夠成功。
在樂觀的情況下,LibraBFT v2 協(xié)議將循環(huán)同步的開銷減少到每輪每個節(jié)點一條消息(參見圖中的綠色箭頭)。
LibraBFT的“v1”版本依賴于概率性的gossip協(xié)議來確保仲裁證書 (C)的統(tǒng)一傳播。這種統(tǒng)一的傳播需要實現(xiàn)循環(huán)同步,并保證在存在惡意領(lǐng)導(dǎo)者(leader)的情況下保持系統(tǒng)活性(liveness)。
雖然概率gossip協(xié)議是一種適用于很多應(yīng)用的流行技術(shù),但它通常需要非線性的消息數(shù),并且由于中間跳數(shù)(hop)而導(dǎo)致延遲增加。從工程的角度來看,網(wǎng)絡(luò)開銷和gossiping的概率性也可能使debug變得復(fù)雜化。
相比之下,LibraBFT v2 協(xié)議在不使用概率性gossip的情況下,以不同的方式實現(xiàn)了循環(huán)同步。首先,新的協(xié)議引入了一種新型的故障保護(hù)機制,其在沒有進(jìn)展的情況下定期抽出丟失的數(shù)據(jù)。其次,LibraBFTv2簡化了區(qū)塊提議的約束。新的約束確保誠實的領(lǐng)導(dǎo)者(leader )總是在第一個誠實節(jié)點進(jìn)入其循環(huán)之后立即提出一個區(qū)塊并強制循環(huán)同步。
LibraBFT v2的活性證明表明,新協(xié)議在拜占庭(最壞情況)場景下仍能以令人滿意的方式執(zhí)行,而在最佳情況下,消息的數(shù)量會是線性的。(作者:Mathieu Baudet)
關(guān)鍵詞: LibraBFT協(xié)議 commit延遲 gossip協(xié)議