
Vitalik:通过调整 calldata 和增加分片进一步扩容 rollup 的渐进路线图
来源 | notes.ethereum.org 作者 | Vitalik Buterin 在中短期、甚至长期来说,rollup 是以太坊唯一的去信任扩容解决方案。数月以来,L1 上的交易费变得如此高,以至于我们迫切需要做些什么来促进整个生态系统向 rollup 迁移。Rollup 已经为许多以太坊用户极大地降低了交易费: 根据 L2 交易费监测网站 l2fees.info 显示,Optimism 和 Arbitrum 的交易费比以太坊基础层的交易费要低大约 3-8 倍;而 ZK-rollup 拥有更好的数据压缩并且不需要打包签名,费用与基础层相比要低 40-100 倍。 然而,即便有所扩容,这样的费用对于用户来说也还是太昂贵了。关于该问题早就已经写过文章,解决目前形式 rollup 不足的长期解决方案为添加数据分片,这将为 rollup 增加约 1-2 MB/秒的专用数据空间。本文档描述了对该方案的实用操作方法,从而尽快为 rollup 释放充足的数据空间,并逐渐增加额外的空间和提高安全性。第一步:调整交易 calldata 以实现扩容目前现有的 rollup 需要使用交易 ca...

社区新春活动:虎年NFT赏金计划
「天地风霜尽,乾坤气象和; 历添新岁月,春满旧山河。」 转眼我们又来到了辞旧迎新的节点。回望 2021 牛年,我们在虚拟世界 Decentraland 与 Dragon City 联合举办新春活动,并携知名加密艺术家送出实物 NFT,而今虎年将至, ECN 依然将与以太坊社区共度佳节。去年 Vitalik 和以太坊吉祥物 NPC 在 Metaverse 给大家拜年,今年我们将邀请 Vitalik Buterin 于 2 月 4 日 (大年初四) 跟中文社区聊聊天。 此外,今年春节活动的另一个重要环节是——**ECN 正式发起虎年 NFT 赏金计划!**我们希望由社区成员来创作一个纪念虎年春节的 NFT,由其他成员投票选出获胜作品,我们会将其铸造为 NFT 赠与社区。 2021 牛年 NFT (由知名加密艺术家 Ting Song 创作的扎染及蜡染作品,实物随 NFT 赠出)今年的...... ✏️给你,你行你就上。春节活动介绍ECN 邀请了以太坊联合创始人 Vitalik Buterin 来中文社区过年,通过线上访谈和 AMA 的形式与大家互动,主题将聚焦以太坊过去一年的发展以及...

以太七日谈 • 2022/6/28
合并 (The Merge)Gray Glacier 升级即将来临 以太坊网络将在区块高度 15,050,000 进行计划中的推迟难度炸弹升级,时间预计 2022 年 6 月 29 日,周三。由于区块时间和时区是变化的,所以确切日期可能会改变。如果你有运行以太坊节点,记得升级哦! 详情:《Gray Glacier 升级公告》 #7 主网影子分叉测试进行不顺利 于上周五进行的第 141 次以太坊核心开发者会议 (ACD) 上,开发者首先对在上周三进行的第 7 次主网影子分叉测试进行复盘:不顺利。有 20% 的节点在激活合并时掉线,合并后有更多的节点掉线。部分的原因是 Erigon 的节点在影子分叉网络上无法与其他对等点连接。开发者 Alex Sharp@realLedgerwatch 在会上强调问题与影子分叉的工作原理相关,而不在于合并本身。开发者@parithosh_j 补充道,Erigon 节点的简单修复很快就实现了,因此后面的影子分叉不会再出现这个问题。 另一个更重要的问题是 Besu 客户端有一个特殊数据存储格式,他们把它称作“bonsai tries"。Besu 的开发者...

Vitalik:通过调整 calldata 和增加分片进一步扩容 rollup 的渐进路线图
来源 | notes.ethereum.org 作者 | Vitalik Buterin 在中短期、甚至长期来说,rollup 是以太坊唯一的去信任扩容解决方案。数月以来,L1 上的交易费变得如此高,以至于我们迫切需要做些什么来促进整个生态系统向 rollup 迁移。Rollup 已经为许多以太坊用户极大地降低了交易费: 根据 L2 交易费监测网站 l2fees.info 显示,Optimism 和 Arbitrum 的交易费比以太坊基础层的交易费要低大约 3-8 倍;而 ZK-rollup 拥有更好的数据压缩并且不需要打包签名,费用与基础层相比要低 40-100 倍。 然而,即便有所扩容,这样的费用对于用户来说也还是太昂贵了。关于该问题早就已经写过文章,解决目前形式 rollup 不足的长期解决方案为添加数据分片,这将为 rollup 增加约 1-2 MB/秒的专用数据空间。本文档描述了对该方案的实用操作方法,从而尽快为 rollup 释放充足的数据空间,并逐渐增加额外的空间和提高安全性。第一步:调整交易 calldata 以实现扩容目前现有的 rollup 需要使用交易 ca...

社区新春活动:虎年NFT赏金计划
「天地风霜尽,乾坤气象和; 历添新岁月,春满旧山河。」 转眼我们又来到了辞旧迎新的节点。回望 2021 牛年,我们在虚拟世界 Decentraland 与 Dragon City 联合举办新春活动,并携知名加密艺术家送出实物 NFT,而今虎年将至, ECN 依然将与以太坊社区共度佳节。去年 Vitalik 和以太坊吉祥物 NPC 在 Metaverse 给大家拜年,今年我们将邀请 Vitalik Buterin 于 2 月 4 日 (大年初四) 跟中文社区聊聊天。 此外,今年春节活动的另一个重要环节是——**ECN 正式发起虎年 NFT 赏金计划!**我们希望由社区成员来创作一个纪念虎年春节的 NFT,由其他成员投票选出获胜作品,我们会将其铸造为 NFT 赠与社区。 2021 牛年 NFT (由知名加密艺术家 Ting Song 创作的扎染及蜡染作品,实物随 NFT 赠出)今年的...... ✏️给你,你行你就上。春节活动介绍ECN 邀请了以太坊联合创始人 Vitalik Buterin 来中文社区过年,通过线上访谈和 AMA 的形式与大家互动,主题将聚焦以太坊过去一年的发展以及...

以太七日谈 • 2022/6/28
合并 (The Merge)Gray Glacier 升级即将来临 以太坊网络将在区块高度 15,050,000 进行计划中的推迟难度炸弹升级,时间预计 2022 年 6 月 29 日,周三。由于区块时间和时区是变化的,所以确切日期可能会改变。如果你有运行以太坊节点,记得升级哦! 详情:《Gray Glacier 升级公告》 #7 主网影子分叉测试进行不顺利 于上周五进行的第 141 次以太坊核心开发者会议 (ACD) 上,开发者首先对在上周三进行的第 7 次主网影子分叉测试进行复盘:不顺利。有 20% 的节点在激活合并时掉线,合并后有更多的节点掉线。部分的原因是 Erigon 的节点在影子分叉网络上无法与其他对等点连接。开发者 Alex Sharp@realLedgerwatch 在会上强调问题与影子分叉的工作原理相关,而不在于合并本身。开发者@parithosh_j 补充道,Erigon 节点的简单修复很快就实现了,因此后面的影子分叉不会再出现这个问题。 另一个更重要的问题是 Besu 客户端有一个特殊数据存储格式,他们把它称作“bonsai tries"。Besu 的开发者...

Subscribe to EthereumCN

Subscribe to EthereumCN
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
来源 | AllCoreDev Updates
作者 | Tim Beiko
正如在上一篇更新里承诺的,这篇更新会深入介绍合并后的以太坊客户端架构。随着Amphora 互操作性活动取得的进展,合并的规范现在已经接近最终敲定 🎉
在我们深入合并的内容之前,先简单介绍一下难度炸弹的最新情况!
在第 124 次的核心开发者会议里 (视频、推文),我们对难度炸弹的两个时间达成共识:升级在 2021 年 12 月进行,推迟到 2022 年 6 月。为此,我们需要一次网络升级——Arrow Glacier,它将仅包括关于推迟难度炸弹的 EIP-4345。
Arrow Glacier 计划在区块 13,773,000 激活,预计时间会在 2021 年 12 月 8 日。
在核心开发者会议上,我们对冰河时期推迟的多个选项进行了讨论。之所以选择 6 月,是因为我们有信心“合并”能在此前实现,而且我们想避免在此前再组织一次难度炸弹推迟。
当然,合并和难度炸弹是分开的:它需要单独的一次网络升级,且是基于 PoW total difficulty 的临界值来激活的。这意味着我们不需要“等待”难度炸弹爆炸才能把以太坊过渡到权益证明。同样地,如果我们在过渡上遇到问题,我们可以决定再次推迟难度炸弹。
希望 Arrow Glacir 将是 PoW 以太坊🤞🏻到合并之前最后一次网络升级!
合并的架构利用了以太坊用于执行链 (Eth1) 和信标链 (Eth2) 久经实战的客户端。由于它们已经存在了,继续使用它们是合理的。
概括来说,在合并过程中,客户端将从根据 PoW 链转为根据 PoS 链来决定以太坊的最新有效区块。此外,客户端大多数的功能,以及更重要的 EVM、它的状态,和它是如何执行交易的,都保持不变。
合并后,现在的 Eth1 和 Eth2 客户端分别变成以太坊的执行层和共识层 (或叫做引擎)。这意味着 Eth1 或信标链客户端的节点运行者将需要运行堆栈的“另一半”,以拥有一个完整的验证节点。 Danny Ryan 制作了非常好的图表对其进行说明。它们都已经被铸造成 NFT 了,所有的收益都将用于奖励合并工作的工程师和研究员。

上图展示了合并后一个完整的以太坊客户端的样子。让我们以此为起点,深入到每个组件。
现在,信标节点是对空区块 (从终端用户角度来看) 达成共识的。这些区块包括与共识相关的信息,称为操作 (Operations),比如证明 (attestations)、存款合约根和验证者的罚没/退出,但不包括 Eth1 意义上的交易信息 (例如,发送 ETH 或与智能合约交互)。合并将改变这个情况。
在合并发生时,信标节点将监测当前的 PoW 链,并等待它触达预设定的total difficulty (总难度)阈值,被称为 TERMINAL_TOTAL_DIFFICULTY (终结总难度)。一旦出了一个区块的total difficulty >= TERMINAL_TOTAL_DIFFICULTY,该区块将会被视为最后的 PoW 区块。随后的区块都开始由信标链上的验证者构建和证明。
要做到以上内容,信标节点将需要与它们的执行引擎 (以前的 Eth1 客户端) 通信,并请求它生成或验证ExecutionPayloads (执行数据)。这些数据是 Eth1 区块合并后的等同物。它们包含这些信息:父块的哈希值 (parent's hash)、状态根 (state root)、基本费用 ( base fee)、需要执行交易列表。一旦这些信息都被生成或验证了,信标节点将在 p2p 网络与其他节点分享。

为了在共识层和执行层建立通信,会引入一组新的 JSON RPC 端点:Engine API (引擎应用程序接口)。
Engine API 是共识层和执行层间的通信接口。它不在执行层的公共 JSON RPC API,而在一个独立的端口。为了简单,对 API 的调用总是由共识层发起,而 API 只引入三个方法:engine_executePayload、 engine_forkchoiceUpdated 和 engine_getPayload。让我们逐个看看它们是做什么的:
engine_executePayload (引擎执行数据)要求执行层验证 ExecutionPayload 是否符合所有协议规则。
在通过这个调用接收到数据后,执行层将返回 VALID/INVALID (有效/无效) 或,如果它还没同步完链头,则返回 SYNCING (同步中)。因为一个区块的有效性是取决于它的父块有效性的,如果执行层缺乏历史数据来评估数据的有效性,它将从网络上获取这些数据。
engine_forkchoiceUpdated (引擎分叉选择更新)是共识层在网络上告知执行层新的链头和最终敲定的区块的方式。如果共识层需要执行层在最新的链头区块上生成一个新的 ExecutionPayload,它会和这个调用一起传送一个 payloadAttributes 栏位。
payloadAttributes 栏位包含与执行引擎生成一个ExecutionPayload的相关信息,特别是 timestamp (时间戳), random (乱数) and feeRecipient (相当于以前的 coinbase) 的值。在接收到这个调用时,执行层将更新它的链头,根据需要进行同步,以及,如果有需要的话,开始用 payloadAttributes 的数值构建一个 ExecutionPayload。
engine_getPayload (引擎获取数据)请求执行层返回它的最佳 ExecutionPayload,它的构建过程已在之前对 engine_forkChoiceUpdated 的相关调用时启动了。
这就是当验证者必须出块时,它从它的执行引擎获取一个有效区块的方式。其他节点在从 p2p 层接收到该区块后将调用 engine_executePayload来评估其有效性。
......就是这样!有了这三个新的端点,共识层和执行层可以就链的状态和交易数据进行通信。现在,让我们深入了解执行引擎的工作原理。
如上文所述,执行引擎就是合并后的 Eth1 客户端。在这点上,任何与共识相关的内容都从它们的权限中移除了。它们的主要重点变成状态管理、区块构建和验证,这些都稍有修改。大部分的修改都写在了 EIP-3675。
第一,合并将需要对区块格式进行一些修改。有些仅与 PoW 而非 PoS 相关的栏位会被设为 0 (或它们的数据结构的等同物)。这些栏位不是与挖矿 (difficulty, mixHash, nonce) 就是与 ommers (ommers, ommersHash) 有关,它们在 PoS 上都是不存在的。主网上 extraData 的长度也将被限制在 32 个字节上。
第二,由于合并后代币增发仅会在信标链上发生,执行层将不再处理区块和叔块奖励。也就是说。执行引擎将仍然负责处理交易费。事实上,当它创建 ExecutionPayload时,执行引擎会确保所有交易发送者至少可以支付当前的 baseFeePerGas (每单位gas 的基本费用),且任何额外费用都会被发送到 feeReceipient (费用接收者)。请注意,feeReceipient 指的是“传统”的以太坊地址,而不是信标链验证者。
第三,当 PoS 取代了 PoW,执行引擎将不再广播区块。这意味着将弃用在 p2p 网络上的 NewBlockHashes (0x01) 和 NewBlock (0x07) 的处理程序。同样,执行层将仍然负责同步网络状态,广播交易和维持它的交易池。
下图同样由 Danny Ryan 制作,它展示了当合并发生时执行层弃用 PoW 转而依赖信标链的过程。

PoW 区块不再生成,而信标链区块在合并后开始包含 ExecutionPayloads。
我们现在已经介绍了客户端如何处理区块以及合并后进行内部通信的核心组件了。现在,让我们简单谈谈系统的的各种相对“边缘”的组件。
如本文第一张图表所示,合并后,执行和信标链层都在 p2p 网络里。除了执行层上区块广播被弃用外,p2p 网络上的所有东西保持不变:在它们各自独立的 p2p 网络上,信标节点将广播证明、罚没等,而执行层将分享交易、同步状态等。
同样,信标链 和 执行层 上的用户 API 都将保持独立,除了新创建的 Engine API。
有一个组件是跨越两个层的,就是同步。我们正在为合并前和合并后各种可能的边缘情况开发各种同步策略。它们仍在完善和测试中,并可能成为未来的深入研究主题👀
Amphora 工作坊后,工作重心一直放在规范的完善和开发测试网的测试中。在未来几周内,预计规范将确定下来,即我们预期不会再有大修改的地步。
同时, Pithos 测试网构建并运行起来了,有多个客户端组合每天在上面做测试,计划下周有一个社区会议,让基础设施和工具提供商快速了解合并。到时见👋🏻

ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co进行授权。
来源 | AllCoreDev Updates
作者 | Tim Beiko
正如在上一篇更新里承诺的,这篇更新会深入介绍合并后的以太坊客户端架构。随着Amphora 互操作性活动取得的进展,合并的规范现在已经接近最终敲定 🎉
在我们深入合并的内容之前,先简单介绍一下难度炸弹的最新情况!
在第 124 次的核心开发者会议里 (视频、推文),我们对难度炸弹的两个时间达成共识:升级在 2021 年 12 月进行,推迟到 2022 年 6 月。为此,我们需要一次网络升级——Arrow Glacier,它将仅包括关于推迟难度炸弹的 EIP-4345。
Arrow Glacier 计划在区块 13,773,000 激活,预计时间会在 2021 年 12 月 8 日。
在核心开发者会议上,我们对冰河时期推迟的多个选项进行了讨论。之所以选择 6 月,是因为我们有信心“合并”能在此前实现,而且我们想避免在此前再组织一次难度炸弹推迟。
当然,合并和难度炸弹是分开的:它需要单独的一次网络升级,且是基于 PoW total difficulty 的临界值来激活的。这意味着我们不需要“等待”难度炸弹爆炸才能把以太坊过渡到权益证明。同样地,如果我们在过渡上遇到问题,我们可以决定再次推迟难度炸弹。
希望 Arrow Glacir 将是 PoW 以太坊🤞🏻到合并之前最后一次网络升级!
合并的架构利用了以太坊用于执行链 (Eth1) 和信标链 (Eth2) 久经实战的客户端。由于它们已经存在了,继续使用它们是合理的。
概括来说,在合并过程中,客户端将从根据 PoW 链转为根据 PoS 链来决定以太坊的最新有效区块。此外,客户端大多数的功能,以及更重要的 EVM、它的状态,和它是如何执行交易的,都保持不变。
合并后,现在的 Eth1 和 Eth2 客户端分别变成以太坊的执行层和共识层 (或叫做引擎)。这意味着 Eth1 或信标链客户端的节点运行者将需要运行堆栈的“另一半”,以拥有一个完整的验证节点。 Danny Ryan 制作了非常好的图表对其进行说明。它们都已经被铸造成 NFT 了,所有的收益都将用于奖励合并工作的工程师和研究员。

上图展示了合并后一个完整的以太坊客户端的样子。让我们以此为起点,深入到每个组件。
现在,信标节点是对空区块 (从终端用户角度来看) 达成共识的。这些区块包括与共识相关的信息,称为操作 (Operations),比如证明 (attestations)、存款合约根和验证者的罚没/退出,但不包括 Eth1 意义上的交易信息 (例如,发送 ETH 或与智能合约交互)。合并将改变这个情况。
在合并发生时,信标节点将监测当前的 PoW 链,并等待它触达预设定的total difficulty (总难度)阈值,被称为 TERMINAL_TOTAL_DIFFICULTY (终结总难度)。一旦出了一个区块的total difficulty >= TERMINAL_TOTAL_DIFFICULTY,该区块将会被视为最后的 PoW 区块。随后的区块都开始由信标链上的验证者构建和证明。
要做到以上内容,信标节点将需要与它们的执行引擎 (以前的 Eth1 客户端) 通信,并请求它生成或验证ExecutionPayloads (执行数据)。这些数据是 Eth1 区块合并后的等同物。它们包含这些信息:父块的哈希值 (parent's hash)、状态根 (state root)、基本费用 ( base fee)、需要执行交易列表。一旦这些信息都被生成或验证了,信标节点将在 p2p 网络与其他节点分享。

为了在共识层和执行层建立通信,会引入一组新的 JSON RPC 端点:Engine API (引擎应用程序接口)。
Engine API 是共识层和执行层间的通信接口。它不在执行层的公共 JSON RPC API,而在一个独立的端口。为了简单,对 API 的调用总是由共识层发起,而 API 只引入三个方法:engine_executePayload、 engine_forkchoiceUpdated 和 engine_getPayload。让我们逐个看看它们是做什么的:
engine_executePayload (引擎执行数据)要求执行层验证 ExecutionPayload 是否符合所有协议规则。
在通过这个调用接收到数据后,执行层将返回 VALID/INVALID (有效/无效) 或,如果它还没同步完链头,则返回 SYNCING (同步中)。因为一个区块的有效性是取决于它的父块有效性的,如果执行层缺乏历史数据来评估数据的有效性,它将从网络上获取这些数据。
engine_forkchoiceUpdated (引擎分叉选择更新)是共识层在网络上告知执行层新的链头和最终敲定的区块的方式。如果共识层需要执行层在最新的链头区块上生成一个新的 ExecutionPayload,它会和这个调用一起传送一个 payloadAttributes 栏位。
payloadAttributes 栏位包含与执行引擎生成一个ExecutionPayload的相关信息,特别是 timestamp (时间戳), random (乱数) and feeRecipient (相当于以前的 coinbase) 的值。在接收到这个调用时,执行层将更新它的链头,根据需要进行同步,以及,如果有需要的话,开始用 payloadAttributes 的数值构建一个 ExecutionPayload。
engine_getPayload (引擎获取数据)请求执行层返回它的最佳 ExecutionPayload,它的构建过程已在之前对 engine_forkChoiceUpdated 的相关调用时启动了。
这就是当验证者必须出块时,它从它的执行引擎获取一个有效区块的方式。其他节点在从 p2p 层接收到该区块后将调用 engine_executePayload来评估其有效性。
......就是这样!有了这三个新的端点,共识层和执行层可以就链的状态和交易数据进行通信。现在,让我们深入了解执行引擎的工作原理。
如上文所述,执行引擎就是合并后的 Eth1 客户端。在这点上,任何与共识相关的内容都从它们的权限中移除了。它们的主要重点变成状态管理、区块构建和验证,这些都稍有修改。大部分的修改都写在了 EIP-3675。
第一,合并将需要对区块格式进行一些修改。有些仅与 PoW 而非 PoS 相关的栏位会被设为 0 (或它们的数据结构的等同物)。这些栏位不是与挖矿 (difficulty, mixHash, nonce) 就是与 ommers (ommers, ommersHash) 有关,它们在 PoS 上都是不存在的。主网上 extraData 的长度也将被限制在 32 个字节上。
第二,由于合并后代币增发仅会在信标链上发生,执行层将不再处理区块和叔块奖励。也就是说。执行引擎将仍然负责处理交易费。事实上,当它创建 ExecutionPayload时,执行引擎会确保所有交易发送者至少可以支付当前的 baseFeePerGas (每单位gas 的基本费用),且任何额外费用都会被发送到 feeReceipient (费用接收者)。请注意,feeReceipient 指的是“传统”的以太坊地址,而不是信标链验证者。
第三,当 PoS 取代了 PoW,执行引擎将不再广播区块。这意味着将弃用在 p2p 网络上的 NewBlockHashes (0x01) 和 NewBlock (0x07) 的处理程序。同样,执行层将仍然负责同步网络状态,广播交易和维持它的交易池。
下图同样由 Danny Ryan 制作,它展示了当合并发生时执行层弃用 PoW 转而依赖信标链的过程。

PoW 区块不再生成,而信标链区块在合并后开始包含 ExecutionPayloads。
我们现在已经介绍了客户端如何处理区块以及合并后进行内部通信的核心组件了。现在,让我们简单谈谈系统的的各种相对“边缘”的组件。
如本文第一张图表所示,合并后,执行和信标链层都在 p2p 网络里。除了执行层上区块广播被弃用外,p2p 网络上的所有东西保持不变:在它们各自独立的 p2p 网络上,信标节点将广播证明、罚没等,而执行层将分享交易、同步状态等。
同样,信标链 和 执行层 上的用户 API 都将保持独立,除了新创建的 Engine API。
有一个组件是跨越两个层的,就是同步。我们正在为合并前和合并后各种可能的边缘情况开发各种同步策略。它们仍在完善和测试中,并可能成为未来的深入研究主题👀
Amphora 工作坊后,工作重心一直放在规范的完善和开发测试网的测试中。在未来几周内,预计规范将确定下来,即我们预期不会再有大修改的地步。
同时, Pithos 测试网构建并运行起来了,有多个客户端组合每天在上面做测试,计划下周有一个社区会议,让基础设施和工具提供商快速了解合并。到时见👋🏻

ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co进行授权。
No activity yet