本页面解释了 Base 作为以太坊 Layer 2 (L2) 解决方案所依据的基础概念。它涵盖了以太坊 (L1) 与 Base (L2) 之间的关系、rollups 以及 Base 节点系统中不同组件的作用。有关具体的安装说明,请参阅入门指南,有关各个组件的详细信息,请参阅组件。
Base 是一个安全、低成本、对开发者友好的以太坊 L2,旨在将下一个十亿用户带上链。它构建在 Optimism 的开源OP Stack之上,该堆栈实现了一种称为 optimistic rollup 的扩容解决方案。
来源:README.md5-7
理解 Base 是如何运作的,关键在于理解以太坊 (L1) 和 Base (L2) 之间的关系。
L1-L2 关系的要点
数据可用性:所有 Base 交易数据最终都会作为 calldata 发布到以太坊 L1,从而确保数据的可用性和安全性。
安全继承:Base 的安全性源于以太坊。通过将状态锚定到以太坊,Base 继承了以太坊的安全特性。
排序:虽然交易最初由排序器在 L2 上处理,但这些交易的官方排序和包含是由它们发布到 L1 来确定的。
最终性:Base 交易在其对应的批次交易在以太坊 L1 上最终确定后,方可获得最终性。
来源:.env.mainnet13-20 .env.sepolia13-16 README.md5-7 README.md57-59
Base 实现了一种 optimistic rollup,这是一种特定的 Layer 2 扩容解决方案。
Optimistic Rollups 的关键特征
默认乐观:交易被假定为有效,除非被证明无效。这允许在 L2 上立即确认交易,同时保持安全性。
欺诈证明:该系统在挑战期(通常为 7 天)内允许欺诈证明,在此期间任何人都可以通过提交证明来挑战无效的状态转换。
批量处理:交易被批量处理,然后发布到 L1,将 L1 的 Gas 成本分摊到许多 L2 交易中。
数据压缩:交易数据在发布到 L1 之前会被压缩,进一步降低成本。
EVM 等价性:Base 保持与以太坊虚拟机 (EVM) 的兼容性,允许现有的以太坊智能合约和工具以最小的修改正常工作。
来源:README.md5-7
Base 节点由两个主要组件组成,它们协同工作以处理和验证 L2 交易。
op-node 负责
执行客户端(可以是 Geth、Reth 或 Nethermind)负责
op-node 和执行客户端使用 Engine API 进行通信,该 API 使用 JWT (JSON Web Token) 进行身份验证。这确保只有授权的 op-node 才能向执行客户端提交区块。
来源:README.md71-78 .env.mainnet22-26 .env.sepolia21-25
了解数据如何流经系统对于掌握 Base 节点如何运行至关重要。
数据流的关键方面
从 L1 到 L2 的推导:op-node 读取发布在 L1 上的交易数据,并利用这些数据推导出 L2 状态。
Engine API:op-node 使用 Engine API 与执行客户端进行通信,这是以太坊共识客户端与执行客户端通信时使用的相同接口。
交易处理:
同步:当节点启动时,它需要通过以下方式与网络同步:
来源:README.md112-122 .env.mainnet50-52 .env.sepolia44-50
Base 节点有多种方式可以与网络同步。
在此模式下,节点从 L1 数据派生整个 L2 状态。
这是最安全的方法,但可能需要很长时间。
为了加快同步速度,节点可以从受信任的快照开始。
为了更快地同步,节点还可以使用执行层同步。
通过设置 OP_NODE_SYNCMODE=execution-layer 并配置适当的引导节点来启用此功能。
在不需要完全验证的情况下,或者在使用不支持存储证明的 L1 节点时,可以启用 OP_NODE_L1_TRUST_RPC 选项。这仅应用于完全受信任的 L1 节点。
来源:README.md108-111 .env.mainnet43-52 .env.sepolia39-50
Base 支持多个网络,每个网络都有特定的配置
| 网络 | 状态 | 描述 |
|---|---|---|
| 主网 | ✅ | 生产网络 |
| Sepolia 测试网 | ✅ | 开发测试网络 |
每个网络都有其特定的配置,包括
使用 NETWORK_ENV 环境变量来选择适当的配置。
# For mainnet:
export NETWORK_ENV=.env.mainnet
# For testnet:
export NETWORK_ENV=.env.sepolia
来源:README.md48-53 README.md58-64 .env.mainnet1-4 .env.sepolia1-4
Base 节点将其数据存储在持久化目录中,该目录默认为 ${PROJECT_ROOT}/geth-data。这确保了节点数据在重启后得以保留。
为了加快节点设置速度,可以使用链状态的快照。这些快照可以提取到数据目录中,以避免从头开始完全同步的需要。
来源:README.md91-94 README.md108-111
Base 构建在 Optimism OP Stack 之上,这是一个用于构建 optimistic rollup L2 解决方案的开源框架。这意味着 Base 继承了 Optimism 的许多设计原则和架构决策,同时为自身用例做出了特定的选择和优化。
Base 使用的 OP Stack 的关键组件包括
来源:README.md5-7