BTCV繁华资讯 > 货币新闻 > Eth1.x:无状态以太网“再生”的新理念_btcv-繁华资

Eth1.x:无状态以太网“再生”的新理念_btcv-繁华资

作者:_btcv-繁华资讯来源:_btcv-繁华资讯 货币新闻 2020年08月29日

本周,我们将更新技术树,并为以太网1的研发添加一些新的重要里程碑。这些里程碑不是无状态以太网的完全实现,而是我们在中期可以合理实现的目标。最重要的更新是阿列克谢的重生提议。尽管这还远未标准化

本周,我们将更新技术树,并为以太网1.x研发添加一些新的主要里程碑。这些里程碑不是无状态以太网的完全实现,而是我们在中期可以合理实现的目标。

最重要的更新是阿列克谢的重生提议。虽然这远远不是一个标准化的更新,但从研发的角度来看,搜狗网在其他方面与reGenesis的互补技术是reGenesis为“完全无状态”的终极目标提供了一种更保守更切实可行的路径。,它可以帮助在基于bittorrent DHT的网络中传播状态快照和历史链数据。

与此同时,一些靠近我们的目标已经在为EIP做准备,比如静态状态网络。在这篇文章中,我将解释已经取得的进展,并附上链接,以便读者能够对感兴趣的领域有深刻的理解。

Eth1.x:无状态以太坊新思路“reGenesis”

代码分块 (code merkleization) 和状态二进制树

目前,以太网使用十六叉帕特里夏默克尔树来编码状态,但如果是二进制树,尤其是在证人规模方面。以太网状态的完全重新编码需要一个新的范例和一个清晰的过渡策略。最后,有必要决定是阻塞智能契约代码,将进程合并到二叉树转换中,还是独立更新它。

转变为二进制式会带来显著的效率提升

与当前的十六进制树结构相比,二叉树的概念更简单。从树的根到其子节点有十六条可能的路径,但是在二叉树中只有两条路径。此外,我们还有机会使状态适应现实世界中数据库编码的性能挑战(在上一篇关于状态增长的文章中提到)。

正式的二叉树规范和阻塞规则可以在电子研究中讨论。

二进制树范式

重要的不仅仅是二叉树范式的目的地,而且旅程本身也非常有价值!在理想的转换过程中,网络的事务处理不会受到干扰,也就是说,客户端在处理每15秒出现的新块时,需要构建一个新的二叉树。

目前,最有前途的过渡策略称为随着状态树的重新规范,我们有机会解决以太坊运行五年以来显著的低效问题。,它部分基于geth的新快照同步协议。一般来说,新的状态变化将以二进制范式添加到现有的十六进制树中,这意味着在转换过程中将会出现二进制和十六进制的混合。未受影响的状态被转换为后台处理。一旦转换完成,这两层将合并成一个二叉树。

值得注意的是,客户端多样性在二进制转换过程中也起着重要作用。每个客户端都需要实现自己的转换版本,或者依赖其他客户端进行转换,然后在另一端等待一个新的树。

这要求我们“三思而后行”,所有客户都需要一起测试和协调转换。出于安全原因,网络可能需要在过渡过程中短时间停止服务(例如,挖出一些空块),但就任何具体计划达成共识仍为时过早。

过渡到二进制树

以太网状态树的很大一部分由智能契约代码组成,约占50GB状态的1GB。用于智能契约交互的所有见证都必须提供其交互的代码来计算codeHash,这可能会产生大量额外的数据。

“覆盖”法使我们能够在见证中使用引用哈希而不是大多数潜在的智能合同代码,从而节省数千字节的见证数据。

有很多方法可以阻止代码。就复杂性而言,简单的方法是通用块(例如,每个块的大小是64字节),而更复杂的方法是基于实度函数标识或跳转目标指令的静态分析。最终,最佳代码阻塞策略取决于它是否适用于从主网络收集的真实数据。

代码分块

了解雷根斯提案的最好的地方是@mandrigin给出的解释和@realLedgerwatch提交的完整提案。一般来说,摄政基本上可以说是“区块链的一次清理”。代码分块 (Code Merkleization) 旨在将合约代码切分为较小的块,然后将codeHash替换为另一个默克尔树根。的整个“活动”状态将在一定时期内被停用,然后新的交易将几乎从头开始建立一个新的活动状态(因此它被称为“再生”)。

如果事务需要以前的状态,将提供一个见证,这与无状态以太网所要求的证明非常相似:默克尔证明状态变化与非活动状态一致。如果事务需要状态的“非活动”部分,它将自动将其转换为“活动”状态(无论事务是否成功),并且该部分将被保存直到下一次重新生成。

这样做的一个好处是,使用州时会产生一些经济限制,但实际上不会删除任何州。其次,如果交易发送者盲目地试图重复交易,就不能产生证人。

就重生的意义而言,它使以太博物馆朝着无国籍的最终目标迈进了一大步,并避免了实现无国籍的最大挑战,即reGenesis。同时,它还使某个版本的事务见证能够在网络中传播,这样轻量级客户端和dapp开发人员就有更多的机会熟悉无状态范例和见证生成。

重生后的“真正”无国籍状态只是一个程度问题:无国籍的以太网实际上只是每个块后的重生。

完整的状态将从概念上分为“活跃”和“非活跃”状态。

Eth1.x:无状态以太坊新思路“reGenesis”

从一开始,网络协议的优化只是技术树中的一个“次要任务”。然而,随着重生进入无状态以太网,探索共享以太网链数据(包括状态)的替代网络原语成为主要任务。以太网目前的网络协议是一个整体,但实际上有很多类型的数据可以通过不同的“子网”共享,这些“子网”可以满足不同的需求。

以前在无状态会议上讨论这个话题时,我们称之为“三个网络”,基于分布式哈希表的网络可以更有效地为不常改变的数据类型服务。随着reGenesis的引入,“非活动”状态可以包含在这种不常改变的数据中,这在理论上可以应用于EVM执行时如何计算见证的gas,而不是目前由整个节点逐个广播。

自上次重新生成以来,在网络中传播不变状态的网络是静态网络,它可以基于devp2p库(以太网协议)中的新发现5.1规范进行扩展。

以前,类似于旋转木马同步和更成熟的SNAP协议,它可以用于同步活动状态,这是迈向完全分布式动态网络的重要一步,使客户端能够快速同步完整的状态。

标签: btcv