金色财经讯,3月12日消息,以太坊核心开发者Mikhail Kalinin在以太坊2.0技术规范中发表了关于将以太坊1.0合并至2.0的讨论稿(WIP),他表示和DannyRyan在最近的一次以太坊2.0会议中讨论了该话题,双方正在制定技术规范,以实现“最小化合并”的方案。
“最小化合并”方案很早已经提出,该方案指出的Eth1.0和Eth2.0的合并发生在Eth1.X的过渡时期。
该方案的基础思路是构建“可执行信标链”,也就是将信标链和Eth1.0做出一个耦合状态,也是将Eth1.0数据作为信标链的“数据分片”之一提供可用数据,其中便涉及到对Eth1.0客户端的修改设计。
以下为该方案的简述,删除了部分晦涩难懂的代码和技术词语:
以太坊以rollup为中心的路线图宣布将数据分片作为eth2中主要执行的扩容思路,从而允许在单个执行分片上实现可伸缩性并简化总体设计。这是一个eth2执行模型,可替代可执行分片,并支持信标链中包含的单个执行线程。
Eth1分片设计假设通过信标链与数据分片进行通信。如果将推出具有多个执行分片的第2阶段,则此方法很有意义。由于主要关注以rollup为中心的路线图,因此将Eth1放在专用分片上(即独立于信标链并经常“交联”信标链)给共识层增加了不必要的复杂性,并增加了在分片上发布数据和访问分片之间的延迟。
OKB突破6.6美元关口 日内涨幅为12.03%:OKEx数据显示,OKB短线上涨,突破6.6美元关口,现报6.601美元,日内涨幅达到12.03%,行情波动较大,请做好风险控制。[2020/11/23 21:49:21]
因此该方案建议通过将eth1数据(事务,状态根等)嵌入信标块并让信标提议者有义务生成可执行的eth1数据来摆脱这种复杂性。这体现了作为共识核心的eth1执行力和有效性。
因此做出了以下的提案:
Eth1引擎由系统中的验证器维护,当验证者打算提出一个信标块时,它要求eth1-engine创建eth1数据。然后,将Eth1数据嵌入正在生成的信标块的主体中。如果eth1数据无效,它也会使携带该数据的信标块无效。
Eth1引擎的修改
根据之前的内容,以Eth1 Shard为中心,设计eth1-engine和eth2-client松散耦合并通过RPC协议进行通信(检查eth1 + eth2客户端关系)。Eth1引擎不断维护需要自己的网络堆栈的事务池和状态下载器。它还应保留eth1块的存储。
当前的提议删除了eht1块的概念,而eth1-engine有两种可能的方式来处理此更改:
从信标块携带的eth1数据中综合创建eth1块
修改引擎,使交易处理不需要eth1块,而是使用eth1数据
前一种选择看起来比后一种选择更短期。它允许将eth1客户端更快地转换为eth1-engine,并且已经通过eth1 shard PoC进行了证明。
调整后,需要使用可执行数据术语来表示包括eth1状态根,交易列表(包括收据根和bloom过滤器),coinbase,时间戳,块散列以及eth1状态转换功能所需的所有其他数据位的数据。
此外,eth1引擎责任的清单与我们以前对Eth1 Shard的责任相似。主要观察eth1引擎的下列行为:
交易执行。
事务池维护。
可执行数据创建。
状态管理。
JSON-RPC支持。
信标块处理
将ExecutableData结构替换Eth1Data进入信标块主体。此外,信标链和eth1的同步处理可实现即时存款。因此,可以从信标块体去除沉积物。
在EVM中访问信标块状态
我们更改BLOCKHASH了用于返回eth1块哈希的操作码的语义。而是返回信标块根。这允许检查从256信箱之前的时隙到上一个信箱包括的信标状态或块中包含的那些数据的证明。异步状态读取有一个主要缺点。客户端必须等待一个块,才能创建带有链接到该块的证明或它产生的状态根的交易。简而言之,异步状态访问至少要延迟一个时隙。
直接状态访问
假设eth1引擎可以访问表示整个信标状态的merkle树。然后,EVM可能带有操作码,可READBEACONSTATEDATA(gindex)提供对任何信标状态的直接访问。该操作码具有几个不错的属性。首先,这种读取的复杂性取决于gindex价值,并且易于计算,因此可以轻松推断出天然气价格。其次,返回数据的大小为32字节,完全适合EVM的32字节字。
使用此操作码,可以创建更高级别的信标状态访问器库,从而为智能合约提供便捷的API。
该模型消除了状态访问延迟。因此,通过对信标链操作和eth1执行适当的排序(后者遵循前者),N-1可以在插槽中访问到插槽分片数据的交叉链接N,从而允许汇总以最快的方式证明数据的包含。而且,这种方法降低了信标状态读取的数据和计算复杂性。
直接访问的成本增加了eth1引擎的复杂性。读取信标状态的能力可以通过不同的方式实现:
传递状态以及可执行数据。这种方法的主要问题是处理大尺寸的状态副本。如果将直接访问限制为状态数据的一个子集,而该状态数据的子集需要将一小部分状态传递给执行,那么它可能会起作用。
双工通信通道。拥有双工通道,eth1-engine将能够同步向信标节点询问EVM请求的状态。根据通道的设置方式,延迟可能会成为执行具有信标状态读取的事务的瓶颈。
嵌入式eth1引擎。如果将eth1-engine嵌入信标节点(例如,作为共享库),则它可以通过节点提供的主机功能从相同的存储空间读取状态。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。