跳转到主要内容
Multichain Virtual Environment 是包含多个区块链网络的单一测试环境。您可以将 Ethereum mainnet、Arbitrum、Optimism、Base 或其他 100+ 个受支持的 EVM 网络中的任意一个附加到一个 Virtual Environment 上,然后在共享的身份下与它们全部协作。每个网络都保留自己的 RPC 端点、浏览器视图和水龙头,但它们共同存在于一个资源中,您可以将其作为一个整体来创建、注资和拆除。 Multichain Virtual Environment 在运行单独的每网络 Virtual Environments 之上增加了跨链感知能力。Bridge Module 可以检测某个网络上的跨链消息并将其中继到同一 Virtual Environment 中的另一个网络,仪表板会向您展示整个环境中交易的统一时间线。
Multichain Virtual Environments 和 Bridge Module 在包含多链能力的计划中可用。联系我们以在您的账户上启用它们。
Virtual Environments list showing one Virtual Environment with Mainnet network, Network Mirror sync mode, and created timestamp

常见用途

  • 从一个环境同时跨多个链部署和测试合约。
  • 在 Mainnet、Arbitrum 和 Optimism 之间进行跨链协议测试,桥接交易端到端运行。
  • 针对 LayerZero、CCIP、CCTP 和 Across 的桥接集成验证,对于正常路径支持即时中继,对于失败模式支持手动控制。
  • 针对重放攻击、预言机配置和轻客户端实现进行安全测试。
  • 在每次推送时跨多个链进行部署和回归测试的 CI/CD 流水线。
  • Staging 环境,让 dApp 在多链后端上运行,且无需真实资金。
参见快速入门以创建一个,或参见 Bridges 了解桥接中继模型。

Multichain Virtual Environment 的组织方式

Multichain Virtual Environment 是一个附加了一个或多个网络的环境。Virtual Environment 具有一致的身份(名称和 slug)。添加或删除网络不会影响其他网络。
Organization
  > Project
    > Virtual Environment
        > Network: Ethereum
        > Network: Arbitrum
        > Network: Optimism
      > Enabled Features
          > Block Explorer (ON)
          > Bridges (ON)
          > State Sync (OFF)
您可以在同一个 Virtual Environment 中混合生产链和 testnet,从 Tenderly 支持的 100+ 个 EVM 网络中选择。生产链在创建流程中首先出现。完整列表请参见支持的网络
Create Virtual Environment form with the network dropdown open showing multiple EVM networks to choose from, and Bridge / Public Explorer toggles in the Advanced section

RPC URL

您 Virtual Environment 中的每个网络都会获得一个可预测的 RPC URL。该 URL 包含组织 slug、项目 slug 和一个 Virtual Environment slug(创建时分配的随机 6 字符字符串,无法更改):
https://virtual.<network>.<region>.rpc.tenderly.co/<org-slug>/<project-slug>/<env-slug>
如果您的组织是 acme-protocol、项目是 my-project、Virtual Environment slug 是 a1b2c3
Ethereum:  https://virtual.mainnet.eu.rpc.tenderly.co/acme-protocol/my-project/a1b2c3
Arbitrum:  https://virtual.arbitrum.eu.rpc.tenderly.co/acme-protocol/my-project/a1b2c3
Optimism:  https://virtual.optimism.eu.rpc.tenderly.co/acme-protocol/my-project/a1b2c3
Base:      https://virtual.base.eu.rpc.tenderly.co/acme-protocol/my-project/a1b2c3
每个网络端点都遵循相同的模式,因此给定 Virtual Environment 的所有 URL 共享相同的组织、项目和环境 slug。
Virtual Environment detail page showing the Integrate Virtual RPC tab with Admin RPC URL, Public RPC toggle, Chain ID, and RPC endpoint setup steps

Virtual Chain ID

默认情况下,Multichain Virtual Environment 中的每个网络都使用一个 Virtual Chain ID。它结合了 999xx 前缀和真实的链 ID。这可以防止您的 Virtual Environment 与真实网络之间意外重放:为您的虚拟 mainnet 签名的交易不会在真实的 Ethereum 上验证通过,反之亦然。 如果您的设置需要,您可以在创建时覆盖此值,例如当合约验证特定的 chainid 值时。可以按每个网络选择使用真实的链 ID 或自定义的。

支持的网络

Multichain Virtual Environments 支持与 Tenderly 其他部分相同的 100+ 个 EVM 网络。完整列表请参见支持的网络页面,包括哪些产品在哪个网络上可用。 Bridge 协议的覆盖范围比整体网络覆盖范围窄。参见 Bridges 了解哪些协议在哪些链上处于运行状态。

与其他 Virtual Environment 功能的协同工作

State Sync 是按环境的。启用 State Sync 会应用到整个 Virtual Environment:它会跟踪所有已附加网络的实时 mainnet 状态,直到某笔 Virtual Environment 交易修改一个存储槽。 Network Mirror Mode 是单网络的。目前不支持将 Mirror Mode 与 Multichain Virtual Environment 结合使用。 每个网络都有自己的 Admin RPC。作弊码按网络应用。在 Ethereum 支线上的 tenderly_setBalance 不会影响 Base 支线上的余额。 每个网络都有自己的区块时间。Virtual Environment 不会跨网络同步时钟。您通过 Admin RPC 的时间方法按网络控制时间。

编程访问

您在仪表板中可以做的所有事情都可以通过 Tenderly REST API 和 CLI 完成。tenderly-virtual-testnet-setup GitHub Action 自动化为 CI/CD 流水线配置并行 Virtual Environments,这在您希望每个 pull request 都有一个全新的多链环境时非常有用。

后续步骤

Quickstart

创建 Multichain Virtual Environment,将其接入 Foundry 或 Hardhat,为账户注资,并运行您的第一笔跨链交易。

Bridges

Bridge Module 如何在网络之间中继 LayerZero、CCIP、CCTP 和 Across 消息,以及用于失败测试的仪表板和手动控制。