开发者友好度最高公链是如何炼成的——NEO再获两项大奖

NEONEO智能经济2019-01-08 19:54:46  阅读 -评论 0

2019年的第一周,NEO收获喜讯,斩获两项大奖,分别是赛迪(青岛)区块链研究院评选的“2018年度公有链基础技术十强”和鉴识·2019区块链价值榜评选的“最具价值去中心化应用平台”。

开发者友好度最高公链是如何炼成的——NEO再获两项大奖

◆ ◆ ◆  ◆ ◆

这些奖项是对NEO的认可,不论是底层技术还是生态价值层面,都将NEO指向了开发者友好度最高公链。NEO的开发者友好度体现在生态、社区和智能合约体系等多个维度,作为智能合约体系中的重要一部分,NeoVM的意义不言而喻,以下为《NeoVM的2018进化之路》,帮助开发者更深层次的理解NEO。

《NeoVM 的2018进化之路》

在公有链的竞争上,首要维度是是否能为开发者提供友好型足够的基础设施。随着智能合约成为区块链的必要元素,能否为智能合约提供良好的运行环境越发成为叩开区块链世界的大门。虚拟机(VM),就是那把看似简单,却必不可少的钥匙。

众所周知,推动NEO前行的核心力量是社区,和源源不断涌入的开发者,这些开发者最为重视的基础设施之一就是易用、友好、稳定的VM。NEO也是第二个推出自有VM的公有链项目,随着时间的推移与无数个日夜的打磨,NEO VM也越发趋于完美。

2018年初,首届NEO DevCon上,NEO创始人张铮文亲自为到场的开发者演示NeoVM。随后,NeoVM迎来里程碑式更新!2018年6月,NEO VM从2.2.1升级到2.3.0。NeoVM从此开始实现了栈隔离!2018年11月,2.3.3版本发布,进一步拓展NeoVM的使用范围可以将其部署在NEO网络以外的地方。

以非开发者角度去理解栈隔离有一定的难度,但这是一次重大的升级,就好比是电脑从dos时代升级到windows时代一样。在 dos 时代,所有的程序共享所有的内存。如果有一个程序出了问题,就有可能影响破坏其它的程序,从而电脑就不再响应了。而到了 Windows时代,所有的程序都运行在保护模式上,即使有一个调皮的程序员写的程序不能稳定的运行,也不会影响到其它程序。NeoVM的这次升级,在技术上描述时就是解决了同样问题。不同的智能合约在相互调用时,从共享同一个数据堆栈改为各自使用隔离的堆栈,从而提高了智能合约的安全可靠性。

如果你是一个对此有兴趣的开发者,以下的NeoVM发展历程将让你大呼过瘾:

下图是 NeoVM 2.2.1。运行中的所有相互调用的智能合约共享了同一个EvaluationStack(执行堆栈)和AltStack (临时堆栈),而在动态调用时,被调用的智能合约可能会影响到调用者堆栈的运行。。

开发者友好度最高公链是如何炼成的——NEO再获两项大奖

如果智能合约在互相调用的时候,出现意外差错,就会导致智能合约不能正常运行以及安全问题。如果被调用的智能合约没有良好的管理自身的数据堆栈,将有可能破坏调用方智能合约的正常运行。

为了解决这个问题,NeoVM 从2.3.0开始,实现了智能合约之间的堆栈隔离。实现如下图。

开发者友好度最高公链是如何炼成的——NEO再获两项大奖

图片显示v2.2中的每一个所有智能合约,拥有专属都共享一个的EvaluationStack(计算堆栈)和AltStack(临时堆栈),但v2.3给每个智能合约都配置了一个专属的计算堆栈和临时堆栈。同时,v2.2的运行结果均储存在计算堆栈。。此外,为了保存智能合约的最终执行结果,v2.3新增了一个独立的ResultStack(结果堆栈)来存储虚拟机的最终运行结果,从而也就支持了智能合约可以返回多个值。

在实现了完全独立的堆栈管理以后,每个合约只能访问自己的堆栈,因此也就避免了调用方堆栈受到影响,也大大提高了智能合约安全可靠性。对智能合约的运行的可靠性就大大提高了。

新运行指令

同时,针对栈隔离以后的智能合约间的调用场景,增加了丰富的指令来满足不同的场景下的需求。CALL_I, CALL_E, CALL_ED, CALL_ET, CALL_EDT。每个指令的具体内容就不在这里秀了,有兴趣的童鞋可以先看看源代码,另外,详细的说明文档可能会在2019 NEO DevCon公开,敬请期待。

汇总

2018年8月,NEO VM从2.3.0升级到2.3.1。这次升级,主要是修复了一些bug,同时为所有的虚拟机指令增加了文档,方便对虚拟机指令感兴趣的童鞋一起研究。

2018年9月,NEO VM从2.3.1升级到2.3.1.1。这是一个小版本号的升级,将Struct数据结构的克隆方法从递归复制改为了循环复制,从而修复了可能引起的无限递归的问题。

2018年11月,NEO VM从2.3.1.1升级到2.3.3。修复了Encoding的一个小问题。同时为交互服务提供了一个哈希字典。然后,又将交互服务从一个类改成了接口IInteropService,从而实现了NeoVM更为彻底的解耦。可以更方便的将NeoVM虚拟机部署到Neo网络以外的地方。

2018年12月,NEO VM的维护仍然在紧锣密鼓的进行中,从各种不同的角度对NeoVM进行精雕细刻以提高NeoVM的安全性和可靠性。

寒冬之中,保持初心,作为能够为开发者提供的更好用的基础设施,NeoVM进化的脚步从来就没有停下来。2019已经来临,相信在新的一年里,NeoVM将与NEO一起去往更高更远的地方。

◆ ◆ ◆  ◆ ◆

【加入NEO 社区】

NEO官网:https://neo.org/

Github:https://github.com/neo-project 

Reddit:https://www.reddit.com/r/NEO/ 

Discord:https://discord.io/neo

Twitter: https://twitter.com/NEO_Blockchain 

微博:@NEO智能经济

声明:链世界登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。此文如侵犯到您的合法权益,请联系我们kefu@lianshijie.com

参与讨论 (0 人参与讨论)

相关推荐

AE Studio:Aeternity生态未来的智能合约开发工具

AE Studio原名Fire Editor,是一个全新供aeternity生态系统开发者写入、编译、部署智能合约,以及调用本地的状态函数的平台。AE Studio可以实时开发智能合约和区块链应用。

有用工作量证明(PoUW)开发人员奖励计划

有用工作量证明(PoUW)开发人员奖励计划

为创建PoUW区块链做贡献并可获得PAI币奖励欢迎加入Project PAI,并成为PoUW贡献团队的一员我们很高兴有你的加入,也很感谢你为创建真正的"有用工作量证明(PoUW)"区块链协议所做的努力。详情规则请见Project PAI 项目进度- 2020年7月27日,下面为本次挑战题目:挑战 #1: Docker机器设置难度等级:简单概括:目前,PoUW可以在Kubernetes集群中运行,也

腾讯为中国最早的葡萄酒生厂商张裕开发区块链平台

腾讯为中国最早的葡萄酒生厂商张裕开发区块链平台

翻译:Maya 据当地时间7月31日消息,中国科技巨头腾讯透露计划与中国最大、最早的葡萄酒生产商张裕合作,打造基于区块链的葡萄酒溯源平台。据悉,这是中国全国范围内葡萄酒行业的首创。

比特股(BTS)核心开发者未经社区同意私自更改投票规则,引发社区争议

比特股(BTS)核心开发者未经社区同意私自更改投票规则,引发社区争议

律动BlockBeats 消息,据比特股 论坛显示,7 月 30 日核心开发者 Abit 发布了 4.0 版本升级,本次升级对于用户的投票权进行了调整。这引发了不少成员的不满,认为比特股过于中心化,同时也有用户认为新规则过于强硬。

比特币有什么缺点?

1.交易平台的脆弱性。比特币网络很健壮,但比特币交易平台很脆弱。交易平台通常是一个网站,而网站会遭到黑客攻击,或者遭到主管部门的关闭。2.交易确认时间长。比特币钱包初次安装时,会消耗大量时间下载历史交易数据块。而比特币交易时,为了确认数据准确性,会消耗一些时间,与p2p网络进行交互,得到全网确认后,交易才算完成。3.价格波动极大。由于大量炒家介入,导致比特币兑换现金的价格如过山车一般起伏。使得比

业务中使用区块链的四种方式

业务中使用区块链的四种方式

暴走时评:区块链是一种支持像比特币这样的数字货币的公共分类帐本,并且正改变着我们的业务方式。一旦那些对匿名交易,甚至是秘密交易感兴趣的人接纳了这样一种鲜为人知的工具,加密货币就会日趋成为主流。 区块链是一种支持像比特币这样的数字货币的公共分类帐本,并且正改变着我们的业务方式。一旦那些对匿名交易,甚至是秘密交易感兴趣的人接纳了这样一种鲜为人知的工具,加密货币就会日趋成为主流。越来越多的个人和企

区块链:法定数字货币技术路线的必然选择

区块链:法定数字货币技术路线的必然选择

在人类发展史上,货币的进化从未停止。从物物交换,到金属铸币,再到纸质货币,以及当前正在发展的数字货币正在向着越来越便捷的方向进化。 比特币的出世起初并未带来轰动,但是最近几年其价格惊人的爬高创造出了一个个造富神话,引起各国政府及监管机构的关注。虽然金融专家普遍认为它只是一种资产,而非货币,但是,其背后的区块链(Blockchain)技术引起了包括各大金融机构、政府、企业及学术界的浓厚兴趣,未

麦妖榜
更新日期 2019-09-03
排名用户贡献值
1牛市来了30910
2BitettFan24187
3等待的宿命23810
4区块大康20369
5六叶树20310
6linjm122719429
7天下无双16192
8lizhen00215280
9让时间淡忘14586
10yelanyi050511349
返回顶部 ↑