Tendermint 的驗證人輪換的特別設計

2021-08-21 16:32:17 字數 631 閱讀 9107

tendermint 以加權的輪詢方式在驗證者集合,即如新區塊的提出者們中迴圈產生。乙個驗證者和其委託人抵押的權益越多,它就有更多的權重,並且相應地它就會被更多的選為領導者。具體來說明一下,如果乙個驗證者和另乙個驗證者有著同樣的權重,它們都會被協議以同樣的次數選中。

對於這個演算法如何工作的

最簡單的解釋如下:

驗證者的權重被設定

驗證者被選擇,輪到驗證者來提議乙個區塊

權重被重新計算,在本輪結束後減少一定數量的權重

隨著每一輪的進行,權重按照投票權利的相應比例逐漸遞增

再一次選擇驗證者

實際對應的**實現:

因為協議可以很明確地選擇區塊的提案人,鑑於你知道驗證者集合和每個驗證者的投票權重,你可以在x, x + 1,…,x + n 輪次中準確地計算出誰會是下乙個區塊的提案者。

乙個有效的哨兵節點架構將保證驗證人節點的ip不被暴露出來,同時可以組織其他節點與驗證人節點連線。 這樣可以混淆驗證人節點的真實位置。

也就是說,哨兵節點的架構是可選擇的。驗證人有責任維護乙個抗攻擊的全節點。 這是我們根據經濟激勵做出的額外假設。 假設是,驗證人會希望採取所有預防措施,以保持容錯,保持高可用,並最終在保持在共識過程中發揮其作用。 因為如果他們不這樣做,他們會因為長期離線被強制剔除出驗證人集合。

巧用c SQL驗證人員生日

在做生日提醒系統或其他系統時,難免遇到生日驗證,但由於年份的不確定,增加了程式設計難度,在c 裡常用字串陣列進行比較,但是檢測長度是有事問題重重,因為使用者在輸入日期是格式是不一定的,如9月可能輸為09月,在字元長度驗證時,就要考慮這個因素,需分好多情況,但如果使用sql資料庫問題便大大簡化!主要思...

小程式驗證 人的男女偏見對出生性別比例平衡的影響

假設分娩前,人們無法預知生男還是生女,但是由於主觀偏見,如果一對夫妻生乙個女的,就還想生第二個,如果生乙個男的就不繼續生,那麼會造成男女比例失衡嗎?下面我用python 寫個簡單的程式來驗證下 第乙個例子,生男生女都是隨機的。則男女比例應該是1左右。第2個例子 如果一對夫妻生乙個女的,就還想生第二個...

證人的記憶

證人,在我們的認識裡,通常都是提供一些客觀的證據的人,就是把自己親眼看到 親耳聽到的東西如實地講出來的人。然而,心理學研究證明,很多證人提供的證詞都不太準確,或者說是具有個人傾向性,帶著個人的觀點和意識。證人對他們的證詞的信心並不能決定他們證詞的準確性,這一研究結果令人感到驚訝。心理學家珀費可特和豪...