关心波卡生态的朋友们,必然时不时看到runtime这个单词,无论你如何翻译,例如翻译成“运行时间”,放在中文语境中总是感觉很别扭,似乎是在表达“程序处于运行状态”这样的含义。 Gavin在波卡中国行北京站上的演讲,不下10次提到了“runtime”。 那么,runtime在波卡中到底意味着什么?事实上runtime对波卡而言相当重要,涉及到波卡最重要的特性“无叉升级”,涉及到波卡生态最重要的Substrate开发工具。本文我们不聊别的,就讲清楚runtime这个名词的含义。 1、runtime到底是什么“time”? runtime虽然看起来像是在表达“奔跑时间”这样的意思,但其实与奔跑八竿子打不着。 我们来看runtime的专业解释。 runtime是由Substrate构建的,相当于Substrate的一个子集,通过用户自己意愿组合和配置好了的模块就是用户自己的runtime,每一个模块包含特定领域的逻辑和存储项目。runtime的主要任务是定义链状态转换逻辑,定义用户可以操作的存储的项目和功能。 也就是说,从Substrate的模块库中“拼起来”的那套程序,就是runtime。 我们知道,一整套的Substrate模块和支持库被称为SUBSTRATEFRAMEPALLETS。而runtime内的所有模块都来自这个模块库。 我们举个例子,如果你想在你的区块链上加入智能合约功能,只需要拖动“Contracts”模块加入到你的runtime中。再例如,如果的区块链需要加入时间戳,只用把timestamp模块拖入你的runtime中。如果你的区块链需要加入虚拟机,就把EVM模块拖入自己的runtime中。 因此,可以这么说,Substrate是一个庞大丰富的用来开发区块链的资源库,runtime是Substrate这个资源库里的部分模块合集,但runtime放到一条单独的链上,就负责了这个链的各项有关状态转换功能的事务,以及随着时间的推移可以无需硬分岔的升级。 而runtime就相当于Substrate的一个子集。如果说Substrate是博卡的工具箱,那么runtime就是这个工具箱的熟练工,如果波卡是一栋建筑,那么runtime就是这栋建筑的建筑师。 那么,体现到Polkadot中,这个runtime到底有什么作用呢?确保无叉升级顺利执行! 2、runtime下的“无叉升级” 关注我的朋友,肯定注意到曾经很推崇过一篇文章《“波卡是什么”,一篇人人都看得懂的Polkadot科普文,跨链可组合、共享安全、无叉升级与治理》。为什么? 这篇文章后三分之二部分是由布鲁诺·什沃克(Bruno?kvorc)写作,布鲁诺拥有计算机科学与英语语言文学双硕士学位,2018年以前是一位十分知名的以太坊生态科普作者与开发者,2019年之后,加入波卡生态做专职开发者与科普作者。 这篇文章虽然字面意思十分简单,但是写作过程高屋建瓴,没读过的朋友,建议仔细阅读。 这篇文章在讲到无叉升级时,是这样描述的。 “ 而Polkadot通过“链上runtime与链上治理”(on-chainruntimeandon-chaingovernance)的方式解决这个难题(无叉升级)。 链上runtime是指:生成新区块的规则的代码被存储在链上。因此,运行区块链的节点,或者说程序,只需读取这些最新的代码,它们就可以升级了。 那么我们如何更新这些代码呢?链上治理(on-chaingovernance)允许任何DOT持有人发起全民公投,且在公投中投票。全民公投是对区块链逻辑或数据的建议性修改(Change)。 通过这样的链上治理,社区可以对链上逻辑的修改提出建议并对其进行投票,一旦该修改投票通过,就会自动更新,无需软件更新,也无需人工干预。 布鲁诺的科普十分基础,深入浅出,做到了“老少皆宜”。下面这篇文章也提到了无叉升级与runtime。 另外一篇文章是《Polkadot下一个EOS?不可能的!DOT质押越久越值钱,无叉升级与链上治理背后的“财富密码”》。 文中中在讲到“无叉升级”时,就提到了runtime,说实话,当时我在做翻译,看到这个词,也是一头雾水。于是,就翻译成了“区块链运行时”,这肯定是不对的,正确的做法就是放个英文单词runtime就可以了。 基于Substrate构建的链,在升级时不必调动所有节点维护人员更新软件,这是怎么办到的呢?方发如下: “ 在基于Substrate构建的区块链中,有一种被称为WebAssemblyblob或WASMblob的设置被存储在链本身的协议中。这个WASMblob包含区块链构建新块所需的所有逻辑,runtime也被包含在这个WASMblob逻辑中。 连接到这个区块链的所有节点能够时刻感知到WASMblob,以及它为节点提供的生成新块的规则。 在节点的本地代码也执行同样的逻辑:所有节点(运行链的程序)都是在Rust中构建的,这些编程指令也把如何构建区块的方法同步给节点,这些指令与WASMblob中的指令完全相同。那这段话的重点是什么呢?继续往下看。 节点内置的装置(switch)会告诉它们:“如果链上的WASM代码比您的本地代码更新,请忽略您的本地代码,而选择WASM代码。如果WASM代码与本地是相同的,那么运行本机代码,因为它更快。” 综上所述,runtime是由Substrate模块“拼接”而成,由于runtime被WASMblob的逻辑中,因此只要WASM代码发生更新,整个波卡生态的所有应用都会跟着升级。 3、runtime的最新进展 北京时间9月23日凌晨,Parity Technologies发布第二版区块链工具包Substrate v2.0.0 – two dot,即媒体所谓的Substrate 2.0。 这里的Parity Technologies,是由Gavin领衔,主要开发Polkadot的区块链公司,其更大的目标部署基于多条区块链的Web 3.0网络。 根据公开信息,Substrate 2.0的更新新增了一些核心功能。此次更新主要针对runtime、client、API以及Runtime Migrations,包括允许设置任何账户做抵押的奖励目的地、更新任务Grafana仪表板、libp2p客户端更新、grandpa-rpc api更新等。 更新过后的Substrate 2.0主要包含链下工作机(off-chain workers)和70多个可组合模块,意义在于为构建优化的、与Polkadot兼容的、可投入生产的区块链奠定了坚实的基础。 此外,在9月25日的PolkaWorld周报中提到,目前runtime已经升级到v24,即v24runtime,并将每个验证人的最大提名人数量提高到256个的Motion20已经被理事会投票通过。https://github.com/paritytech/polkadot/releases/tag/v0.8.24 6号全民公投已经通过了,它修复v24runtime迁移中的一些代理相关存储。https://polkadot.subscan.io/referenda/6 往期精选: 1)公链生态大事件:以太坊ICO、EOS超级节点竞选、即将到来的波卡IPO,格局不同结局必然不同! 2)波卡“圣杯”之Kusama,是Polkadot终极目标“嵌套中继链”第一步,KSM尚有10倍涨幅? 3)Parity亚洲技术总监瑶琪博士分享:Substrate开发、平行链参与方法、Web3.0生态进展 —- 编译者/作者:阿风1989 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
波卡世界建筑师runtime,是Substrate工具箱的熟练工,Polkadot“无叉升级“主心骨
2020-10-23 阿风1989 来源:区块链网络
LOADING...
相关阅读:
- 引力观察2020年10月21日星期一2020-10-23
- 《区块链养鸡场》:科技如何改变中国农村人口生活2020-10-23
- NBA球星投资NBA Topshot,你还在等什么?2020-10-23
- 重新解读财路白皮书助力财路CLC登月2020-10-23
- 穿越周期,透析风险,李笑来重磅七千字演讲:投资是一种生活方2020-10-23