> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tenderly.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Network Mirror Mode

> Запустите Virtual Environment, которая остаётся поблочно синхронизированной с живой сетью, с видимым mempool, контролем времени и линзой отклонения состояния.

Network Mirror Mode постоянно поддерживает Virtual Environment выровненной с её родительской сетью. Новые блоки mainnet поглощаются в Virtual Environment по мере их появления, а mempool, видимый в UI, собирает все транзакции, которые вы отправляете. Ваши транзакции добавляются в начало следующего синхронизированного блока в порядке поступления.

<Note>
  Network Mirror Mode доступен на платном тарифе. Чтобы включить его для вашего аккаунта, [свяжитесь с отделом продаж](https://tenderly.co/contact-us).
</Note>

<Frame caption="Страница Network Sync для Virtual Environment в режиме Mirror: график отставания в блоках, счётчики статуса синхронизации и элементы управления Rewind / Sync block / Start auto-sync.">
  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/06-vnet-network-sync.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=2491d8ea590edfd419ebb7bdd440f1c3" alt="Network sync status panel showing Mainnet head vs Virtual Environment head block numbers, block lag chart, and time-control buttons" width="1600" height="1000" data-path="images/testnets/06-vnet-network-sync.webp" />
</Frame>

## Когда его использовать

Используйте Network Mirror Mode, когда нужно оценить поведение при **живых сетевых условиях**, а не на замороженном форке:

* Тестируйте, как ваши контракты ведут себя при сегодняшних ценах оракулов, резервах пулов или состоянии управления.
* Разместите транзакцию и контролируйте, когда она исполнится относительно следующего синхронизированного блока.
* Приостановите живую сеть на конкретном блоке, чтобы изучить состояние, и продолжите воспроизведение.
* Сравнивайте хранилище и балансы вашей Virtual Environment с базовыми значениями mainnet с течением времени.

Если вам нужен замороженный форк на конкретный момент времени, используйте стандартную Virtual Environment. Если нужно состояние в реальном времени без семантики mempool или поблочного тикания, используйте [State Sync](/virtual-environments/state-sync).

## Как работает синхронизация

Тик mainnet вызывает тик Virtual Environment примерно за 12 секунд. Каждый тик вносит транзакции следующего блока и применяет их поверх текущего состояния вашей Virtual Environment.

Транзакции, которые вы отправляете, находятся в mempool Virtual Environment до следующего тика синхронизации, после чего они **добавляются в начало синхронизированного блока в порядке FIFO**. Ваши транзакции исполняются первыми; синхронизированные транзакции mainnet — после них, на основе полученного состояния.

Индикатор «live» показывает, поспевает ли Virtual Environment:

| Состояние   | Значение                                      |
| ----------- | --------------------------------------------- |
| Live        | Тик активен, отставание не более одного блока |
| Catching up | Тик активен, отставание больше одного блока   |
| Paused      | Цикл тиков остановлен                         |

<Frame caption="Заголовок статуса синхронизации: голова Mainnet, голова Virtual Environment и на сколько блоков Virtual Environment сейчас отстаёт от mainnet.">
  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/06-vnet-network-sync.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=2491d8ea590edfd419ebb7bdd440f1c3" alt="Network sync status showing Mainnet head 25,239,023 and Virtual Environment head 25,237,977 with 1,046 blocks behind mainnet in orange" width="1600" height="1000" data-path="images/testnets/06-vnet-network-sync.webp" />
</Frame>

## Управление временем

Полоса управления временем позволяет двигать часы Virtual Environment относительно mainnet. Каждый элемент управления соответствует RPC-вызову, который можно вызвать и из вашего кода:

| Элемент управления | RPC-вызов                                                                    | Поведение                                               |
| ------------------ | ---------------------------------------------------------------------------- | ------------------------------------------------------- |
| Rewind             | [`tenderly_revertSync`](/virtual-environments/admin-rpc#tenderly_revertsync) | Отматывает N блоков (по умолчанию 10)                   |
| Play               | [`tenderly_startSync`](/virtual-environments/admin-rpc#tenderly_startsync)   | Возобновляет непрерывную синхронизацию с текущего блока |
| Pause              | [`tenderly_stopSync`](/virtual-environments/admin-rpc#tenderly_stopsync)     | Останавливает цикл тиков                                |
| Step               | [`tenderly_syncNext`](/virtual-environments/admin-rpc#tenderly_syncnext)     | Синхронизирует только следующий блок                    |

Выбор скорости (`1×`, `2×`, `4×`, `realtime`) соответствует задержке тика между вызовами синхронизации (`12s`, `6s`, `3s` и без задержки соответственно).

<Frame caption="Полоса управления временем: Rewind, Sync block и Start auto-sync с множителем скорости (1×, 2×, 4×, realtime).">
  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/06-vnet-network-sync.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=2491d8ea590edfd419ebb7bdd440f1c3" alt="Network sync page showing Rewind, Sync block, and Start auto-sync 1x buttons in the top-right of the status card" width="1600" height="1000" data-path="images/testnets/06-vnet-network-sync.webp" />
</Frame>

Чтобы программно проверить прогресс синхронизации, используйте [`tenderly_getSyncStatus`](/virtual-environments/admin-rpc#tenderly_getsyncstatus).

## Линза отклонения состояния

Линза State Drift показывает, где ваша Virtual Environment разошлась с mainnet. Удобно для поиска контракта или кошелька, который на самом деле затронул ваш тест.

Три подраздела делят одну поверхность:

| Подраздел | Что показывает                                             |
| --------- | ---------------------------------------------------------- |
| State     | Отклонение слотов хранилища по контрактам                  |
| Balance   | Дельта балансов кошельков и токенов по сравнению с mainnet |

Линза ограничена контрактами и кошельками, за которыми вы следите, плюс любыми контрактами, которых коснулась текущая сессия.

<Frame caption="Вкладка State Drift: подразделы State и Balance с элементами Track variable и Track balance.">
  <img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/testnets/21-network-sync-state-drift.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=81fa8c48e72fe8c7a600015000f03ada" alt="State drift view inside Network Sync, showing the State and Balance tabs and the Track variable / Track balance buttons" width="1600" height="1000" data-path="images/testnets/21-network-sync-state-drift.webp" />
</Frame>

## Точность блочного контекста

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                                   | Не создаются.                                                                                        |

Полный список чит-кодов см. в [справочнике Admin RPC](/virtual-environments/admin-rpc).

## Сравнение режимов

|                                                 | Стандартная Virtual Environment             | [State Sync](/virtual-environments/state-sync) | Network Mirror Mode                       |
| ----------------------------------------------- | ------------------------------------------- | ---------------------------------------------- | ----------------------------------------- |
| Начальное состояние из родительской сети        | Да (снимок)                                 | Да                                             | Да                                        |
| Отслеживание новых блоков родительской сети     | Нет                                         | Пер-слот, при чтении                           | Да, блок в блок                           |
| Видимый пользователю mempool                    | Нет                                         | Нет                                            | Да                                        |
| Блочный контекст совпадает с родительской сетью | Нет (независимые часы)                      | Нет                                            | Да                                        |
| Чит-коды работают через Admin RPC               | Да                                          | Да                                             | Только когда синхронизация приостановлена |
| Управление временем (rewind / play / step)      | Нет                                         | Нет                                            | Да                                        |
| Линза state drift                               | Нет                                         | Нет                                            | Да                                        |
| Хорошо подходит для                             | Интеграционных тестов на замороженной точке | Свежих значений оракулов, состояний пулов      | Репетиций живой сети, тестов mempool      |

## Известные ограничения

* **Только одна сеть.** Network Mirror Mode применяется к отдельной Virtual Environment; совмещение с multichain Virtual Environments в настоящее время не поддерживается.

## См. также

* [Admin RPC: методы синхронизации](/virtual-environments/admin-rpc#tenderly_startsync)
* [State Sync](/virtual-environments/state-sync)
* [Multichain Virtual Environments](/virtual-environments/multichain/overview)
