火星链 火星链
Ctrl+D收藏火星链

TIM:浅析:Polkadot如何进行升级?

作者:

时间:1900/1/1 0:00:00

引?言

我们都知道,区块链的特性之一是不可篡改,这一特性背后是节点共识等技术的支撑。在全节点共识的网络中,升级一直是困扰区块链界的一大问题,因为在实际使用场景中,节点的部署通常存在一定的地理隔离。要想在同一时间对所有节点进行升级基本是不可能的!这一问题在公链中更为凸显,一条公链的节点可能分散在世界的各个角落。

如果不能同一时间对全部节点进行升级,就会导致某一时刻,既有运行旧版本的节点也有运行新版本的节点。如果旧版本的节点无法验证新版本的节点产生的区块,那么便会存在两条区块链,即所有旧版本的节点维护一条链,所有新版本的节点维护一条新的链。这一现象我们称为“硬分叉”。

现有区块链的升级方式

引言中提到的“硬分叉”确实是区块链里的一种软件升级方式,典型的例子如比特币以及硬分叉的比特币现金。

还有一种分叉称为“软分叉”,与硬分叉不同之处在于:硬分叉中,新版本的节点可以验证旧版本的节点产生的区块,旧版本的节点无法验证新版本节点产生的区块;而软分叉中,新旧版本软件可以互相验证对方产生的区块,因此软分叉以后,依旧是一条区块链。

币安研究院:2030年代币化资产市场预计将达到16万亿美元:金色财经报道,币安研究院发布《现实世界资产:市场状况》报告,其中指出随着用户采用率的增加和大型机构参与者的进入,现实世界资产的代币化(“RWA”)继续受到关注。再加上相对较低的去中心化金融(“DeFi”)收益率,利率上升推动了RWA的增长,特别是代币化国债。

如今,投资者通过代币化国债市场向美国政府提供了超过6亿美元的有效贷款,并获得了约4.2%的年化收益率。预计到2030年,代币化资产市场规模将达到16万亿美元,增长空间巨大,较2022年的3100亿美元有显着增长。[2023/7/26 15:59:58]

软分叉和硬分叉都可以对区块链进行升级,但是它们有非常明显的缺点:

影响业务运行:需要将正在运行的节点停掉,替换成新版本的二进制,再启动新版本的节点升级需要较长时间:由于区块链的节点数量很多,且由不同的矿工/管理员运行,整个升级过程可能持续较长时间才能完成

Polkadot如何进行升级

Polkadot是基于Substrate框架开发的区块链,也是一个跨链协议,其作为中继链实现不同区块链之间的跨链交互。它使用Substrate提供的升级方案来进行无分叉的系统升级,完美解决了传统区块链升级中存在的问题。

吴磊:分布式资产的普及将从广告产业往全Web3赛道蔓延:6月4日,在由世界无人机大会组委会、中国民协元宇宙工委主办的第七届世界无人机大会上,DA AGE合伙人吴磊预言了实体经济中的真实物理资产将通过DLT的技术方式一一映射到区块链数字资产世界,以颗粒化、精准化的数字流动方式,将分布式资产概念和权益分配到公众手中的趋势性未来。

同日晚,由DA AGE举办的“为什么RWA+NFT会成为Ordi之后的全新爆点”论坛,嘉宾们一致表示,RWA将物理世界的真实资产带入区块链,将解决股市和企业无法精准奖励生态贡献者等痛点。该场直播现场突破1.27万人次在线观看,和前日同主题直播累计回放超4万人次观摩,受到大家的一致好评。[2023/6/5 21:16:53]

▲?Runtime介绍

要解释Polkadot如何进行无分叉升级,首先不得不介绍一下Polkadot里的几个概念。从技术角度来讲,Polkadot协议可以分为两个部分:Runtime和RuntimeEnvironment,Runtime包含Polkadot协议的大多数状态转换函数的执行逻辑,RuntimeEnvironment则包含区块链的一些通用模块,如网络通信、区块生成和共识引擎等。RuntimeEnvironment将外部数据传入Runtime,并与之交互来执行状态转换函数。对Polkadot的升级其实就是对Runtime部分的升级。

世界经济论坛为政府、行业发布加密资产监管建议:金色财经报道,世界经济论坛在其数字货币治理联盟的协助下发布了一份关于加密资产监管的白皮书。该论文认为,全球协调对于加密资产监管来说是必要的,以防止歧义、监管仲裁和不一致的执法。白皮书指出了加密资产监管面临的一系列挑战,包括相同活动,相同监管的假设,声称,加密资产及其生态系统并不总是完全适合现有的基于活动、以中介为中心的监管方法,即使加密资产活动反映了传统金融部门的活动。

白皮书分别向国际组织、监管机构和加密行业提出了三项广泛的建议。政策制定者和行业利益相关者需要跨辖区合作,以确保一致性和清晰度,随着这些新技术更加透明,可以想象出更好的监管工具来解决跨境问题。[2023/5/27 9:45:08]

用户可以选择使用FRAME来开发Runtime,它的全称是FrameworkforRuntimeAggregationofModularizedEntities,是一组可简化Runtime开发的模块和支持库。Polkadot的Runtime是用rust编写的代码,它被同时编译成一个native可执行文件和一个WebAssembly二进制文件,native可执行文件是整个节点可执行文件的一部分,而wasm二进制则被作为状态的一部分存储在链上。节点执行时既可以使用nativeruntime也可以使用wasmruntime,wasmruntime虽然比nativeruntime执行效率低一点,但是它有以下优点:

美CFTC主席:比特币是唯一应该被视为商品的加密货币:12月1日消息,美国商品期货交易委员会(CFTC)主席Rostin Behnam表示,CFTC执法行动的能力有限,缺乏直接监管的权利,并呼吁美国立法者和政策制定者尽快采取行动。

此外,Behnam还指出,加密货币不同于他们处理过的任何商品,它是作为投机性零售市场的普遍行为,但BTC是唯一应该被视为商品的加密货币。此前10月消息,Behnam表示,ETH也可能是一种商品。(Fortune)[2022/12/1 21:15:10]

跨平台。虽然wasm是与平台无关的二进制格式,无论使用何种硬件,在VM中运行wasm,得到相同的执行结果。可以确保产生有效的区块。在wasm中执行的逻辑总是能在nativeruntime中运行,但反过来则不一定。良好的社区支持。工具链和生态得到了社区的大力支持,目前rust对wasm支持的最好。▲?Runtime无分叉升级

升级Runtime的第一步,就是提出一个议案,将更新的Runtimewasm二进制提交到链上。下图是作者写这篇文章时在Polkadot浏览器中的提案截图,其中编号为2的提案便是对Runtime进行升级的提案。

跨链桥 Hop Protocol 已开放治理代币 HOP 申领:金色财经消息,跨链桥 Hop Protocol 在 Twitter 上宣布已开放治理代币 HOP 申领,代币合约地址为 0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc,初始流通量为 5480 万枚 HOP。用户在领取空投前需要选择一位委托进行治理的代表。[2022/6/10 4:15:04]

该议案进入公投并投票通过以后,区块链节点便使用当前的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团队

研究方向:区块链账本互操作技术

标签:RUNIMETIMUNTDino Runner Fan TokenTIMESERIES价格TIME币Origin Fountainhead Chain

比特币行情热门资讯
比特币:近20万个数字人民币红包正等着你!预约教程在此

来源:新浪财经原标题:《#成都发放4000万元数字人民币红包#上热搜!今起预约》#成都发放4000万元数字人民币红包#登上微博热搜榜.

1900/1/1 0:00:00
ZKS:zkSync:与ZKSwap没有任何关系,用户需注意资产安全

3月2日,zkSync官方发推称,官方与ZKS没有任何关系。实际上,ZKS不是一个ZKrollup,尽管用了我们的代码库.

1900/1/1 0:00:00
OST:做空先锋“金盆洗手”,散户血洗华尔街的剧情能否在比特币重演?

文?|比得潘?编辑|Tong出品|PANews散户抱团上演逼空大战,先有机构眼中的“垃圾股”上涨20倍,后带meme属性的狗狗币24小时内被拉升1000%.

1900/1/1 0:00:00
PAY:离婚后发现婚内隐藏比特币该如何追索?

社会的进步,导致离婚对于现代人来说,似乎已经不再是难以启齿的事情。离婚这件事儿,主要涉及到财产的分割与孩子的抚养权争夺问题.

1900/1/1 0:00:00
MET:图解以太坊Layer 2生态:两种Rollup范式六种方案的挑战、竞争与合作

作者:火星投研梅宁航以太坊Rollup生态迎来了第四个强有力的竞争者StarkNet,这也意味着以太坊Rollup扩容方案中最强有力的生态将分为两大帮派:「ZK帮」与「乐观帮」.

1900/1/1 0:00:00
NFT:细数那些“开挂”的加密艺术领袖:左手艺术右手NFT

作者:Nancy来源:PANews加密艺术已初见峥嵘。尽管与笔尖纸张摩挲碰撞的传统艺术相比,突破时间和空间限制的加密艺术的规模无异是小巫见大巫,但其成长速度却不容小觑.

1900/1/1 0:00:00