比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > AAVE > Info

TIME:淺析:Polkadot如何進行升級?

Author:

Time:1900/1/1 0:00:00

引?言

我們都知道,區塊鏈的特性之一是不可篡改,這一特性背后是節點共識等技術的支撐。在全節點共識的網絡中,升級一直是困擾區塊鏈界的一大問題,因為在實際使用場景中,節點的部署通常存在一定的地理隔離。要想在同一時間對所有節點進行升級基本是不可能的!這一問題在公鏈中更為凸顯,一條公鏈的節點可能分散在世界的各個角落。

如果不能同一時間對全部節點進行升級,就會導致某一時刻,既有運行舊版本的節點也有運行新版本的節點。如果舊版本的節點無法驗證新版本的節點產生的區塊,那么便會存在兩條區塊鏈,即所有舊版本的節點維護一條鏈,所有新版本的節點維護一條新的鏈。這一現象我們稱為“硬分叉”。

現有區塊鏈的升級方式

引言中提到的“硬分叉”確實是區塊鏈里的一種軟件升級方式,典型的例子如比特幣以及硬分叉的比特幣現金。

還有一種分叉稱為“軟分叉”,與硬分叉不同之處在于:硬分叉中,新版本的節點可以驗證舊版本的節點產生的區塊,舊版本的節點無法驗證新版本節點產生的區塊;而軟分叉中,新舊版本軟件可以互相驗證對方產生的區塊,因此軟分叉以后,依舊是一條區塊鏈。

美聯儲古爾斯比:尚未對下一步利率行動做出決定:金色財經報道,芝加哥聯儲主席古爾斯比表示,有關美國通脹放緩的數據是個“好消息”,但現在尚未決定是否應在下次政策會議上支持暫停加息。“對于9月份的利率行動,我還沒有下定決心,”他周一說。“我們迄今還走在一條黃金路徑上,它將通往勝利,目前看這種可能性是肯定存在的”。古爾斯比指的是在不觸發衰退的情況下,通脹可以達到美聯儲目標。今年有貨幣政策投票權的古爾斯比表示,對于政策利率是否具有限制性,美聯儲必須“見機行事”。他說“在下次會議之前,我們將獲得幾個主要數據點,但看起來我們取得了很好的平衡。”[2023/7/31 16:09:37]

軟分叉和硬分叉都可以對區塊鏈進行升級,但是它們有非常明顯的缺點:

影響業務運行:需要將正在運行的節點停掉,替換成新版本的二進制,再啟動新版本的節點升級需要較長時間:由于區塊鏈的節點數量很多,且由不同的礦工/管理員運行,整個升級過程可能持續較長時間才能完成

Polkadot如何進行升級

蘋果發布iOS和iPad OS的重要安全更新,旨在解決兩個關鍵性零日漏洞:4月10日消息,蘋果公司發布了 iOS 16.4.1 和 iPadOS 16.4.1 的重要安全更新,旨在解決兩個已經在野外被利用的關鍵性零日漏洞(CVE-2023-28205 和 CVE-2023-28206)。

這些漏洞影響 IOSurfaceAccelerator 和 WebKit,可以在 iPhone 和 iPad 上進行任意代碼執行,并且復雜的攻擊鏈針對最新的 iPhone 設備。蘋果公司承認了這些漏洞的主動利用,IOSurfaceAccelerator 漏洞已通過改進輸入驗證得到修復,而 WebKit 漏洞已通過改進內存管理得到解決。用戶需盡快將設備更新到 iOS 16.4.1 和 iPadOS 16.4.1,以保護設備的安全。[2023/4/10 13:54:50]

Polkadot是基于Substrate框架開發的區塊鏈,也是一個跨鏈協議,其作為中繼鏈實現不同區塊鏈之間的跨鏈交互。它使用Substrate提供的升級方案來進行無分叉的系統升級,完美解決了傳統區塊鏈升級中存在的問題。

Coinbase將Flare(FLR)列入上幣計劃:金色財經報道,Coinbase 宣布將 Flare(FLR) 列入路線圖資產列表。據悉,Coinbase 此前決定為提高資產透明度,將提前列出已決定上線的資產,并移至路線圖。

Flare Network 是一個 EVM 兼容的 Layer 1 區塊鏈,允許用戶在多個網絡之間橋接資產。[2023/3/28 13:30:02]

▲?Runtime介紹

要解釋Polkadot如何進行無分叉升級,首先不得不介紹一下Polkadot里的幾個概念。從技術角度來講,Polkadot協議可以分為兩個部分:Runtime和RuntimeEnvironment,Runtime包含Polkadot協議的大多數狀態轉換函數的執行邏輯,RuntimeEnvironment則包含區塊鏈的一些通用模塊,如網絡通信、區塊生成和共識引擎等。RuntimeEnvironment將外部數據傳入Runtime,并與之交互來執行狀態轉換函數。對Polkadot的升級其實就是對Runtime部分的升級。

巴西央行宣布啟動CBDC試點,擬在2024年底投入公開使用:3月8日消息,巴西央行周一宣布啟動數字貨幣試點項目,旨在復制其即時支付系統Pix的成功,以在該國普及金融服務。

巴西央行負責該項目協調員Fabio Araujo表示,在測試階段(包括個人之間買賣聯邦公共債券)完成以及隨后的評估之后,數字貨幣的公開使用應于2024年底開始。

Araujo表示,央行數字貨幣將作為一種在分布式賬本技術 (DLT) 上執行的支付方式來構建,以支持提供通過巴西金融和支付系統機構的代幣化存款結算的零售金融服務。銀行存款將繼續存在于巴西CBDC中,只是在更現代的環境中注冊,這意味著金融機構不會失去這種信貸產生的資金來源。(路透社)[2023/3/8 12:49:17]

用戶可以選擇使用FRAME來開發Runtime,它的全稱是FrameworkforRuntimeAggregationofModularizedEntities,是一組可簡化Runtime開發的模塊和支持庫。Polkadot的Runtime是用rust編寫的代碼,它被同時編譯成一個native可執行文件和一個WebAssembly二進制文件,native可執行文件是整個節點可執行文件的一部分,而wasm二進制則被作為狀態的一部分存儲在鏈上。節點執行時既可以使用nativeruntime也可以使用wasmruntime,wasmruntime雖然比nativeruntime執行效率低一點,但是它有以下優點:

加密貨幣市場在過去 24 小時內清算了超過 3.5 億美元:金色財經報道,在過去的 10 天里,比特幣鯨魚移動了大約15000比特幣。這些代幣于2014年購買BTC。根據 CoinGlass 的數據,加密貨幣市場在過去 24 小時內清算了超過 3.5 億美元。盡管數量可能看起來很大,但市場上逐漸拋售 15000 BTC 并不會導致清算量出現如此大的飆升。 據報道,鯨魚將大部分古老的資金轉移到Kraken交易所,并且很可能在價格大幅下跌之前將其出售。同時,多數專家認為,回調的主要原因與即將到來的加息和貨幣政策的持續加強有關。[2022/9/7 13:14:02]

跨平臺。雖然wasm是與平臺無關的二進制格式,無論使用何種硬件,在VM中運行wasm,得到相同的執行結果。可以確保產生有效的區塊。在wasm中執行的邏輯總是能在nativeruntime中運行,但反過來則不一定。良好的社區支持。工具鏈和生態得到了社區的大力支持,目前rust對wasm支持的最好。▲?Runtime無分叉升級

升級Runtime的第一步,就是提出一個議案,將更新的Runtimewasm二進制提交到鏈上。下圖是作者寫這篇文章時在Polkadot瀏覽器中的提案截圖,其中編號為2的提案便是對Runtime進行升級的提案。

該議案進入公投并投票通過以后,區塊鏈節點便使用當前的Runtime邏輯,將鏈上使用的wasm二進制替換為議案通過的wasm二進制。作為共識過程的一部分,全網所有的區塊鏈節點都將執行這一過程。

Runtime提供版本信息以區分不同的版本,節點執行時通過判斷nativeruntime和wasmruntime的版本信息,來選擇合適的Runtime執行。Runtime使用RuntimeVersion結構體來表示版本信息,如下圖所示:

其中各字段解釋如下:

spec_name:用于區分不同Substrateruntime的標識符。

impl_name:Runtime實現名稱,用于區分不同團隊所實現的代碼。

authoring_version:出塊接口版本號。只有當該值等于nativeruntime的版本號時,出塊節點才會生成區塊。

spec_version:Runtime規范版本號。只有當nativeruntime和wasmruntime中的spec_name、spec_version、和authoring_version都相等的情況下,全節點才會使用nativeruntime,否則使用wasmruntime。

impl_version:Runtime規范實現版本號。節點可以完全忽略此值;它僅用來說明代碼是不同的。

transaction_version:外部交易接口版本號。

apis:所支持的RuntimeAPI及其版本的列表。

之后,節點執行時會發現nativeruntime的版本和wasmruntime版本不一致,因此之后所有執行過程都會使用鏈上最新的wasmruntime,而不是nativeruntime。至此,便完成了無分叉的升級過程。

▲?存儲遷移

在Polkadot升級過程中,還有一個不可忽略的要點便是存儲遷移,它是指開發人員重新調整現有的存儲以滿足新的需求。

為什么需要存儲遷移呢?舉個簡單的例子:假設在舊的Runtime邏輯中,用戶賬戶余額的數據類型是用無符號整型表示的,也就是用無符號整型進行存儲的;而在新的Runtime邏輯中,該數據類型是用有符號整型表示的。如果沒有使用存儲遷移,新的Runtime執行狀態轉換邏輯的過程中,讀取用戶賬戶余額時有可能讀取到負數可能,這便可能引起不可預料的結果。

在Runtime中需要進行遷移的改動必須使用Substrate提供的D1-runtime-migration標簽來指定。同時,FRAME提供了on_runtime_upgrade函數,該函數的邏輯會在Runtime升級之后立即執行,因此可以在該函數中加入相關的邏輯來實現存儲遷移。

總結

Polkadot的升級方案通過將Runtime分為native和wasm并采用鏈上治理進行升級,無需中斷節點且不影響業務運行,也無需太多的人員投入,效率大大提高,完美解決了分叉升級帶來的問題,確實是一個非常不錯的區塊鏈升級方案。

參考文獻

?RuntimeUpgrades,?https://substrate.dev/docs/en/knowledgebase/runtime/upgrades

?J.Burdges,A.Cevallos,P.Czaban,R.Habermeier,S.Hosseini,F.Lama,H.K.Alper,X.Luo,F.Shirazi,A.Stewart,andG.Wood.Overviewofpolkadotanditsdesignconsiderations.arXivpreprintarXiv:2005.13456,2020.

作者簡介

周蓉

數據網格實驗室BitXHub團隊

研究方向:區塊鏈賬本互操作技術

Tags:TIMEUNTIMERUNTime Bank TokenTitan HuntersDIMEFAL RUNE - Rune.Game

AAVE
比特幣:太慘烈!馬斯克這次“吹捧”不靈了,比特幣大跌5000美元,爆倉人數瞬間翻倍,超百億資金灰飛煙滅

來源:每日經濟新聞 每經編輯彭水萍 馬斯克又在給比特幣“加持”了!他在個人社交媒體賬號上宣布,“你現在能用比特幣買特斯拉了!”不過,比特幣市場這次似乎并不給世界首富面子,比特幣短線再度跳水.

1900/1/1 0:00:00
比特幣:9千萬=上漲1%! 1.9萬億財政刺激之下比特幣還會漲多少?

來源:匯通網 作者:蘇Sue 美國銀行(Bank?of?America?Corp.)策略師認為:比特幣的價格可能比其他一些資產受到資金流入的影響更大.

1900/1/1 0:00:00
COV:Cover發起新提案欲部署xCOVER合約以向持幣者分攤交易費

3月15日,CoverProtocol官方宣布,已有社區成員發起提案,計劃部署xCOVER合約以進行交易費用分攤,為用戶增加收益.

1900/1/1 0:00:00
數字貨幣:財聯社 | 數字美元才是未來?華爾街:下一個“顛覆性力量”就是它

財聯社訊,隨著加密貨幣的興起,華爾街正在逐漸接受一種觀點,即下一個具有“顛覆性力量”的將是數字美元,盡管美聯儲可能還需要幾年時間才能開發出自己的數字貨幣.

1900/1/1 0:00:00
區塊鏈:區塊鏈網絡開發商WAVE BL完成約800萬美元B輪融資,ZIM和Marius Nacht參投

據PRNewsWire3月16日消息,ZIM綜合航運服務有限公司和以色列企業家和投資者MariusNacht今天宣布,他們共同投資了WAVEBL的800萬美元B輪融資.

1900/1/1 0:00:00
DEF:投機?價值?創造者代幣帶來了什么?

在文化與經濟融合度越來越高的今天,文化作為資本的一種形式,也逐漸的被人們所認可。文化的內涵及其豐富的表現形式不僅豐富了人們的社會生活還創造了各種各樣新的精神領域.

1900/1/1 0:00:00
ads