Перейти к основному содержанию
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 доступны на тарифах, включающих multichain-возможности. Свяжитесь с нами, чтобы включить их для вашего аккаунта.
Virtual Environments list showing one Virtual Environment with Mainnet network, Network Mirror sync mode, and created timestamp

Типичные сценарии использования

  • Деплойте и тестируйте контракты одновременно в нескольких цепочках из одного окружения.
  • Тестирование межцепочечных протоколов на Mainnet, Arbitrum и Optimism с транзакциями моста, работающими от начала до конца.
  • Валидация интеграции мостов с LayerZero, CCIP, CCTP и Across, с мгновенной ретрансляцией для happy path и ручным управлением для сценариев отказа.
  • Тестирование безопасности на replay-атаки, конфигурации оракулов и реализации лёгких клиентов.
  • CI/CD пайплайны, которые деплоят и регресс-тестируют в нескольких цепочках при каждом пуше.
  • Стейджинг-окружения, где dApp работает против multichain-бэкенда без реальных средств.
См. quickstart, чтобы создать такое окружение, или Bridges — для модели ретрансляции моста.

Как устроена Multichain Virtual Environment

Multichain Virtual Environment — это одно окружение с одной или несколькими подключёнными сетями. У Virtual Environment есть согласованная идентичность (имя и слаг). Добавление или удаление сети не влияет на остальные.
Organization
  > Project
    > Virtual Environment
        > Network: Ethereum
        > Network: Arbitrum
        > Network: Optimism
      > Enabled Features
          > Block Explorer (ON)
          > Bridges (ON)
          > State Sync (OFF)
Вы можете смешивать продакшен-цепочки и тестовые сети в одной Virtual Environment, выбирая из любой из 100+ EVM-сетей, поддерживаемых Tenderly. Продакшен-цепочки появляются первыми в потоке создания. См. поддерживаемые сети для полного списка.
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 включает слаг организации, слаг проекта и слаг Virtual Environment (случайную 6-символьную строку, назначаемую при создании и не подлежащую изменению):
https://virtual.<network>.<region>.rpc.tenderly.co/<org-slug>/<project-slug>/<env-slug>
Если ваша организация — acme-protocol, проект — my-project, а слаг Virtual Environment — 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
Каждая сетевая конечная точка следует тому же шаблону, поэтому все URL одной Virtual Environment имеют общие слаги организации, проекта и окружения.
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 с реальным chain ID. Это предотвращает случайное replay между вашей Virtual Environment и реальной сетью: транзакция, подписанная для виртуального mainnet, не будет валидна в реальном Ethereum и наоборот. Это можно переопределить при создании, если того требует ваша конфигурация — например, если контракт проверяет конкретное значение chainid. Выберите использование реального chain ID или пользовательского, для каждой сети отдельно.

Поддерживаемые сети

Multichain Virtual Environments работают на тех же 100+ EVM-сетях, которые поддерживает остальной Tenderly. Полный список, включая то, какие продукты доступны в какой сети, см. на странице поддерживаемые сети. Покрытие мостовых протоколов уже, чем общее покрытие сетей. См. Bridges, чтобы узнать, какие протоколы активны в каких цепочках.

Как это работает с другими возможностями Virtual Environment

State Sync настраивается на уровне окружения. Включение State Sync применяется ко всей Virtual Environment: он отслеживает живое состояние mainnet для всех подключённых сетей, пока транзакция Virtual Environment не изменит слот хранилища. Network Mirror Mode — это односетевой режим. Комбинирование Mirror Mode с Multichain Virtual Environment в настоящее время не поддерживается. У каждой сети собственный Admin RPC. Чит-коды применяются в рамках сети. tenderly_setBalance в леге Ethereum не повлияет на балансы в леге Base. У каждой сети собственное время блока. Virtual Environment не синхронизирует часы между сетями. Управляйте временем в каждой сети отдельно с помощью методов времени Admin RPC.

Программный доступ

Всё, что можно сделать в панели, также доступно через REST API Tenderly и CLI. GitHub Action tenderly-virtual-testnet-setup автоматизирует предоставление параллельных Virtual Environments для CI/CD пайплайнов, что удобно, когда нужно свежее multichain-окружение для каждого pull request.

Дальнейшие шаги

Quickstart

Создайте Multichain Virtual Environment, подключите её к Foundry или Hardhat, пополните аккаунты и запустите первую межцепочечную транзакцию.

Bridges

Как Bridge Module ретранслирует сообщения LayerZero, CCIP, CCTP и Across между сетями, с панелями и ручным управлением для тестирования отказов.