<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Robert:平行鏈的未來規(guī)劃和 Rococo 的重構(gòu)

          共 4300字,需瀏覽 9分鐘

           ·

          2021-10-25 02:37

          加入 PolkaWorld 社區(qū),共建 Web 3.0!

          本文整理自 10 月 14 日波卡聯(lián)合創(chuàng)始人 Robert Habermeier 在「Sub0 Online 2021」Substrate 開發(fā)者大會上關(guān)于平行鏈的演講,由 PolkaWorld 翻譯和整理。



          我今天其實(shí)就是要講講平行鏈,包括:怎樣實(shí)現(xiàn)、目前到什么階段了、未來有什么計劃。


          我是 Polkadot 的創(chuàng)始人之一,從 2016 年就開始和 Gav 一起在做 Polkadot,我也是平行鏈代碼庫和實(shí)現(xiàn)的主程序員和團(tuán)隊負(fù)責(zé)人。所以我今天分享的內(nèi)容是來自第一線的。



          平行鏈 V1 開發(fā)線路圖


          首先我們來看看時間線,看看平行鏈?zhǔn)窃鯓影l(fā)展到今天的。



          在 Polkadot 的開發(fā)周期初期我們花了大量的時間,去構(gòu)建 Substrate、BABE 和 GRANDPA 共識算法、lib p2p。其實(shí)平行鏈的開發(fā),需要提前完成這里面的很多基礎(chǔ)組件。所以我們在 5 月發(fā)表了《實(shí)現(xiàn)者指南》的第一版草案,這個指南其實(shí)就是一個巨大的實(shí)現(xiàn)文檔,它描述了我們的動機(jī),我們在寫這樣大量的代碼時的想法。因為當(dāng)你深入到一個很大的軟件開發(fā)項目時,你真的需要去思考所有的部分要怎樣組合在一起。這些部分不會自然地融合到一起,你不能今天寫點(diǎn)這塊,明天寫點(diǎn)那塊,你需要去思考每一塊要怎樣放在正確的位置。所以說,如果你要做某件事情,就像我們在做的事 —— 上線平行鏈一樣,那么類似《實(shí)現(xiàn)者指南》這樣的東西就至關(guān)重要,它可以確保代碼是經(jīng)得起推敲的,它是一個基本的基礎(chǔ)設(shè)施組件。


          所以《實(shí)現(xiàn)者指南》是在 2020 年 5 月發(fā)表的,這時我們就鄭重地開始開始去構(gòu)建。它所做的一件事是,把平行鏈代碼分為了四個主要部分:


          1、支持和可用性:驗證人從收集人那里找到區(qū)塊,然后說我覺得這個區(qū)塊不錯,把它包含到鏈上,然后保證檢查區(qū)塊所需的數(shù)據(jù)存在。


          2、批準(zhǔn)檢查:安全性的一大部分就來自于這里,它是一種方式,一旦平行鏈區(qū)塊上鏈了,驗證人通過一種安全的方式隨機(jī)自我選擇,這種方式就會檢查是否他們應(yīng)該恢復(fù)這些數(shù)據(jù),然后自己檢查區(qū)塊。


          3、爭議處理:也就是如果一個驗證人檢測到了某個東西是惡意的,那么它就需要去聯(lián)系其他的驗證人,讓他們可以參與和檢查。這種情況發(fā)生的概率極低,比如是 20 個小數(shù)點(diǎn)左右的概率,在批準(zhǔn)檢查階段沒有人發(fā)現(xiàn)這個區(qū)塊是惡意的,此時事態(tài)就會迅速升級。所以說這些組件其實(shí)都是環(huán)環(huán)相扣的,來保證平行鏈的安全性和可擴(kuò)展性。如果你去攻擊這條鏈的話,你不會失去幾百萬美金的概率只有十萬億分之一,而且在每一次你去攻擊時都是一樣的。


          4、審計:在過去的幾個月中,我們雇了 SR Labs 去做代碼審計,去檢查實(shí)現(xiàn),試圖找出 Bug。他們進(jìn)行了獨(dú)立的評審,檢查了平行鏈的不同部分。現(xiàn)在我們也請他們做了其他一些部分代碼的審計。他們提出了幾個 Bug,不算太多,目前我們修復(fù)了 50% 左右,剩下的也有了解決方案。


          這就引出了技術(shù)敏捷性的概念,也就是在 Rococo 和 Kusama 上進(jìn)行審計和重大部署之后,平行鏈已經(jīng)準(zhǔn)備好初始產(chǎn)品版本發(fā)布了,要注意的是,我們要修復(fù)顯著的審計問題,安排在 12 月之前完成。真實(shí)環(huán)境下的部署也非常重要,我們有一個 Rococo 測試網(wǎng),是一個多地區(qū)測試網(wǎng),Parity 運(yùn)行著它所有的節(jié)點(diǎn),這個網(wǎng)絡(luò)也沒有經(jīng)濟(jì)價值,所以它只是用來試一試技術(shù)是否可行,我們可以看到在幾百個節(jié)點(diǎn)的情況下這項技術(shù)有什么表現(xiàn)。


          我們還會看到在 Kusama 上的真實(shí)環(huán)境測試,因為在進(jìn)入到真實(shí)環(huán)境之前,你永遠(yuǎn)不知道實(shí)際上會發(fā)生什么。我們可以試著在 Rococo 上盡可能地去中心化,但是直到進(jìn)入真實(shí)世界前,你其實(shí)也不知道真實(shí)的情況會如何。Kusama 上有 900 個驗證人,分布在全球,你根本不知道這些節(jié)點(diǎn)是誰在運(yùn)行,他們只是在自己買來或租來的電腦上運(yùn)行了一個程序而已。



          敏捷 vs 成熟



          那么,敏捷和成熟相比,意味著什么呢?


          敏捷的意思就是,它能用,但是它還沒有到達(dá)最終形態(tài)。代碼的功能都完整了,該有的功能都有。也用高標(biāo)準(zhǔn)測試過了,在各種邊緣情況下都測試了,和各種模塊都結(jié)合地很好。還有安全專業(yè)機(jī)構(gòu)進(jìn)行了獨(dú)立的評審,我們還模擬了可能的攻擊,看看該系統(tǒng)是否可靠。實(shí)際上如果你現(xiàn)在去看 Rococo 測試網(wǎng)的話,你會發(fā)現(xiàn)有敵對的節(jié)點(diǎn)正在試圖去破壞網(wǎng)絡(luò),但是沒有成功。但是,如果說某個東西是敏捷的,它可能還是存在 Bug,可能還需要重大優(yōu)化。


          相對的就是成熟的這一類代碼,當(dāng)某件事已經(jīng)演化到一個階段,經(jīng)過了幾年的使用后,它已經(jīng)是一個基礎(chǔ)性的、大負(fù)載的、可靠性很高的基礎(chǔ)設(shè)施,我們就會說它是成熟的。所以有很多優(yōu)化可以去做,它是經(jīng)過了實(shí)戰(zhàn)考驗的。比如說以太坊在 2016 年經(jīng)歷的上海攻擊,那時大家真的在努力地試著去摧毀以太坊網(wǎng)絡(luò)。當(dāng)現(xiàn)實(shí)世界中的某些東西被證明可以承受經(jīng)濟(jì)攻擊時,這是朝著成熟邁出的一大步。


          代碼是穩(wěn)定的,更多地在維護(hù)代碼,而不是開發(fā)代碼。這意味著在這這時創(chuàng)新并沒有那么多了,因為它的基礎(chǔ)設(shè)施和增長更多地都是一些邊緣創(chuàng)新。



          走向成熟的道路


          那么,我們走向成熟的道路是什么?沿著這條道路前進(jìn)的一些步驟是什么?我將介紹一些主要的步驟。


          我認(rèn)為其中的一些非常重要的即將發(fā)生的事情是上下文執(zhí)行、平行線程和一般的網(wǎng)絡(luò)優(yōu)化。所以我將深入聊聊這三件事。



          如果你觀察過 Kusama 或 Rococo 網(wǎng)絡(luò),你會看到每 12 秒包含一個區(qū)塊。這不是出于協(xié)議的限制,而是實(shí)現(xiàn)的限制。所以上下文執(zhí)行就是為了從 12 秒出塊加速到 6 秒出塊。在我們目前 Rococo 和 Kusama 上的很短的區(qū)塊執(zhí)行時間中,又只有很少的時間是真正用于區(qū)塊的執(zhí)行的。


          上下文執(zhí)行的想法是顯著增加區(qū)塊執(zhí)行時間,它基本上是關(guān)于提前準(zhǔn)備區(qū)塊,有點(diǎn)像是在鏈下進(jìn)一步構(gòu)建平行鏈,然后慢慢地把這些東西放到主中繼鏈上。而不是在平行鏈區(qū)塊馬上就要被包含到中繼鏈上時再去構(gòu)建這些區(qū)塊。這是我們已經(jīng)制定好的優(yōu)化方案,我們已經(jīng)為它制定了設(shè)計,它是接下來的優(yōu)先事項之一。


          另一件即將發(fā)生的有趣事情是平行線程,它是建立在一個區(qū)塊又一個區(qū)塊的基礎(chǔ)上的平行鏈插槽的動態(tài)調(diào)度。這是什么意思呢?目前平行鏈?zhǔn)怯袑S玫膱?zhí)行時間的,這些時間通過拍賣來購買,可能是 6 個月、12 個月或 24 個月的時間專屬于我,我可以在任何我想使用系統(tǒng)的時候去執(zhí)行一個區(qū)塊。而平行線程更像是一種即用即付的模型,它和平行鏈非常相似,其實(shí)代碼實(shí)際上并沒有特別不同,它實(shí)際上只影響我們所說的支持和收集階段。對于我之前說到的一些階段,比如可用性、批準(zhǔn)檢查和爭議等,平行線程和平行鏈?zhǔn)且荒R粯拥摹?/p>


          網(wǎng)絡(luò)優(yōu)化是一個比較大的部分。這是點(diǎn)對點(diǎn)網(wǎng)絡(luò),正如 Gav 在之前的演講中提到的一樣,點(diǎn)對點(diǎn)網(wǎng)絡(luò)是一個挑戰(zhàn),它非常困難,因為在客戶端服務(wù)器模型中,你必須標(biāo)記一些服務(wù)器,就能快速回復(fù)。但是當(dāng)你在做點(diǎn)對點(diǎn)網(wǎng)絡(luò)的時候,挑戰(zhàn)就是盡可能有效和快速地分發(fā)數(shù)據(jù),并且具有低冗余和高交付保證,其實(shí)很難做到這一點(diǎn)。我認(rèn)為在網(wǎng)絡(luò)優(yōu)化方面有很多馬上就要夠得到的成果,這將極大地提高實(shí)現(xiàn)的性能。


          所以我覺得這些都是平行鏈方面在不久的將來可以關(guān)注的一些點(diǎn)。



          重構(gòu) Rococo


          接下來我想聊聊 Rococo 測試網(wǎng),包括這對社區(qū)意味著什么,大家可以怎樣參與進(jìn)來。



          之前我提到了 Parity 在運(yùn)行所有的 Rococo 節(jié)點(diǎn),它的作用主要集中在內(nèi)部測試上,我們會運(yùn)行前沿代碼,快速修改,部署對抗性節(jié)點(diǎn)之類的。但這確實(shí)意味著當(dāng)我們在開發(fā)過程中發(fā)現(xiàn)了錯誤,我們偶爾會破壞這條鏈,這使得對于想在上面部署自己的平行鏈的團(tuán)隊來說,這條鏈變成了一個非常困難的部署環(huán)境。Substrate 開發(fā)者需要有一個地方來部署和測試跨鏈解決方案。隨著目前版本的 XCM 更加穩(wěn)定,大家已經(jīng)可以真正使用那些跨鏈創(chuàng)新了,那么一個測試環(huán)境就變得非常重要。


          所以在這里我要向你隆重介紹 Rococo 改造計劃



          我們的想法是,Parity 會在 Rococo 測試網(wǎng)上保持向后兼容性,以確保它不會重新啟動。所以當(dāng)你注冊平行鏈的時候,不用像在 Kusama 和 Westend 里那樣再去更新你的節(jié)點(diǎn)或 runtime,這意味著你可以計劃在更長的時間內(nèi)使用 Rococo,并真正將其用作與其他團(tuán)隊合作的地方。


          另一點(diǎn)是自動平行鏈插槽。我們構(gòu)建了一種調(diào)度程序,將 Rococo 上的時間分配給注冊使用它的團(tuán)隊,這樣他們就可以獲得長度為一周插槽。這些插槽會在可用性的基礎(chǔ)上自動且公平地分配給團(tuán)隊。不過我們特別會優(yōu)先考慮已在實(shí)時網(wǎng)絡(luò)上部署鏈的團(tuán)隊,也會優(yōu)先考慮加入了 Substrate Builder Program 的團(tuán)隊。


          當(dāng)然我們也會非常注重社區(qū)。我們鼓勵在 Rococo 上進(jìn)行跨鏈通信和實(shí)驗,尤其是在更高層次上,不僅是部署平行鏈,還包括在平行鏈鏈之上部署一些東西,比如我們希望可以看到用戶界面或去中心化應(yīng)用程序開發(fā)者,可以去利用多條平行鏈,并且享受在這個測試網(wǎng)中進(jìn)行創(chuàng)造。而不僅僅是那些超級硬核的特別底層的開發(fā)者。


          我在這列出了一個時間表,說明一些 Rococo 改造的計劃是什么樣的。



          今天我宣布了我們打算改造 Rococo,我們還將很快發(fā)表一篇更長的博客文章來詳細(xì)描述。


          然后就是技術(shù)方面的跟進(jìn),包括制定新的鏈規(guī)范,制定一些參數(shù),比如 Session 是多長時間,更換驗證人的頻率如何等,我們會把這些都自動化。


          最后就是朝著 Rococo 的最終重啟進(jìn)發(fā),我們將不再把這條鏈用于內(nèi)部測試。目標(biāo)是在 11 月底完成這一步。


          以上就是我的演講,謝謝!


          • 歡迎學(xué)習(xí) Substrate:?

            https://substrate.dev/

          • 關(guān)注 Substrate 進(jìn)展:

            https://github.com/paritytech/substrate

          • 關(guān)注 Polkadot 進(jìn)展:

            https://github.com/paritytech/polkadot

          更多內(nèi)容:


          給朋友和家人送一份 Polkadot 和 Kusama 禮物吧!

          教程|KAR 與 BNC 即將開啟跨鏈 DeFi 之旅

          Kusama 開啟一系列連續(xù)不斷的平行鏈插槽 Auction!


          掃碼關(guān)注公眾號,回復(fù) “1” 加入波卡群

          關(guān)注 PolkaWorld

          發(fā)現(xiàn)?Web 3.0 時代新機(jī)遇


          點(diǎn)個 “在看” 再走吧!

          瀏覽 51
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  五月天婷婷色色 | 91免费成人在线 | 亚洲在线一区 | 一区二区天堂 | 特级毛片内射 |