Розробка системи моніторингу та алертів за whale-транзакціями

Великі перекази помічають уже постфактум — коли ціна вже відреагувала. Ми розробляємо системи моніторингу whale-транзакцій під ключ: налаштовуємо відбір подій, алерти та регламенти реакції, щоб сигнал надходив раніше за ринок.
Часті запитання

Whale-транзакції: чому великі перекази губляться без моніторингу

Великий переказ залишає гаманець за секунди, а команда дізнається про нього через години — з новинної замітки або повідомлення в загальному чаті. На цей момент ліквідність уже переставлена, а вікно для ухвалення рішення закрилося.

Дані при цьому відкриті: whale-транзакції видно в публічному реєстрі, питання лише в тому, хто і як швидко їх помічає.

Ручний перегляд оглядачів блоків — вузьке місце за своєю природою. Аналітик відкриває вкладку за вкладкою, звіряє адреси зі списком значущих, відсіює дрібні перекази — і в цьому потоці пропускає потрібний.

На кількох мережах картина розпадається: частина руху видна в одному ланцюгу, частина — у переказі через крос-чейн-міст, частина — у внутрішніх операціях біржі, які не відображаються окремим записом.

Друге джерело втрат — запізнення. Навіть акуратний аналітик реагує за хвилини і лише у свою зміну.

Уночі та на вихідних моніторинг великих переказів фактично не ведеться, хоча саме в ці вікна найчастіше відбуваються рухи, на які потрібно відповідати, — і пропуск транзакції залишається непоміченим до ранку.

Ціна пропущеної події не обмежується втраченою угодою. Переказ на біржу перед великим продажем, виведення коштів зі смарт-контракту, перший рух нового гаманця — це сигнали, з яких складається картина ризику.

Коли вони приходять із запізненням або губляться серед шуму, рішення ухвалюються за застарілими даними. Далі розбираємо, як це закривається системою, яка стежить за потоком постійно.

Що дає безперервний моніторинг: швидкість реакції та повнота даних

Безперервний моніторинг переводить спостереження за мережею в потік подій з вимірюваними характеристиками. Швидкість оповіщення: від появи переказу в мемпулі Ethereum до повідомлення черговому проходять одиниці секунд замість хвилин ручного пошуку.

Повнота покриття подій тримається на тому, що під наглядом усі перекази вище порога, а не список адрес — включно з внутрішніми викликами контрактів, яких не видно в оглядачі блоків.

Як збираємо події Коли підходить Обмеження
Періодичні запити до публічного інтерфейсу вузла Разовий аудит, розбір архіву Затримка зростає разом із кроком опитування, у пікові години перекази випадають
Підписка на потік подій від власного вузла Постійний контроль, затримка в секундах Потрібна своя нода, стабільний канал, продовження з останнього блока
Потік від стороннього індексатора Швидкий старт, багато мереж одразу Залежність від чужої інфраструктури, затримка не контролюється, частина викликів не віддається

Стійкість потоку даних тримається не на одному каналі: друге джерело йде паралельно, і розходження між ними — самостійний сигнал про збій, а не привід мовчати.

Перепідключення продовжується з останнього обробленого блока, пропущений діапазон довантажується, повтори гасяться за хешем переказу — черговий бачить кожну подію рівно один раз.

Час реакції чергового скорочує контекст усередині самого оповіщення: сума, відправник, отримувач з міткою відомої біржі, історія адреси. Дрібні перекази йдуть дайджестом, великі прориваються на чергового одразу. Так знімається цілий клас відмов — пропущений переказ і ручний перебір блоків.

Підходи до відстеження whale-транзакцій: порівняння варіантів

Відстеження великих переказів будується за одним із трьох контурів: підписка на нові блоки, опитування за розкладом або їх комбінація. Вибір контуру визначає затримку алерту, стійкість до розривів з'єднання та обсяг доопрацювань при зростанні потоку.

Потік дає мінімальну затримку, опитування — незалежність від стану каналу та просте налагодження. Для алертів за whale-транзакціями на практиці беруть гібрид: потік як основний канал, періодична звірка за висотою блока як страховка від пропусків.

Варіант Коли підходить Обмеження
Потокова обробка блоків Реакція в перші секунди після включення блока в ланцюг Тримає постійне з'єднання з вузлом; при розриві з'являється вікно пропущених подій, потрібна наздоганяюча синхронізація та контроль відставання
Періодична вибірка Аналітика, звіти, розбір історії — там, де затримка в хвилини некритична Обмеження частоти запитів і квот у публічних джерел на кшталт Etherscan; переказ між двома вікнами опитування легко пропустити, а перетин інтервалів дає дублі
Гібридна схема відстеження Промислові алерти, де пропуск дорожчий за зайвий запит Складніше в реалізації: потрібні відсів дублів, повторна обробка без побічних ефектів і зберігання контрольних точок

Схему вибирають за трьома параметрами: потрібна затримка сигналу, допустима частка пропусків і готовність команди тримати власний вузол.

Як ми вибудовуємо систему: від аудиту потоків до передачі

Моніторинг великих переказів ламається не на надсиланні оповіщення, а на вході: джерела віддають дані з різною затримкою, частина подій надходить повторно при перебудові ланцюга, а поріг спрацювання без калібрування дає або тишу, або потік шуму, який черговий перестає читати.

Тому етапи впровадження моніторингу починаємо з аудиту потоків, а не з налаштування повідомлень — правила відбору подій фіксуємо лише після того, як зрозуміла реальна картина.

  1. Аудит джерел даних. Інвентаризуємо вузли, публічні інтерфейси та внутрішні сервіси: що віддає адреси, що — суми, де затримка, де пропуски. На виході — карта покриття мереж і список місць, звідки подія фізично не приїде.
  2. Схема потоків і зберігання. Визначаємо, як подія проходить від приймання до бази: нормалізація адрес і сум, дедуплікація, прив'язка до блока, ретенція. Схема потрібна, щоб розслідування інциденту займало хвилини, а не вивантаження заново.
  3. Правила відбору подій. Пороги за сумою, списки адрес і пулів, ознаки переміщення на біржу або з холодного зберігання, групування пов'язаних переказів. Правила версіонуємо — кожну зміну можна пояснити й відкотити.
  4. Налаштування оповіщень. Розділяємо рівні важливості, задаємо маршрутизацію за черговими та вікна тиші, щоб повторні спрацювання не дублювалися. Черговий отримує контекст: адресу, суму, шлях коштів і посилання на подію.
  5. Перевірка на історичних даних. Проганяємо правила на минулих періодах і звіряємо з тим, що відомо за фактом: скільки спрацювань, яка частка хибних, що пропустили. Калібруємо пороги до запуску, а не на живому потоці.
  6. Передача та навчання чергових. Віддаємо документацію, розбір типових спрацювань і регламент ескалації, проводимо тренування на навчальних кейсах.

Після запуску перші тижні ведемо супровід і правимо чутливість за фактичною статистикою — так система залишається робочою, коли ринок змінює активність.

Комплект постачання: правила відбору подій, схеми потоків, регламенти

Здаємо не лише працюючий сервіс, а й усе, чим він управляється: правила відбору whale-транзакцій, схеми потоків, доступи та регламенти залишаються у вашому репозиторії.

Черговий інженер змінює поріг за сумою або додає адресу біржі без нашої участі — правка проходить перевірку та розкочується як звичайний реліз.

  • Конфігурація правил відбору. Окремий файл із порогами за сумою, числом підтверджень і типом активу, білі списки біржових і кастодіальних адрес, правила на конкретну мережу. Версіонується разом із кодом — видно, хто і коли змінював поріг.
  • Схема потоків даних. Шлях від джерела (вузол або сторонній провайдер) до черги оповіщень: точки відмови, затримка доставки, поведінка при обриві зв'язку, повторна доставка та дедуплікація.
  • Політики доступу. Ролі на перегляд і на правку правил, ключі до джерел даних і каналів оповіщення — у сховищі секретів, з ротацією та журналом звернень.
  • Регламент чергування. Куди і як надходить спрацювання, хто ескалює, вікна тиші, порядок вимкнення шумного правила та розбору хибних подій.
  • Інструкція щодо інцидентів. Втрата з'єднання з джерелом, пропуск вікна та його добір, сплеск хибних спрацювань, відкат правила до попередньої версії.
  • Перевірки на історичних даних. Набір тестів на минулих подіях: правило, яке завалює чергу шумом, видно ще до виведення в експлуатацію.

Кожен пункт — робоча одиниця, а не опис. Комплект приймається за чек-листом, і після приймання система залишається керованою силами вашої команди, без звернення до нас за кожною зміною порога.

Кейс: скоротили час виявлення великих переказів

Як було

Великі whale-транзакції відстежував аналітик: раз на кілька годин він вручну звіряв адреси з таблиці з публічними оглядачами на кшталт Etherscan. Виявлення залежало від розкладу чергового, частина подій губилася між перевірками, частка покритих подій трималася близько 55–60 %.

Що змінили

Ми прибрали ручний перегляд і зібрали сервіс моніторингу з потоковою обробкою: він підписується на нові блоки, фільтрує перекази за списком адрес і порогом суми, дедуплікує за хешем і складає підтверджені події в чергу.

Алерт надходить у месенджер разом із посиланням на транзакцію, сумою та адресою контрагента — перевірка займає секунди.

Окремо закрили обриви зв'язку: повторні спроби, журнал пропущених блоків і довантаження після перепідключення. Список адрес і пороги описані конфігурацією — нову пару «адреса — поріг» додаємо без правки коду.

Що стало

  • Час виявлення — 15–40 секунд від появи блока в мережі замість кількох годин.
  • Частка покритих подій — 99 %: пропуски можливі лише на коротких перебудовах ланцюга, і вони довантажуються автоматично.
  • Хибні спрацювання скоротилися: поріг за сумою відсікає дрібні перекази, а підтвердження — ще не зафіксовані.
  • Список відстежуваних адрес зріс у рази за того самого складу чергових.

Навантаження аналітика змістилося з пошуку подій на розбір: спірні спрацювання надходять із готовим контекстом, а журнал доставки підтверджує, що жоден алерт не загубився.

Чим потокова обробка відрізняється від періодичної вибірки блоків

Потокова обробка — це постійна підписка на події вузла: сервіс отримує повідомлення про новий блок і про whale-транзакції в пулі непідтверджених, розбирає їх і одразу ставить алерт у чергу.

Затримка оповіщення вимірюється секундами — від потрапляння транзакції в блок до повідомлення споживачу. Періодична вибірка влаштована інакше: задача раз на N секунд запитує останні блоки та звіряє з курсором, тому між подією та алертом завжди лежить вікно опитування.

Навантаження на вузли розподіляється по-різному. Опитування б'є по вузлу з частотою розкладу і майже не пов'язане з активністю мережі: у спокійні години воно витрачає той самий ресурс, що й у пікові, а частий інтервал упирається в ліміти провайдера та чергу запитів.

Підписка віддає навантаження пропорційно реальній активності — тиха мережа дає тихий канал, сплеск whale-транзакцій збільшує потік повідомлень, але потребує постійного з'єднання та перевірки пропусків після розриву.

Повнота історії теж різниться. При опитуванні легко проскочити події: інтервал більший за час блока — частина даних губиться між ітераціями та добирається перебором.

Потокова обробка бачить кожну подію, але вразлива до реорганізацій ланцюга — блок, за яким уже пішов алерт, може бути скасований, тому підтвердження рахують за глибиною, а не за фактом надходження.

Практичний вибір: потік дає затримку оповіщення в одиниці секунд, опитування простіше в підтримці та годиться там, де затримка в хвилини допустима. На практиці схеми часто поєднують — потік для сигналів, опитування для звірки та добору історії.

Технічні сумніви: повнота даних, затримки, хибні спрацювання

Ці сумніви закономірні: потік whale-транзакцій іде безперервно, у нього немає «кінця дня», і розрив виявляється вже за фактом — коли кошти пішли. Нижче — розбір частих питань та інженерна механіка за кожною відповіддю.

Як виключити пропуск даних у потоці?

Джерело читається з відміткою останнього обробленого блока, а не «в реальному часі наосліп». Після збою вікно висот перечитується заново, повторні події гасяться за хешем: пропуск даних видно як розрив нумерації та закривається автоматично.

Що відбувається під час перезапуску вузла?

Обробник не тримає стан у пам'яті: позиція пишеться в надійне сховище на кожному блоці. Після перезапуску вузла він читає її та дочитує хвіст, тому пропуск виключено — максимум виникає повторна доставка, яку знімає дедуплікація.

Наскільки сильний шум від хибних спрацювань?

Поріг рахується не за однією сумою, а за комбінацією: розмір переказу, ліквідність пари, тип адреси та вікно часу. Правила калібруються на історичних даних до запуску, тому хибні спрацювання залишаються поодинокими та не перетворюють канал на шум.

Скільки роботи додати новий блокчейн?

Транзакція приводиться до спільної схеми адаптером джерела — правила, доставка та звіти вище за потоком не змінюються. Додавання нового блокчейну зводиться до адаптера та прогону на історичному інтервалі для звірки повноти.

Обговоримо задачу: зберемо схему моніторингу під ваші потоки

Щоб схема моніторингу лягла на ваші потоки, а не навпаки, починаємо з вхідних даних по потоках. Достатньо переліку адрес і розуміння, які рухи коштів для вас значущі — джерела даних, пороги та канали доставки підбираємо під це.

Вхідні дані визначають, скільки джерел підключаємо, як налаштовуємо дедуплікацію і де ставимо поріг, щоб сигнали залишалися читабельними. На першому розборі фіксуємо:

  • Перелік мереж і адрес: гаманці проєкту, казначейські, холодні сховища, адреси контрагентів.
  • Поріг значущості: від якої суми або частки від балансу транзакція вважається whale-транзакцією.
  • Типи подій: вхідні та вихідні перекази, поповнення біржових адрес, великі обміни.
  • Канали та швидкість: месенджер, пошта, виклик на ваш сервер, допустима затримка сигналу.
  • Пріоритети та захист від шуму: що ескалюємо одразу, що збираємо у зведення і хто його отримує.
  • Доступи: публічні дані або підключення ваших вузлів і ключів до провайдерів.
  • Історія: глибина зберігання подій і формат вивантажень для звітності.

За підсумками розбору повертаємося з оцінкою робіт і планом впровадження: етапи, строки, зона відповідальності сторін. Опишіть задачу — обговоримо її та зберемо схему під ваші потоки.

Напрямки блокчейн-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142