加入PolkaWorld 社區,共建Web 3.0!
Polkadot 理事會在9 月13 日通過了Motion 108。目前正在等待進行公投和執行。該議案是由Parity 的Staking 團隊提出,旨在將DOT 質押的最低金額增加到120 DOT,允許高於120 DOT的新提名人參與維護Polkadot 網絡的安全。
請注意,在最新的runtime 升級(9090) 之後,現有的提名人還是可以在所有條件下更新他們對驗證人的選擇。
當前的Staking 參數如下:
驗證人最低綁定金額:無最大驗證人數:1200提名人最低質押:80 DOT提名人最大數:22500凍結閾值:90%
新議案的參數只更新一個值:提名人最低質押:120 DOT
Parity 團隊的目標是將限制提高到足夠大,以便至少在一個月內不需要再做一次調整。 Parity 開發團隊也正在其他解決方案上進行優化,你可以在這裡查看有關它們的更多信息。 https://github.com/paritytech/substrate/issues/9511
此外,Parity 團隊發布了8 月份的Staking 進度報告以分享技術細節。 https://gist.github.com/kianenigma/aa835946455b9a3f167821b9d05ba376
將參數值增加到120 DOT 可以讓團隊有更多時間去進行優化,直到在更持久的解決方案上取得了進展。請記住,這些措施是暫時的,總體目標是網絡的穩定性和安全性。
如果你想了解技術版的NPoS 機制難點,解決方案和瓶頸,可以繼續閱讀下面內容。
NPoS 介紹
NPoS 在區塊鏈中是一個非常難以解決的問題。原因是我們想要一個主權算法(無論是不是我們目前使用的phragmen 算法)為我們在鏈下解決NPoS 的問題,並將解決方案重新提交到鏈上。
NPoS 的問題可以概括為:給定一個提名的輸入graph,找到每個提名人的質押分佈,然後優化某些目標。例如,假設Alice 提名Bob、Charlie 和Dave。 Bob 和Charlie 在活躍的驗證人節點池中。 Alice 的質押應該如何在他們之間分配? Dave 呢?
對比DPoS 的簡單性,他不存在這樣的問題,因為每個提名人只支持一個賬戶。即使你可以支持多個賬戶,你的質押也是在它們之間平均分配,或者根據一些預定義的順序進行分配。
NPoS 在Substrate 鏈中的設計目標為:
獲得最少支持的驗證人的支持質押數額,應該被最大化。所有當選的驗證人的支持質押總和,應該是最大的。所有當選的驗證人的支持質押的平方和,應該最小化。
當前的解決方案
我們有一套算法來解決NPoS 問題,進一步優化它並減小它的大小,所有這些都打包在sp-npos-election 中。
在runtime 中,我們有一個專用的模塊來執行我們的多階段、面向鏈下的選舉過程,命名為pallet-election-provider(-multi-phase),Pallet-staking 只會使用選舉模塊,不處理選舉本身的細節。
當前系統的一個重要部分是pallet-staking 和pallet-election-provider 沒有跟上彼此的變化,但這是故意的。在某些時候,pallet-staking 將需要向pallet-election-provider 提供其提名人和驗證人(或其子集)的快照。從這一點開始,兩個模塊可以獨立工作。
這個設計對我們有很多好處。最重要的是,我們可以使用快照作為所有提名人和驗證人的索引查找來源。在鏈下計算和提交的所有解決方案中,我們從不使用帳戶ID,而是使用更高效的快照索引。
瓶頸
考慮到系統的設計,讓我們看看主要的瓶頸:
快照創建:這種情況發生在on_initialize 上,很容易造成繁重的塊。更重要的是,每個塊可以使用多少內存是有嚴格限制的,所以我們肯定不能在一個塊中迭代大量的提名人。解決方案提交:提交的解決方案也不能達到塊大小限制,也不能達到塊內存限制。後者是低擁塞的真正瓶頸。解決方案驗證:解決方案需要在某個時候進行驗證。這需要針對快照發生,因此又是一個內存密集型操作。
所有這一切的解決方案,以及我們的行動方向是在多個塊上完成所有這些。快照將在多個塊上進行,結果快照將是一個page-index -> snapshot-page 的映射,而不是一個大的平面快照。
解決方案需要考慮到這一點。它需要以一種可以理解的方式向鏈提供提名人指數。每個提名人現在都可以通過(頁面,索引)元組識別,而不是通過單個索引來識別提名人。
同樣,解決方案驗證也需要考慮到這一點,將解決方案的每個頁面與快照中對應的頁面進行驗證。最後,需要將部分解決方案合併為一個解決方案。
直播預告:
本週四晚7 點,PolkaWorld 邀請Bifrost 的創始人Lurpis和Zenlink 的中國區負責人郭濤加入我們的視頻號直播間「波卡世界」,一起聊聊:
如何通過Bifrost SALP 協議釋放鎖定在crowdloan 中的KSM 流動性?如何通過Zenlink SlotVault DApp 參與crowdloan,並獲得ZLK 獎勵?
歡迎學習Substrate:https://substrate.dev/關注Substrate 進展:https://github.com/paritytech/substrate關注Polkadot 進展:https://github.com/paritytech/polkadot
更多內容:
「Sub0 Online」Substrate 開發者大會演講者名單公佈! Gavin 和這些生態項目都會來!
#0 公投提案: 移除Sudo,Bifrost 升級v0.8.5
波卡週報| Sub0 在線會議將於10 月中旬舉辦!
掃碼關注公眾號,回复“1” 加入波卡群
關注PolkaWorld
發現Web 3.0 時代新機遇
點個“在看” 再走吧!