For the complete documentation index, see llms.txt. This page is also available as Markdown.

关键概念

在 Rome 协议上构建所需的基础术语和概念。

Solana 概念

程序 — Solana 中相当于智能合约的概念。程序是部署在链上的无状态可执行体。Rome EVM 本身就是一个 Solana 程序。

账户 — Solana 上的所有状态都存在于账户中。每个账户都有一个所有者(程序)、余额(lamports)和数据。不同于以太坊,代码和状态分别存储在不同的账户中。

PDA(程序派生地址) — 通过种子和程序 ID 派生出的确定性地址。PDA 允许程序在没有私钥的情况下“拥有”账户。Rome 使用 PDA 将以太坊地址映射到 Solana 账户。

CPI(跨程序调用) — 一个 Solana 程序在同一笔交易中调用另一个程序。Rome EVM 合约通过这种方式与 Jupiter、Kamino、SPL Token 以及其他 Solana 程序交互。

SPL 代币 — Solana 的标准代币程序。相当于以太坊上的 ERC-20。Solana 上所有同质化代币(USDC、SOL 等)都是 SPL 代币。

Token-2022 — 新一代 SPL 代币程序,包含 Transfer Hooks、Confidential Transfers 和 Permanent Delegates 等扩展。

转账钩子 — Token-2022 的一种扩展,会在每次代币转账时调用一个程序。Rome 使 EVM 智能合约可以充当转账钩子。

ATA(关联代币账户) — 针对特定钱包 + 铸币对的确定性代币账户。每个用户对其持有的每种代币都有一个 ATA。

Lamports — SOL 的最小单位。1 SOL = 1,000,000,000 lamports(10^9)。

计算单元(CU) — Solana 中相当于以太坊 gas 的概念。每笔交易都有计算预算(默认约 200K CU,最大约 1.4M CU)。操作会消耗 CU。

Rome 概念

Rome EVM 程序 — 包含 EVM 字节码解释器的 Solana 程序。根据不同环境部署在特定的程序 ID 上。

链 ID — Rome 上的每个应用都有自己的 EVM 链 ID。这会创建彼此隔离的 EVM 环境,但共享同一底层 Solana 状态。

原子执行(VmAt) — 完全在单个 Solana 交易内执行的 EVM 交易。用于大多数操作。

迭代执行(VmIt) — 跨多个 Solana 交易分步执行的 EVM 交易,每一步执行约 500 条操作码。用于 BN254 配对等计算密集型操作。

持有者账户 — 用于存储大型 EVM 交易的链上缓冲区(最多 80 KB),用于处理超过 Solana 1,232 字节交易大小限制的交易。由 SDK 透明管理。

StateHolder — 在迭代执行步骤之间存储序列化 VM 状态的链上账户。

Rome 代理 — 将以太坊 API 调用转换为 Solana 交易的 JSON-RPC 服务器(端口 9090)。你的 MetaMask 和 Hardhat 都连接到这里。

Hercules — 监控 Solana 上 Rome EVM 事件并生成以太坊兼容区块数据的区块索引器。

Rhea — 在 OP-Geth 与 Solana 之间转发交易的内存池桥接层(仅在 OP-Geth 模式下使用)。

支付者 — 代表 EVM 用户签名并支付 Solana 交易的 Solana 密钥对。由 Proxy 通过 payer 池进行管理。

代币概念

ERC20SPL — 在 Rome EVM 中表示 SPL 代币的 ERC-20 包装合约。该包装器直接从底层 SPL 代币账户读取余额——无需单独状态。

ERC20SPLFactory — 在首次跨链桥接时,为任意 SPL 代币部署 ERC20SPL 包装器的工厂合约。

规范代币注册表 — 将每种资产映射到单一规范 SPL 铸币,以防止出现碎片化表示(例如,USDC 始终映射到 Circle 的原生 SPL 铸币)。

预编译

标准以太坊预编译 — ecrecover (0x01)、SHA-256 (0x02)、RIPEMD-160 (0x03)、identity (0x04)、BN254 ecAdd/ecMul/ecPairing (0x06-0x08)、Blake2f (0x09)。

系统程序预编译 (0xFF...07)— 从 Solidity 进行 PDA 派生、base58 转换和账户创建。

CPI 预编译 (0xFF...08)— 从 Solidity 进行跨程序调用。可调用任意 Solana 程序,使用 invoke()invoke_signed().

提取预编译 (0x42...16)— 将 SOL 或 SPL 代币从 EVM 提取回 Solana。

交易类型

RheaTx — 单个 rollup 上的一笔 EVM 交易。最常见的类型。

RemusTx — 跨不同 rollup 的多笔 EVM 交易,原子执行。若任一交易失败,则全部回滚。

RomulusTx — 将 EVM 交易与原生 Solana 指令合并在一次原子操作中执行。最强大的类型——在单笔交易中同时混合 Solidity 和 Solana。

部署模式

单状态模式 — 用户直接连接到 Rome Proxy。设置更简单,延迟更低。由 Hercules 生成并存储在 PostgreSQL 中的 EVM 区块。

OP-Geth 模式 — 用户连接到 OP-Geth 以获得完整的以太坊 RPC 兼容性。Rhea 将内存池桥接到 Solana。Hercules 通过 Engine API 将区块推送给 OP-Geth。

下一步

最后更新于

这有帮助吗?