Network Mirror Mode доступен на платном тарифе. Чтобы включить его для вашего аккаунта, свяжитесь с отделом продаж.

Когда его использовать
Используйте Network Mirror Mode, когда нужно оценить поведение при живых сетевых условиях, а не на замороженном форке:- Тестируйте, как ваши контракты ведут себя при сегодняшних ценах оракулов, резервах пулов или состоянии управления.
- Разместите транзакцию и контролируйте, когда она исполнится относительно следующего синхронизированного блока.
- Приостановите живую сеть на конкретном блоке, чтобы изучить состояние, и продолжите воспроизведение.
- Сравнивайте хранилище и балансы вашей Virtual Environment с базовыми значениями mainnet с течением времени.
Как работает синхронизация
Тик mainnet вызывает тик Virtual Environment примерно за 12 секунд. Каждый тик вносит транзакции следующего блока и применяет их поверх текущего состояния вашей Virtual Environment. Транзакции, которые вы отправляете, находятся в mempool Virtual Environment до следующего тика синхронизации, после чего они добавляются в начало синхронизированного блока в порядке FIFO. Ваши транзакции исполняются первыми; синхронизированные транзакции mainnet — после них, на основе полученного состояния. Индикатор «live» показывает, поспевает ли Virtual Environment:| Состояние | Значение |
|---|---|
| Live | Тик активен, отставание не более одного блока |
| Catching up | Тик активен, отставание больше одного блока |
| Paused | Цикл тиков остановлен |

Управление временем
Полоса управления временем позволяет двигать часы Virtual Environment относительно mainnet. Каждый элемент управления соответствует RPC-вызову, который можно вызвать и из вашего кода:| Элемент управления | RPC-вызов | Поведение |
|---|---|---|
| Rewind | tenderly_revertSync | Отматывает N блоков (по умолчанию 10) |
| Play | tenderly_startSync | Возобновляет непрерывную синхронизацию с текущего блока |
| Pause | tenderly_stopSync | Останавливает цикл тиков |
| Step | tenderly_syncNext | Синхронизирует только следующий блок |
1×, 2×, 4×, realtime) соответствует задержке тика между вызовами синхронизации (12s, 6s, 3s и без задержки соответственно).

tenderly_getSyncStatus.
Линза отклонения состояния
Линза State Drift показывает, где ваша Virtual Environment разошлась с mainnet. Удобно для поиска контракта или кошелька, который на самом деле затронул ваш тест. Три подраздела делят одну поверхность:| Подраздел | Что показывает |
|---|---|
| State | Отклонение слотов хранилища по контрактам |
| Balance | Дельта балансов кошельков и токенов по сравнению с mainnet |

Точность блочного контекста
Network Mirror Mode гарантирует один-к-одному соответствие с родительской сетью по параметрам, которые чаще всего влияют на поведение контрактов:- Согласование блочного контекста:
block.timestamp,baseFee,coinbaseиprevrandaoотражают значения mainnet. - Паритет рынка газа: к транзакциям, которые вы отправляете, применяется текущая цена газа mainnet.
- Задержка меньше тика: тик mainnet вызывает тик Virtual Environment примерно за 12 секунд.
Поведение чит-кодов
Поскольку Network Mirror Mode постоянно импортирует реальные блоки, некоторые чит-коды Admin RPC ведут себя иначе, чем в стандартной Virtual Environment.| Поведение | Когда Virtual Environment в Network Mirror Mode |
|---|---|
Чит-коды Admin RPC (tenderly_setBalance, tenderly_setErc20Balance, tenderly_setStorageAt и т. д.) | Отключены, пока активна живая синхронизация. Приостановите синхронизацию, чтобы использовать их. |
| Solidity precompile cheatcodes | Работают, но исполняются на границе следующего синхронизированного блока, а не немедленно. |
tenderly_sendBlock | Отключён, пока активна синхронизация. |
| Начальный пустой блок при создании Virtual Environment | Пропускается. |
| Стандартные 10 пополненных аккаунтов при создании Virtual Environment | Не создаются. |
Сравнение режимов
| Стандартная Virtual Environment | State Sync | Network Mirror Mode | |
|---|---|---|---|
| Начальное состояние из родительской сети | Да (снимок) | Да | Да |
| Отслеживание новых блоков родительской сети | Нет | Пер-слот, при чтении | Да, блок в блок |
| Видимый пользователю mempool | Нет | Нет | Да |
| Блочный контекст совпадает с родительской сетью | Нет (независимые часы) | Нет | Да |
| Чит-коды работают через Admin RPC | Да | Да | Только когда синхронизация приостановлена |
| Управление временем (rewind / play / step) | Нет | Нет | Да |
| Линза state drift | Нет | Нет | Да |
| Хорошо подходит для | Интеграционных тестов на замороженной точке | Свежих значений оракулов, состояний пулов | Репетиций живой сети, тестов mempool |
Известные ограничения
- Только одна сеть. Network Mirror Mode применяется к отдельной Virtual Environment; совмещение с multichain Virtual Environments в настоящее время не поддерживается.