以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads

淺析:Polkadot如何進行升級?_TIME:Octavus Prime

Author:

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

引?言

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

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

現有區塊鏈的升級方式

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

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

律師:人們向伴侶隱藏加密貨幣資產越發普遍:5月21日消息,加密貨幣使越來越多的離婚變得復雜。離婚律師表示,人們向伴侶隱藏加密貨幣也變得越來越普遍。一名婦女說,她在離婚期間得知丈夫隱藏了當時價值約50萬美元的比特幣。一項民意調查發現,五分之一的美國人投資、交易或使用過加密貨幣,年齡在18歲至49歲之間的男性在所有人口群體中所占比例最高。[2023/5/21 15:16:53]

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

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

Polkadot如何進行升級

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

前聯邦檢察官James K. Filan預計Hinman以太坊演講相關文件將在6月6日之前公布:金色財經報道,前聯邦檢察官James K. Filan預計Hinman以太坊演講相關文件將在6月6日之前向公眾發布,Hinman演講文件與前SEC公司財務部主管 Bill Hinman 2018 年的一次演講有關,他表示ETH不是證券。這些文件涉及美國證券交易委員會圍繞這次演講的內部討論和審議。James K. Filan發推表示,過去幾年一直積極關注SEC 與 Ripple 案的Filan 提供了有關文件何時可以向公眾公開的最新信息,根據法院2022年9月12日的命令,雙方有21天的時間提交與封存裁決一致的簡易判決文件的公開、編輯版本。[2023/5/18 15:10:41]

▲?Runtime介紹

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

Neutrino發起“在路線圖發布前暫停或終止當前治理”的提案投票:2月21日消息,據官方消息,Neutrino社區成員在治理論壇上發布了一項提案,建議暫時禁用或終止當前的Neutrino治理,直到發布明確的路線圖。提案稱,當前的Neutrino系統缺乏透明度和方向性,使得利益相關者無法了解其長期目標和戰略。如果沒有明確的方向,利益相關者就會對項目的未來一無所知,無法做出明智的決定或提供有價值的反饋來改進系統。

此外,XTN在ViresFinance上被鎖定的情況完全不清楚,這在社區內引起了混亂和擔憂。這個問題應該公開解決并向社區解釋,因為它正在影響做出明智決定的能力。通過在發布明確的路線圖之前暫停當前的治理系統,也可以以更加透明和有效的方式處理和解決這個問題。提案還表示,大量利益相關者在最近的治理提案中投了棄權票。這并不是無知或脫離的跡象,而是一個明確的聲明,表明許多利益相關者不同意該項目當前的方向。該提案已開啟投票,目前支持率為99%,將于2月24日結束。

此前1月31日消息,Neutrino 2.0簡化版白皮書發布,提及USDN將轉型為指數代幣XTN,將以折扣激勵代幣發行。[2023/2/21 12:19:35]

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

三星電子將于明年上半年推出能夠交易和展示NFT的智能電視:金色財經報道,三星電子將于明年上半年推出能夠交易和展示NFT的智能電視,計劃內置美國NFT Gateway、法國La Collection、韓國Art Token等 3 家公司的NFT應用,此外也正在研究將虛擬資產(加密貨幣)等多種方式作為支付手段。(韓國經濟日報)[2022/12/22 22:00:00]

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

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

薩爾瓦多將舉辦央行會議,討論金融包容性和比特幣相關問題:金色財經報道,薩爾瓦多總統發推稱,明天,32個中央銀行和12個金融當局(44個國家)將在薩爾瓦多舉行會議,討論金融包容性、數字經濟、無銀行業務的銀行業務、比特幣的推廣及其在我國的好處。[2022/5/16 3:18:42]

該議案進入公投并投票通過以后,區塊鏈節點便使用當前的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:TIMIMEUNTTIMEFansTimeOctavus PrimeOrigin Fountainhead Chaintimeassetscoin

歐易okex官網
這輪牛市如何逃頂?關注這兩個信號_Curve:Cure Token

在牛市中,我除了關注行情的大體走勢還會特別關注宏觀經濟環境的變化。為什么呢?因為宏觀經濟環境的變化會影響牛市的走勢.

1900/1/1 0:00:00
參考消息網 | 澳媒文章:數字貨幣的未來將在亞洲決定_數字貨幣:加密貨幣

參考消息網4月9日報道澳大利亞東亞論壇網站4月5日刊載題為《數字貨幣的未來將在亞洲決定》的文章,文章稱,數字貨幣和支付正在亞洲蓬勃發展,數字落后地區將感受到壓力.

1900/1/1 0:00:00
dClimate完成350萬美元種子輪融資,CoinFund、Multicoin Capital等投資_MAT:Materium

dClimate,一個去中心化氣候數據網絡,今天宣布已完成由CoinFund牽頭的350萬美元種子輪融資,MulticoinCapital和RepublicLabs參與了該輪融資.

1900/1/1 0:00:00
無許可跨鏈燃燒協議Black Hole Protocol完成戰略融資_AMP:區塊鏈

無許可跨鏈燃燒協議BlackHoleProtocol在推特上宣布完成戰略融資,由NGCVentures、AU21Capital、X21Digital、PowerLawCapital、ShinCh.

1900/1/1 0:00:00
Ether Cards首發「Accidental Collaboration」五層藝術品NFT_CAR:CART幣

本文來自ether.cards,原文作者:ANDRASKRISTOFOdaily星球日報譯者|Moni 對于EtherCards來說,上周真的很瘋狂!首先.

1900/1/1 0:00:00
IOTA基金會聯合創始人:GoShimmer測試網和框架將支持創建數字資產_GOS:Toshimon

據CryptoNewsFlash報道,IOTA基金會聯合創始人DominikSchiner在昨天的AMA中談到IOTA未來幾個月的重點工作包括智能合約和數字資產.

1900/1/1 0:00:00
ads