Neutron是Qtum量子链近期的研发重点之一。它是一个集成虚拟机的整体办理方案,最初是为了集成x86虚拟机的“硬毗连”方案,我们重构了这个方案,使Qtum(或此外)可以运行多种虚拟机。Neutron今朝还在麋集的开拓之中,筹备在本年晚些时候上线。本文将对Neutron举办具体的说明息争释。
Rent
Rust将在Qtum智能合约生态系统中提供“第一级别”的支持。以前,x86 VM思量过几种差异的语言,譬喻C、Go和Python,这仍然是Qtum Neutron的成长偏向。可是,我们会首先将重点放在把Rust作为主要语言上。
· Neutron智能合约将可以或许利用任意长度的键和值。这极大地简化了智能合约逻辑设计,并淘汰了在EVM智能合约设计中已经呈现的错误和安详问题。由于您可以节制存储机关而不是编译器,因此它也使进级变得越发容易;
So why don’t you just meet me in the middle?
2. 什么是Rust?
Neutron在虚拟机和区块链的其他部门之间提供了一个情况无关接口。这是通过统一的Neutron API(应用措施编程接口)完成的,该API使区块链软件的各个组件可以通过一种通用语言互相“对话”,而无需进修任何新能力。利用Neutron,其他软件组件无需针对非凡环境、异常、可能此外奇怪代码举办编程(措施员将其称为“简略代码”、“意大利面条代码”可能其他NSFW术语)。相反,Neutron提供了一个不变、安详、有前瞻性的平台,用于集成各类虚拟机,而无需打仗任何VM代码。
Neutron具有专注于安详性的内置成果,可以办理EVM中的一些令人惊骇的安详性问题。这将使编写不安详的智能合约越发坚苦,并为开拓人员提供更多东西来确保其合约安详。
7. Neutron的向下打点
· 可以逐位还原大量状态。这制止了对大型合约状态规复大概超出区块限制的问题,可能难以说服Staker收录大额生意业务;
为了辅佐打点智能合约之外的进级,将对以太坊和Qtum中传统利用的Gas机制举办修改,使其包括一个新观念,以辅佐合约应对其无法节制的生态系统变革,譬喻硬分叉和图书馆合约进级。我们将稍后将宣布更多具体信息。
不可是Qtum,不可是区块链
更好的开拓者体验
上图显示了如何只让活泼的字节码和数据成为区块链的一部门。具有某些打点成果的通证合约可以利用此成果。常常被利用的通证函数将保持勾当状态,而很少利用的打点成果大概会变为非勾当状态,直到打点员需要对通证执行某种操纵。假如需要,将从存储完整状态的“归档”节点检索不活泼的代码和数据,并付出必然用度以将不活泼的状态规复回可用的活泼状态。从合约的角度来看,这种设计的长处是它是一个完整的“黑匣子”:利用小得多的存储空间,且不给智能合约开拓人员增加任何贫苦。
Qtum全节点将需要更少的硬盘空间;
对付Qtum架构,我们可以看到Neutron在仓库中间饰演着焦点脚色:
Neutron的构建与区块链无关,因此可以集成到各类区块链甚至非区块链去中心化技能中,只要它需要运行和验证某种不受信任的代码。智能合约将选择一个“成果集”。有些人大概只是想要“根基成果”,每个集成Neutron的区块链都应该可以或许支持。其他人大概需要更巨大的成果集,譬喻UTXO和隐私成果,它们大概仅合用于Qtum或与Qtum更相似的区块链。这使Neutron不只可以促进Qtum区块链自己,也可以促进更辽阔的平台经济。
纽约百老汇的常客可以将音乐剧“出租”视为1994年版的“汉密尔顿”,主题歌合唱为:
1. Neutron简介
5. 更多Neutron细节
Neutron将包罗一个UTXO(未用生意业务输出)状态系统(“全局” NeutronDB存储除外)。这将使通证、NFT(不行替代通证)和其他潜在的“一次性”状态在区块链上暗示为UTXO。这应该为雷同QRC20的令牌启用很多新应用措施,以便可以从Lightning Networks和其他Layer2的扩容东西更轻松地利用它们。这也答允完整节点跟踪更少的状态,而且可以彻底改变通证合约的开拓方法。
Neutron还将把Qtum的UTXO模子果真给智能合约,从而使更简朴的托管气势气魄的智能合约可以“通知”生意业务已经举办。这将答允托管合约标志已满意要求的完成查抄点。这样可以自动对正在发送的生意业务做出回响,譬喻排除托管抵押。这些成果将对所有实现UTXO或其他Qtum成果的区块链果真。(示例:DEX掉期合约要求在释放1000 TKN之前将100 QTUM发送到非合约地点。在EVM实现中,这将涉及先发送到合约,然后从合约“拉出”非合约地点至少要举办2或3笔生意业务。在Neutron中,这样的工作可以在单笔生意业务中完成,而无需智能合约就可以直接持有资金)
“中间件”在人际干系和区块链软件仓库中都占有重要职位。“中间件”在将高级成果与较初级协议(事务,块和网络层)毗连方面起着至关重要的浸染。假如没有精采的中间件层来支持智能合约,措施员就需要处理惩罚明明更多的“认知承担”。令人满足的中间件将措施员需要担忧的问题与它的实际事情方法分分开来,因此,他们能更轻松地事情。
我们为开拓人员思量到了后端和前端的问题!具有x86 VM智能合约的Neutron将把Rust用于智能合约代码和更多传统的软件工程典型。这意味着您可以更轻松地插手生态系统,而无需进修很是非凡的技能和危险的不成熟编程语言(是的,我们在说Solidity)。Rust着眼于安详性并制止措施员出错误,这使得开拓者很难犯初级错误。Rust的典型迫使措施员处理惩罚极度环境,诸如“谁拥有此内存”之类的观念必需明晰并预先处理惩罚。它被称为一种难以编写的语言,,可是在满意编译器要求之后,它凡是是正确的且没有错误。
6. Neutron的向上打点
API
假如您在2018年的任何时候播放音乐或收听广播,您大概会听到由格伦·马里斯(Maren Morris)演唱格莱美奖提名歌曲《中间》(The Middle):
接下来,我们将更多地相识Neutron在“打点”与上面各层的接口以及“打点”到较低协议级别中的浸染。
Neutron API(应用措施编程接口)意味着开拓者可以轻松添加新的VM,以共享沟通的基本架构,譬喻,未来大概会添加WASM。这样,就可觉得WASM和x86编译沟通的合约源代码(在大大都环境下),而且在陈设之前,可以利用字节码巨细的怀抱,执行本钱等确定实际陈设的平台。它还将具有轻松添加可验证且非图灵完备的专用虚拟机的本领,这些虚拟机对付可在个中构建的智能合约范例(大概针对DeFi或扩展应用措施举办了优化)越发安详。
· 纵然智能合约的某些(未利用)状态已从区块链中删除,它也有大概继承运行;
在当前的EVM实施中,智能合约仅限于利用旧版Qtum地点(以“ Q”开头)。借助Neutron,智能合约可以与所有Qtum地点范例(譬喻SegWit,MultiSig等)(地点以“ M”,“ qc1”等开头)举办交互。添加此成果意味着智能合约可以与MultiSig地点举办当地交互,包罗将MultiSig地点识别为智能合约挪用的“发送方”,并将币直接发送至这些地点。
凡是,Neutron中间件的浸染是适配上下两层,以便这些层不必举办任何变动,甚至大概不知道“仓库”中的任何变动。Neutron中间件层之上和之下的层中的细节应该解耦甚至埋没,以便Neutron可以成为整个进程的中立协调者。
In the middle…
https://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/Oh baby, why don’t you just meet me in the middle?
NeutronDB
Headlines, bread lines
“Eviction or pay”
集成x86 VM的Neutron平台的主要成果是将Rust用于智能合约编程。Rust是2006年由Mozilla开拓的一种雷同C ++的编程语言,以内存安详(无危险的指针操纵或自动垃圾接纳)而著称[参考1]。它还包罗可大大提高开拓人员出产效率的现代化东西,譬喻集成的测试平台和措施包揽理。
And now this deadline
https://www.rust-lang.org/
在深入相识Neutron的更多具体信息之前,我们先从Rust编程语言、中间件在体系布局中的浸染以及基于租用的智能合约存储开始。
4. 租赁存储
可进级的智能合约
将租金和新的NeutronDB数据库团结起来有以下长处:
我们选择Rust是因为它对措施员编写和调试安详代码十分高效。这是用Rust写的经典的“ Hello World!“。
基于租金的存储将减缓可骇的区块链存储膨胀。当前,借助Qtum EVM,“状态”智能合约存储已高出通例区块链生意业务的局限。在上,智能合约状态存储是以太坊(完整的未修剪得存档汗青记录)膨胀到高出4TB的主要原因,使完整节点远远超出了普通人台式机的存储本领。
Rust将成为我们提供语言支持的主要“易于利用”方针,而且所有文档都将以Rust为例编写。我们将提供用于编写智能合约的原生Rust API(crates),并规划在Qtum智能合约生态系统中支持Rust的大部门成果,包罗带有“cargo test”的cargo,用于轻松的自动化测试,以及“cargo run”,用于陈设智能合约。我们打算在上线后支持其他语言和东西,可是在初始阶段,我们将重点放在Rust上。
Neutron提供了一个新数据库NeutronDB用于智能合约存储。NeutronDB基于Qtum较旧的DeltaDB设计,该设计是为联机/脱机应用措施设计的,而且可以快速、可扩展地存储为一系列增量(状态差别)的数据。NeutronDB将利用Merkle Patricia树实验将EVM存储“状态”替换为Qtum基于LevelDB的EVM存储“状态”,该实验将所有状态存储在一棵树中。相反,NeutronDB利用多个树来成立最终的世界状态。这方面使运行智能合约的SPV(简朴付款验证)轻型钱包越发高效,而且意味着完整节点所需的资源更少。
断绝见证与多签地点
· 尽量区块链的全节点巨细仍然不是100%有界,但这将大大淘汰节点每年增加的存储量;
安详第一
Neutron还将操作简朴直接的办理方案来办理重入问题,以便只有明晰成立答允重入的合约才可以执行重入。EVM中当前的技能并没有限制可重入性(条约可以在执行进程中挪用本身)。DAO和很多其他不幸的EVM智能合约可以证明[2],这会导致意外和“有趣”的功效。修复措施将包括一些成果,它们要么简朴地不答允重入挪用,要么以其他方法检测到合约当前处于重入环境,并遏制执行。
“Rent”和“ Hamilton”在其时都是百老汇音乐剧的打破口,而Rent是Neutron的打破性区块链成果。
1. Rust编程语言:
查察更多Neutron Star代码库和正在开拓的Neutron API,Neutron智能合约开拓者可以会见:https://github.com/qtumproject/neutron-star
修复重入问题
Neutron将提供一种创新的要领,使智能合约为存储付出租金。该设计已经成型,并扩展了旧的Qtum-x86“任意长度的键和值”要领(精确存储您的需求)。与所有其他租用系统对比,我们得租用系统设计简朴(因此易于实施),而且将着重于鼓励法子,以实此刻区块链上仅保存共鸣所需的数据。只有活泼的合约数据才会在线,而且实际利用智能条约的用户会自动付出租金。
3. 中间件
Neutron将具有轻松打点智能合约进级的本领,而无需利用巨大的“署理模式”,这些模式是很多安详问题的来源(譬喻,在彼此挪用的层中编写智能合约,这很危险)。可以轻松更新软件以添加新成果或修复错误的观念!智能合约可以全部或部门进级其字节码,并具有分手管理的余地,以节制如何完成进级。
I’m losing my mind just a little.
参考内容:
2. theDAO问题阐明:
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。