編譯:PolkaWorld
按需平行鏈(也被稱為Parathreads)的開發已經開始啦!已經有很多人在等待平行線程的上線,這篇文章將分享什麼是平行線程?平行線程如何如何獲取生產區塊的權利?以及收集人的驗證過程等。
按需平行鍊是一種更加動態的獲取區塊空間方式的首個變體。現有的平行鏈提供了一種非常靜態的獲取區塊空間的方式,即贏得了一場競拍,然後在很長的時間內,例如一年內,都可以使用有保證的區塊空間。目前,平行鏈在整個時期每12 秒就產出一個區塊。這種定期產出區塊的保障能力的確是一些應用/鏈所需要的,並且是使平行鏈優於智能合約的特點之一。
但是另一方面,從網絡的角度看,這對於一些應用來說過於繁重,它們成為平行鏈會導致大量資源的浪費。從使用者的角度來看,贏得競拍是比較高的門檻,這使得新的項目和想法難以加入網絡。通過按需平行鏈,我們既降低了這個門檻,也以一種更加高效的方式向不太需要大量資源的應用開放了網絡。
那麼這是如何工作的呢?一個按需平行鏈不是每12 秒就安排一次區塊生成,而是當有需要時,一個收集人會訂購一個core 核心(一個區塊生成機會),並向Polkadot 的中繼鏈發送一個特殊的交易(extrinsic),表示他們想要一個核心用於他們的ParaId,並包含他們願意支付的最高價格。
訂購一個核心(Core)
中繼鏈runtime 將會計算當前核心的最佳價格,如果一個新進的訂單的最高價格等於或更高並且賬戶的資金充足,那麼就會按照當前的最佳價格進行收費,並且很快會為出塊者安排出塊權限。這個價格是由中繼鏈根據當前需求來計算的。它基於跟費用的相同機制,以便慢慢地反應需求,以避免價格的劇烈波動。
Polkadot 聯合創始人Robert 針對這個問題進行了補充,他解釋到,在Parathreads 中的費用支付機制中,無論出價者願意支付的最高價格是多少,所支付的費用都是相同的。當按需平行鏈的需求高時,核心的價格會以自動調整的方式緩慢上升。
這種情況中可能存在”MEV” 問題,指礦工或驗證者可以通過操縱交易的順序或包含的交易來獲得的額外收益。例如,驗證者可能會選擇延遲處理出價更高的訂單,以便能收取或銷毀更多的費用。但是Polkadot 的”mortal extrinsics” 限制了這種可能性。 “Mortal extrinsics” 是有生命週期的交易,意味著這些交易不會永遠等待被處理,一段時間後會被自動丟棄,因此限制了驗證者的操作空間。
為了讓平行線程在請求出塊權限時能夠使用已有的安全機制,它們發送的那個請求出塊權限的交易(extrinsic)必須是已簽名的。 “已簽名的外部交易”(signed extrinsic)是指,發送這個交易的賬戶使用自己的私鑰對這個交易進行了簽名。這樣的設計是為了防止其他人冒充該賬戶發送交易,因為除了該賬戶的所有者,沒有人能夠生成與該賬戶的公鑰匹配的簽名。所以,當中繼鏈收到一個已簽名的交易時,它就可以確認這個交易確實是由它聲稱的發送者發送的。
此外,已簽名的交易還可以包含一些額外的信息,如nonce(用於防止重放攻擊)和tip(用於給出塊者的小費)。中繼鏈已經有一套處理這些信息的機制,因此,讓需求驅動型平行鏈的出塊請求使用已簽名的交易可以使它們直接利用這些已有的機制,而不需要開發新的安全機制。
從使用者的角度來看,這意味著要支付的總價費用包括三部分:傳統的交易費用(這是用來支付處理交易所需的計算資源的費用),一個給出塊者的可選小費(這是用來鼓勵出塊者優先處理他們的交易的),以及上面提到的訂購核心價格(即出塊權力的價格)。
在收集人節點中集成訂單機制
實際的區塊創建過程對於驗證節點(收集人)來說與靜態平行鍊是完全一樣的。收集人(Collators)是負責收集並創建區塊的節點。他們會定期檢查平行鏈的狀態,特別是它們自己負責的平行鏈(通過ParaId 標識)。如果他們發現自己的ParaId 對應的平行鏈即將到達創建區塊的時間,他們就會開始生成一個新的區塊。生成區塊後,他們需要產生一個證明(Proof of Validity,簡稱PoV),這個證明包含了區塊的內容以及證明該區塊合法的信息。然後,他們會將這個PoV 證明發送給被分配到的背書組(Backing Group)。背書組是一組負責檢查並確認這個區塊有效性的節點。
雖然在按需平行鏈上的區塊生成過程跟靜態平行鏈上的過程是一樣的,但是在按需平行鏈上我們需要在收集人(Collators)中引入新的機制,讓它們能夠在有需要的時候發送請求區塊生成機會(也就是”核心訂單”)。
關於如何設計這個新的機制,目前有幾種可能的策略(https://github.com/paritytech/cumulus/issues/2154)。如果你對這個問題感興趣,或者你對Cumulus 有一定的了解,深入研究這個問題將是一個很好的方式來參與到這個項目中,並幫助按需平行鏈更快地實現。
Cumulus 是一個用於在Polkadot 和Kusama 網絡上構建平行鏈的開發框架。它是由Parity Technologies 開發的,Parity 是Polkadot 的主要開發者。 Cumulus 降低了開發者構建平行鏈(Parachains)的複雜性。當你使用Cumulus 構建平行鏈時,你可以利用已經在Cumulus 中實現的一些共享邏輯和功能,比如與中繼鏈(Relay Chain)的通信,以及區塊的驗證和最終性的處理等。這樣可以使開發者專注於他們的業務邏輯,而不需要處理這些底層的問題。
總的來說,Cumulus 的目標是讓構建平行鏈變得盡可能簡單,以此來推動Polkadot 和Kusama 生態的發展。
另一個重要提醒是,如果收集人使用的是熱錢包(網絡連接的錢包)進行操作,可能存在安全風險。因此,我們將會提供一個專門的代理賬戶類型,這種賬戶只有在按需平行鏈上的核心投標的權限,從而降低安全風險。
集成異步支持和更多詳情
對於更感興趣的技術受眾,按需平行鏈的全部開發在此處進行跟踪。 https://github.com/orgs/paritytech/projects/67/views/1
子任務可以在此處找到(https://github.com/paritytech/polkadot/issues/5492),特別是對於即將出現的異步支持的集成,一些思考在這個評論中(https://github.com/paritytech/polkadot/issues/5492#issuecomment-1362941241)進行了總結。
簡單來說,現有的核心抽象將不再是0 維,而將是1 維。這可能意味著這個系統或模式的工作方式將變得更加靈活或者復雜,將允許這些”核心”或其他部分的系統預先知道或預測到在未來會發生的任務或事件。這可能是一種優化或改進,使得整個系統能更好地預測和處理未來的活動。
在Polkadot 中,”核心” 是負責處理並驗證平行鏈(parachains)上的交易和其他活動的特殊節點,“核心抽象”通常指的是一種設計方式,其中一些複雜的內部機製或實現細節被隱藏在一個簡單的接口或概念下。
但現在的細節已經足夠了。我們對按需平行鏈將帶來的新的可能性非常興奮,迫不及待地看到它們上線!
內容參考鏈接:https://forum.polkadot.network/t/on-demand-parachains/2208/3