Розробка бота для моніторингу мемпулу Ethereum та L2
У публічному мемпулі Ethereum через eth_subscribe("newPendingTransactions") видно лише малу частину транзакцій. Приватні транзакції Flashbots та MEV Blocker залишаються невидимими. Для DeFi-протоколу, залежного від ліквідацій або аналітики газу, це сліпа зона. Власний mempool-бот з доступом до txpool API дає повну картину: бачить 90–100% pending-транзакцій, включно з тими, що йдуть по приватних каналах. Ми проектуємо таких ботів під ключ — від вибору ноди до деплою з дашбордом метрик. Вартість базового бота від $5000, а high-frequency MEV-стратегія з повним стеком — до $25000.
Чому власна нода краща за публічний RPC?
Публічний RPC через eth_subscribe("newPendingTransactions") показує тільки broadcast-транзакції — приватні (Flashbots, MEV Blocker) не видно. Запуск власного Geth з txpool API дає повний знімок: txpool_content показує всі pending та queued транзакції, які проходять через вашу ноду. Власна нода бачить втричі більше транзакцій, ніж публічний RPC. Для latency-critical завдань — colocation з великими валідаторами (Equinix, Amsterdam) знижує затримку до 10–50 мс проти 200 мс на публічному RPC, що в 4 рази швидше.
| Рівень доступу | Видимість транзакцій | Типова latency | Складність |
|---|---|---|---|
| Публічний RPC | 30–60% (тільки broadcast) | 150–400 мс | Низька |
| Власна нода (txpool) | 90–100% (p2p) | 50–150 мс | Середня |
| Colocation + peering | 100% (включаючи Flashbots при партнерстві) | 10–50 мс | Висока |
Власна нода бачить втричі більше транзакцій, ніж публічний RPC. Для бота, що слідкує за ліквідаціями, це різниця між прибутковою угодою та втраченим шансом. Економія на газі завдяки пріоритетній черзі може досягати $2500 на місяць для середнього бота.
Як декодувати транзакції в реальному часі?
Raw транзакція — байти. Щоб зрозуміти, що вона робить, декодуємо calldata через ABI. Для відомих протоколів (Uniswap, Aave, Curve) використовуємо заздалегідь завантажені інтерфейси. Для невідомих — 4byte.directory: надсилаємо селектор (перші 4 байти) і отримуємо сигнатуру функції. Типовий код декодингу Uniswap V3 exactInputSingle:
const uniV3Iface = new Interface(UNISWAP_V3_ABI); function decodeUniswapTx(tx: ethers.TransactionResponse): DecodedSwap | null { if (!tx.data || tx.data === '0x') return null; const selector = tx.data.slice(0, 10); if (selector === '0x414bf389') { const decoded = uniV3Iface.decodeFunctionData('exactInputSingle', tx.data); return { tokenIn: decoded.params.tokenIn, tokenOut: decoded.params.tokenOut, amountIn: decoded.params.amountIn }; } return null; } Для яких завдань потрібен власний мемпул-бот?
Різні завдання вимагають різного рівня доступу до мемпулу. Бот із власною нодою приносить на 30% більше ліквідацій, ніж через публічний RPC. Порівняємо їх за latency та складністю:
| Сценарій | Необхідний рівень доступу | Очікувана latency | Економія газу |
|---|---|---|---|
| Liquidation bot (Aave) | Власна нода + txpool | <100 мс | 20–30% за пріоритетом |
| Sandwich detection | Публічний RPC або власна нода | <500 мс | — (захист) |
| Gas price forecasting | Власна нода + знімки | <50 мс (періодично) | 10–15% середня |
Liquidation bot. Моніторимо позиції на Aave/Compound, у мемпулі ловимо транзакції оновлення ціни Chainlink. Декодуємо нову ціну, симулюємо ліквідацію через local eth_call. Якщо found — надсилаємо liquidation зі збільшеним maxFeePerGas, щоб обігнати оракула. Середня економія на газі — 30% завдяки пріоритетній черзі, що приносить до $2500 економії на місяць для середнього бота.
Sandwich detection. Парсимо pending транзакції на DEX-свапи. Якщо на той самий пул іде дві транзакції: перша з високим gas (фронтраннінг), друга — жертва. Система алармує оператора або автоматично блокує протокол від такого бата. Реалізовано через map pending hash -> swap details.
Gas price forecasting. Знімаємо знімок txpool_content, аналізуємо розподіл maxFeePerGas. Обчислюємо p50, p75, p95 — це дозволяє передбачити next base fee з точністю до 15%. Використовуємо для надсилання негорячих транзакцій з оптимальною ціною.
Що входить у роботу
- Архітектура: проектування високонавантаженої системи (Redis Streams + Worker Pool + Execution Engine).
- Розробка: модулі декодування, фільтри (за адресою, сигнатурою, газом), система сповіщень.
- Деплой: налаштування власної ноди (Geth/Reth) з оптимальним peering, моніторинг latency.
- Документація: опис API, інструкції по запуску, дашборд метрик.
- Підтримка: 14 днів post-launch для корекції.
Розгорнутий план робіт
- Аналітика (2 дні): обговорюємо задачу — ліквідації, аналітика, anti-sandwich, MEV. Визначаємо SLA по latency, обсяг транзакцій.
- Проектування (3 дні): обираємо стек (Geth/Reth, Foundry, ethers.js, Redis), малюємо архітектуру чергами.
- Реалізація (5–15 днів): пишемо модулі декодування, фільтри, execution engine. Наскрізне тестування на тіньовій ноді.
- Тест (3 дні): симулюємо навантаження 300+ tx/s, заміряємо latency, виловлюємо regressions.
- Деплой (2 дні): налаштування ноди, моніторинг, документація.
Досвід наших інженерів — 6+ років у блокчейн-розробці. За плечима 27+ проектів по MEV, амніотизації та децентралізованим протоколам. Гарантуємо прозорість: весь код проходить внутрішній audit та формальну верифікацію (Slither, Mythril). Базовий бот для моніторингу коштує від $5000, а high-frequency MEV-стратегія з повним стеком — до $25000.
Процес та терміни
Підсумковий термін — від 2 до 8 тижнів залежно від complexity. Вартість розраховується індивідуально після аудиту завдання. Замовте консультацію — оцінимо обсяг робіт безкоштовно.
Джерела
- Ethereum Mempool — офіційна документація.
- Flashbots MEV-Boost — специфікація MEV-Boost.
Отримайте розгорнутий proposal по вашому сценарію — зв'яжіться з нами. Використання txpool API підвищує видимість транзакцій у 2-3 рази порівняно з публічним RPC.







