Тестирование dApp: локальная сеть и тест-сети

Тестировать dApp на mainnet — дорого и опасно. Локальные сети и тест-сети дают бесплатную песочницу.

Локальная сеть (Hardhat/Anvil) — блокчейн на вашем компьютере: мгновенный, бесплатный, с заранее богатыми аккаунтами. Тест-сеть (Sepolia) — публичный полигон с бесплатными тестовыми монетами.

Каждая транзакция в mainnet стоит реальные деньги, а ошибка необратима. Поэтому разработку и тесты dApp ведут в безопасных средах. Их две: локальная (для разработки) и тестовая (для предрелизной проверки в условиях «как в проде»).

Локальная сеть: Hardhat и Anvil

  • Hardhat node и Anvil (из Foundry) поднимают локальный EVM-узел, обычно на http://127.0.0.1:8545, chainId 31337.
  • Дают 10–20 готовых аккаунтов с тестовым балансом — не нужно ничего «намайнивать».
  • Транзакции мгновенны: блок печатается сразу. Идеально для быстрой разработки фронта.
  • Можно форкнуть mainnet — поднять локальную копию реального состояния сети, чтобы тестировать против настоящих контрактов (например, Uniswap) без риска.

Фронт подключают к локальной сети, добавив её в MetaMask как кастомную сеть (RPC 127.0.0.1:8545) и импортировав один из тестовых приватных ключей.

Тест-сети: Sepolia

Тест-сеть — это настоящий публичный блокчейн, но «игрушечный»: монеты в нём ничего не стоят и раздаются краном (faucet). Sepolia — основная тестовая сеть Ethereum. Зачем она, если есть локальная:

  • Условия ближе к проду: реальные задержки блоков, публичные эксплореры, настоящий WalletConnect.
  • Можно дать ссылку тестировщикам и пользователям бета-теста — у каждого свой кошелёк.
  • Проверка интеграций (Infura/Alchemy, The Graph), которые на локальной сети не поднять.

Где какая среда

ЭтапСреда
Разработка фронта, быстрые итерацииЛокальная (Hardhat/Anvil)
Тесты с настоящими контрактамиФорк mainnet локально
Предрелизная проверка, бетаТест-сеть (Sepolia)
РелизMainnet / L2

Как работает под капотом

Локальный узел — это та же EVM, что и в mainnet, но без сети других узлов и без реальной ценности. Он «майнит» блок по запросу (instant mining) или по интервалу. Форк mainnet работает хитро: узел при запросе несуществующего локально состояния подтягивает его с реального RPC и кэширует — так вы видите реальное состояние сети, но любые ваши транзакции остаются только локально. Для фронта все эти сети неотличимы по API: тот же ethers/wagmi, отличается лишь RPC-URL и chainId.

Частые ошибки

  • Тестировать сразу в mainnet. Дорого и необратимо; начинайте с локальной сети.
  • Хардкодить адреса локальной сети в прод. После передеплоя адреса меняются; держите конфиг по сети.
  • Забыть про реальные задержки. На локальной сети блок мгновенный; в проде есть pending — проверяйте UX в тест-сети.

Итоги

  • Локальная сеть (Hardhat/Anvil) — быстрая бесплатная песочница для разработки.
  • Форк mainnet даёт тесты против настоящих контрактов без риска.
  • Тест-сеть (Sepolia) — условия, близкие к проду, для беты; в mainnet — только релиз.
Проверьте себя
1. Чем удобна локальная сеть Hardhat/Anvil для разработки?
AРеальные деньги для теста
BМгновенные бесплатные транзакции и готовые богатые аккаунты
CПубличный эксплорер
DАвтоматический деплой в mainnet
2. Что даёт форк mainnet локально?
AПеренос денег в локальную сеть
BТесты против реального состояния и контрактов сети без риска
CБесконечный газ в mainnet
DПодпись без кошелька
3. Зачем нужна тест-сеть (Sepolia), если есть локальная?
AОна быстрее локальной
BУсловия ближе к проду и можно дать доступ внешним тестировщикам
CВ ней монеты реальные
DОна заменяет mainnet навсегда