本文整理自 10 月 14 日波卡聯合創始人 Robert Habermeier 在「Sub0 Online 2021」Substrate 開發者大會上關于平行鏈的演講。
我今天其實就是要講講平行鏈,包括:怎樣實現、目前到什么階段了、未來有什么計劃。
我是 Polkadot 的創始人之一,從 2016 年就開始和 Gav 一起在做 Polkadot,我也是平行鏈代碼庫和實現的主程序員和團隊負責人。所以我今天分享的內容是來自第一線的。
平行鏈 V1 開發線路圖
首先我們來看看時間線,看看平行鏈是怎樣發展到今天的。
在 Polkadot 的開發周期初期我們花了大量的時間,去構建 Substrate、BABE 和 GRANDPA 共識算法、lib p2p。其實平行鏈的開發,需要提前完成這里面的很多基礎組件。所以我們在 5 月發表了《實現者指南》的第一版草案,這個指南其實就是一個巨大的實現文檔,它描述了我們的動機,我們在寫這樣大量的代碼時的想法。因為當你深入到一個很大的軟件開發項目時,你真的需要去思考所有的部分要怎樣組合在一起。這些部分不會自然地融合到一起,你不能今天寫點這塊,明天寫點那塊,你需要去思考每一塊要怎樣放在正確的位置。所以說,如果你要做某件事情,就像我們在做的事 —— 上線平行鏈一樣,那么類似《實現者指南》這樣的東西就至關重要,它可以確保代碼是經得起推敲的,它是一個基本的基礎設施組件。
Nodle贏得波卡Polkadot第11次平行鏈插槽拍賣:3月10日,據波卡Polkadot官方消息,Polkadot網絡第11次平行鏈插槽拍賣的蠟燭期于3月10日22時14分結束。整個蠟燭期內,Nodle領先了87.74%的區塊,Equilibrium領先了12.22%的區塊。在經歷了1小時22分鐘的「搖骰子」時間,在23時35分,Nodle以鎖定2,475,500DOT贏得Polkadot第11次平行鏈插槽拍賣,第12次插槽拍賣預計在3月13日凌晨2時3分開啟。
據悉,這是Polkadot第二批最后一次拍賣,第二批一共進行了6次拍賣,獲勝者分別是Efinity、Centrifuge、Composable Finance、HydraDX、Interlay和Nodle,它們將在2022年3月12日早上7時23分接入Polkadot中繼鏈并上線主網。目前包括已經完成的和正在進行的Crowdloan,一共有129,607,700DOT被鎖定,約占總量11%。[2022/3/11 13:50:11]
所以《實現者指南》是在 2020 年 5 月發表的,這時我們就鄭重地開始開始去構建。它所做的一件事是,把平行鏈代碼分為了四個主要部分:
1、支持和可用性:驗證人從收集人那里找到區塊,然后說我覺得這個區塊不錯,把它包含到鏈上,然后保證檢查區塊所需的數據存在。
波卡生態概念板塊今日平均漲幅為1.36%:金色財經行情顯示,波卡生態概念板塊今日平均漲幅為1.36%。26個幣種中15個上漲,11個下跌,其中領漲幣種為:AR(+23.83%)、CRU(+8.03%)、MXC(+4.71%)。領跌幣種為:EWT(-7.23%)、AKRO(-4.62%)、PHA(-3.25%)。[2021/8/27 22:41:44]
2、批準檢查:安全性的一大部分就來自于這里,它是一種方式,一旦平行鏈區塊上鏈了,驗證人通過一種安全的方式隨機自我選擇,這種方式就會檢查是否他們應該恢復這些數據,然后自己檢查區塊。
3、爭議處理:也就是如果一個驗證人檢測到了某個東西是惡意的,那么它就需要去聯系其他的驗證人,讓他們可以參與和檢查。這種情況發生的概率極低,比如是 20 個小數點左右的概率,在批準檢查階段沒有人發現這個區塊是惡意的,此時事態就會迅速升級。所以說這些組件其實都是環環相扣的,來保證平行鏈的安全性和可擴展性。如果你去攻擊這條鏈的話,你不會失去幾百萬美金的概率只有十萬億分之一,而且在每一次你去攻擊時都是一樣的。
4、審計:在過去的幾個月中,我們雇了 SR Labs 去做代碼審計,去檢查實現,試圖找出 Bug。他們進行了獨立的評審,檢查了平行鏈的不同部分。現在我們也請他們做了其他一些部分代碼的審計。他們提出了幾個 Bug,不算太多,目前我們修復了 50% 左右,剩下的也有了解決方案。
波卡回顧上個月客戶端事故 系內存不足導致:6月7日消息,Polkadot官方發文回顧,5月24日要求波卡驗證節點將客戶端降級至0.8.30版本事故,系內存不足導致。Polkadot表示,在試圖構建區塊5202216時因內存不足(OOM)錯誤而失敗。該區塊包含驗證人選舉的鏈上解決方案,該解決方案通常是在鏈下計算的,只有在沒有提交鏈下解決方案的情況下才會在鏈上進行。由于提名者的數量眾多,選舉溢出了Wasm環境中分配的內存。為解決這個問題,當時驗證者被要求暫時將他們的節點軟件降級到至0.8.30版本并且使用「--execution=native」命令。該本地版本不受Wasm內存分配器的限制,網絡在70分鐘停機后恢復。之后在5203204區塊,幾個節點因「存儲根不匹配」錯誤而失敗,這是由于構建本地運行時和鏈上Wasm運行時的編譯器版本不同造成的。解決方案是用一個具有正確編譯器版本的Wasm運行時來覆蓋鏈上Wasm運行時。Polkadotv0.9.3版本上線后修復了該類問題,Polkadot表示未來可能會支持4GB的Wasm分配內存。現在選舉必須在鏈下進行,并且禁用鏈上選舉。在分配器被改進之前,鏈下工作者將使用比鏈上Wasm運行時更高的內存限制確保鏈下選舉不會耗盡內存并能成功提交。另外,Polkadot將確保本地和Wasm構建中使用相同的編譯器版本。[2021/6/7 23:18:48]
這就引出了技術敏捷性的概念,也就是在 Rococo 和 Kusama 上進行審計和重大部署之后,平行鏈已經準備好初始產品版本發布了,要注意的是,我們要修復顯著的審計問題,安排在 12 月之前完成。真實環境下的部署也非常重要,我們有一個 Rococo 測試網,是一個多地區測試網,Parity 運行著它所有的節點,這個網絡也沒有經濟價值,所以它只是用來試一試技術是否可行,我們可以看到在幾百個節點的情況下這項技術有什么表現。
波卡先行網Kusama已正式啟動平行鏈拍賣功能:據官方消息,波卡先行網 Kusama 已正式啟動平行鏈拍賣功能。此前報道,波卡測試網 Kusama 平行鏈宣布已通過 v0.9.1 升級,本次升級了平行鏈、拍賣和眾籌的相關代碼。[2021/5/14 22:04:05]
我們還會看到在 Kusama 上的真實環境測試,因為在進入到真實環境之前,你永遠不知道實際上會發生什么。我們可以試著在 Rococo 上盡可能地去中心化,但是直到進入真實世界前,你其實也不知道真實的情況會如何。Kusama 上有 900 個驗證人,分布在全球,你根本不知道這些節點是誰在運行,他們只是在自己買來或租來的電腦上運行了一個程序而已。
敏捷 vs 成熟
那么,敏捷和成熟相比,意味著什么呢?
敏捷的意思就是,它能用,但是它還沒有到達最終形態。代碼的功能都完整了,該有的功能都有。也用高標準測試過了,在各種邊緣情況下都測試了,和各種模塊都結合地很好。還有安全專業機構進行了獨立的評審,我們還模擬了可能的攻擊,看看該系統是否可靠。實際上如果你現在去看 Rococo 測試網的話,你會發現有敵對的節點正在試圖去破壞網絡,但是沒有成功。但是,如果說某個東西是敏捷的,它可能還是存在 Bug,可能還需要重大優化。
波卡隱私協議 Phala Network 獲千萬美元估值戰略投資:9月1日消息,波卡生態隱私基礎設施Phala Network 宣布已完成估值上千萬美元的戰略融資。投資方包括 Candaq Group、IOSG Ventures、SNZ、水滴資本、幣世界、瑞新資本、無極鏈、株式會社Incuba Alpha、Exoplanet Capital和Blue Mountain Labs。Phala Network從2019年初開始在波卡生態建設,作為波卡上的隱私計算平行鏈,Phala基于類pow的激勵機制對具備TEE功能的CPU進行大規模分布式部署,進而解決區塊鏈上面的隱私問題,從而服務于波卡上的Defi、數據服務等應用。基于Phala開發的落地場景:Libra橋、Web3 Analytics和去中心化暗池共獲得波卡三次資助。[2020/9/1]
相對的就是成熟的這一類代碼,當某件事已經演化到一個階段,經過了幾年的使用后,它已經是一個基礎性的、大負載的、可靠性很高的基礎設施,我們就會說它是成熟的。所以有很多優化可以去做,它是經過了實戰考驗的。比如說以太坊在 2016 年經歷的上海攻擊,那時大家真的在努力地試著去摧毀以太坊網絡。當現實世界中的某些東西被證明可以承受經濟攻擊時,這是朝著成熟邁出的一大步。
代碼是穩定的,更多地在維護代碼,而不是開發代碼。這意味著在這這時創新并沒有那么多了,因為它的基礎設施和增長更多地都是一些邊緣創新。
走向成熟的道路
那么,我們走向成熟的道路是什么?沿著這條道路前進的一些步驟是什么?我將介紹一些主要的步驟。
我認為其中的一些非常重要的即將發生的事情是上下文執行、平行線程和一般的網絡優化。所以我將深入聊聊這三件事。
如果你觀察過 Kusama 或 Rococo 網絡,你會看到每 12 秒包含一個區塊。這不是出于協議的限制,而是實現的限制。所以上下文執行就是為了從 12 秒出塊加速到 6 秒出塊。在我們目前 Rococo 和 Kusama 上的很短的區塊執行時間中,又只有很少的時間是真正用于區塊的執行的。
上下文執行的想法是顯著增加區塊執行時間,它基本上是關于提前準備區塊,有點像是在鏈下進一步構建平行鏈,然后慢慢地把這些東西放到主中繼鏈上。而不是在平行鏈區塊馬上就要被包含到中繼鏈上時再去構建這些區塊。這是我們已經制定好的優化方案,我們已經為它制定了設計,它是接下來的優先事項之一。
另一件即將發生的有趣事情是平行線程,它是建立在一個區塊又一個區塊的基礎上的平行鏈插槽的動態調度。這是什么意思呢?目前平行鏈是有專用的執行時間的,這些時間通過拍賣來購買,可能是 6 個月、12 個月或 24 個月的時間專屬于我,我可以在任何我想使用系統的時候去執行一個區塊。而平行線程更像是一種即用即付的模型,它和平行鏈非常相似,其實代碼實際上并沒有特別不同,它實際上只影響我們所說的支持和收集階段。對于我之前說到的一些階段,比如可用性、批準檢查和爭議等,平行線程和平行鏈是一模一樣的。
網絡優化是一個比較大的部分。這是點對點網絡,正如 Gav 在之前的演講中提到的一樣,點對點網絡是一個挑戰,它非常困難,因為在客戶端服務器模型中,你必須標記一些服務器,就能快速回復。但是當你在做點對點網絡的時候,挑戰就是盡可能有效和快速地分發數據,并且具有低冗余和高交付保證,其實很難做到這一點。我認為在網絡優化方面有很多馬上就要夠得到的成果,這將極大地提高實現的性能。
所以我覺得這些都是平行鏈方面在不久的將來可以關注的一些點。
重構 Rococo
接下來我想聊聊 Rococo 測試網,包括這對社區意味著什么,大家可以怎樣參與進來。
之前我提到了 Parity 在運行所有的 Rococo 節點,它的作用主要集中在內部測試上,我們會運行前沿代碼,快速修改,部署對抗性節點之類的。但這確實意味著當我們在開發過程中發現了錯誤,我們偶爾會破壞這條鏈,這使得對于想在上面部署自己的平行鏈的團隊來說,這條鏈變成了一個非常困難的部署環境。Substrate 開發者需要有一個地方來部署和測試跨鏈解決方案。隨著目前版本的 XCM 更加穩定,大家已經可以真正使用那些跨鏈創新了,那么一個測試環境就變得非常重要。
所以在這里我要向你隆重介紹 Rococo 改造計劃。
我們的想法是,Parity 會在 Rococo 測試網上保持向后兼容性,以確保它不會重新啟動。所以當你注冊平行鏈的時候,不用像在 Kusama 和 Westend 里那樣再去更新你的節點或 runtime,這意味著你可以計劃在更長的時間內使用 Rococo,并真正將其用作與其他團隊合作的地方。
另一點是自動平行鏈插槽。我們構建了一種調度程序,將 Rococo 上的時間分配給注冊使用它的團隊,這樣他們就可以獲得長度為一周插槽。這些插槽會在可用性的基礎上自動且公平地分配給團隊。不過我們特別會優先考慮已在實時網絡上部署鏈的團隊,也會優先考慮加入了 Substrate Builder Program 的團隊。
當然我們也會非常注重社區。我們鼓勵在 Rococo 上進行跨鏈通信和實驗,尤其是在更高層次上,不僅是部署平行鏈,還包括在平行鏈鏈之上部署一些東西,比如我們希望可以看到用戶界面或去中心化應用程序開發者,可以去利用多條平行鏈,并且享受在這個測試網中進行創造。而不僅僅是那些超級硬核的特別底層的開發者。
我在這列出了一個時間表,說明一些 Rococo 改造的計劃是什么樣的。
今天我宣布了我們打算改造 Rococo,我們還將很快發表一篇更長的博客文章來詳細描述。
然后就是技術方面的跟進,包括制定新的鏈規范,制定一些參數,比如 Session 是多長時間,更換驗證人的頻率如何等,我們會把這些都自動化。
最后就是朝著 Rococo 的最終重啟進發,我們將不再把這條鏈用于內部測試。目標是在 11 月底完成這一步。
1.金色觀察 | 全球加密監管按下廣泛推動鍵針對加密貨幣帶來的風險,各國推行監管政策。諸如對加密貨幣分門別類重點關注證券型代幣的監管;將交易所等加密貨幣提供商作為加密貨幣監管的"抓手";為了打擊.
1900/1/1 0:00:00自2021年Roblox上市引爆“元宇宙”概念后,無論是資本市場還是創業者對于“元宇宙”的興趣和關切都驟然升溫.
1900/1/1 0:00:00導讀: 在當前的加密生態系統中,每天都會涌現出許多 DAO,但大多數DAO還沒有能力應對他們所面臨的挑戰.
1900/1/1 0:00:00玩家們享受這里的自由:沒有腳本,沒有人物定位,各路玩家自己發揮。元宇宙有多火,已經無需贅言。似乎不投元宇宙的VC,已經是古典VC,沒聽過元宇宙,和沒聽過區塊鏈一樣out了.
1900/1/1 0:00:00頭條 ▌國家發改委將虛擬貨幣“挖礦”活動列入市場準入負面清單國家發改委向社會公開征求對《市場準入負面清單(2021年版)》意見,將虛擬貨幣“挖礦”活動列入淘汰類“一、落后生產工藝裝備”.
1900/1/1 0:00:00比特幣價格又一次創歷史新高。?10月20日晚間,比特幣價格一舉突破2021年4月11日創下的歷史最高點64843美元,觸及66000美元.
1900/1/1 0:00:00