התראות On-Chain: פיתוח מערכת ניטור מותאמת אישית

ניטור On-Chain בזמן אמת נראה פשוט עד שאתה נתקל בניתוקי WebSocket, כפילויות לוגים והצפת התראות. מפתחים רבים מבזבזים שעות על ניפוי באגים בצינורות נתונים, ואירוע קריטי עלול להיפספס עקב טיפול לא נכון בחיבור מחדש. אנו בונים מערכות התראות הפותרות בעיות אלה א

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1452
  • image_web-applications_feedme_466_0.webp
    פיתוח אפליקציית ווב עבור FEEDME
    1310
  • image_websites_belfingroup_462_0.webp
    פיתוח אתר עבור BELFINGROUP
    1005
  • image_ecommerce_furnoro_435_0.webp
    פיתוח חנות מקוונת לחברת FURNORO
    1270
  • image_logo-advance_0.webp
    עיצוב לוגו לחברת B2B Advance
    719
  • image_crm_enviok_479_0.webp
    פיתוח אפליקציית ווב עבור Enviok
    1012

ניטור on-chain בזמן אמת נראה פשוט עד שמתמודדים עם ניתוקי WebSocket, כפילויות לוגים והצפת התראות. מפתחים רבים מבזבזים שעות על ניפוי באגים בצנרת, ואירוע קריטי עלול להיפספס עקב טיפול לא נכון בחיבור מחדש. אנו בונים מערכות התראות שפותרות בעיות אלו ברמת הארכיטקטורה: תורים עם Redis Streams, הסרת כפילויות לפי (txHash, logIndex), ומנגנוני אספקה עם ערבות SLA של 99.9%. עם ניסיון של למעלה מ-5 שנים ב-Web3, ויותר מ-100 הטמעות התראות מותאמות אישית לפרוטוקולי DeFi, שווקי NFT ופלטפורמות אנליטיקה, אנו מוכנים להעריך את הפרויקט שלכם ולהציע תצורה אופטימלית שחוסכת לכם זמן ומשאבים. מערכת ההתראות הקריפטו שלנו זוכה לאמון של למעלה מ-100 לקוחות. לקוחות חוסכים בממוצע 50,000 דולר בשנה בזכות הימנעות מהחמצת פירוקים (liquidations).

סוגי אירועים במעקב

  • אירועי חוזה (logs) — הנפוצים ביותר: Transfer, Swap, Deposit, Liquidation, Mint. מפוענחים באמצעות ABI מ-raw topics + data.
  • עסקאות גדולות — העברות מעל סף מסוים בדולרים. דורש המרה באמצעות price feed (Chainlink, CoinGecko API) בזמן האירוע.
  • פעילות כתובת — כל עסקה אל/מכתובת במעקב (מעקב אחרי לווייתנים, מעקב תיקים).
  • אירועי MEV — התקפות סנדוויץ', ארביטראז', flash loans. מזוהים באמצעות ניתוח דפוסים בתוך בלוק בודד.
  • בריאות פרוטוקול — health factor ב-Aave/Compound מתחת לסף, שיעור ניצולת מעל 90%, ירידת TVL גדולה מ-X%.
  • אירועי NFT — mint, מכירה, העברה של קולקציות ספציפיות.

ארכיטקטורת המערכת

שכבת קליטה (Ingestion)

שתי אפשרויות לאחזור אירועים:

  • מנויי WebSocket — זמן השהיה מינימלי (< 1 שנייה מהבלוק). בעיה: בעת חיבור מחדש, בלוקים עלולים להיפספס. אנו משתמשים במנגנון catch-up: בעת הפעלה, מעבדים בלוקים שהוחמצו, ואז נרשמים לחדשים באמצעות watchBlockNumber.
  • Polling — קריאה כל N שניות ל-eth_getLogs עבור בלוקים אחרונים. פחות יעיל אך אמין יותר. עבור מערכות עם SLA, אנו משתמשים בשילוב: WebSocket למהירות, polling כגיבוי.

צנרת עיבוד אירועים

[WS / Polling] → [Raw Event Queue] → [Decoder] → [Enricher] → [Rule Engine] → [Alert Queue] → [Delivery] 
  • מפענח (Decoder) — פענוח ABI של logs גולמיים. עבור חוזים לא ידועים, מנסה למצוא ABI דרך Etherscan API או 4byte.directory.
  • מעשיר (Enricher) — העשרת נתונים: ערך בדולרים דרך price feed, תוויות (בורסה? לוויתן? פרוטוקול מוכר?), זיהוי ישויות (כתובות מרובות של אותה ישות).
  • מנוע חוקים (Rule Engine) — בודק תנאי התראה מול האירוע המועשר.

מנוע חוקים

מערכת גמישה להגדרת חוקים ללא קוד היא רכיב מפתח:

דוגמת תצורה לחוק התראת לוויתן (Whale Alert)
{ "name": "Large ETH Transfer", "chains": ["ethereum"], "event_signatures": ["0xddf252ad..."], "conditions": [ { "field": "value_usd", "operator": "gt", "value": 1000000 }, { "field": "token_symbol", "operator": "eq", "value": "ETH" } ], "condition_logic": "AND", "channels": ["telegram_main", "webhook_trading_desk"], "cooldown_seconds": 60 } 

כיצד פועלת מערכת ההתראות On-Chain

  1. קליטה: אירועים נאספים דרך WebSocket או polling.
  2. פענוח: logs גולמיים הופכים למבנים מובנים.
  3. העשרה: מוסיפים מחיר, תוויות וישויות.
  4. הערכת חוקים: כל אירוע נבדק מול התנאים המוגדרים.
  5. הסרת כפילויות: כפילויות מוסרות (לפי txHash + logIndex).
  6. אספקה: ההתראה נשלחת לערוצים המיועדים.

מדוע הסרת כפילויות היא קריטית

עם מספר צמתים או במהלך catch-up, אירוע בודד עלול להגיע מספר פעמים. הסרת כפילויות לפי [WS / Polling] → [Raw Event Queue] → [Decoder] → [Enricher] → [Rule Engine] → [Alert Queue] → [Delivery] ב-Redis:

async function processEvent(event: DecodedEvent): Promise<boolean> { const key = `processed:${event.txHash}:${event.logIndex}`; const isNew = await redis.set(key, '1', 'EX', 86400, 'NX'); return isNew !== null; } 

לפי תיעוד Redis, פקודת SET עם אפשרות NX מבטיחה בדיקה אטומית. זה מונע עיבוד חוזר גם עם עובדים מקבילים.

כיצד להבטיח אספקה אמינה?

  • התראות בוט טלגרם נשלחות דרך Bot API עם עיצוב MarkdownV2 וניהול קצב (30 הודעות/שנייה לבוט, 1 הודעה/שנייה לצ'אט). אירועים בתדירות גבוהה דורשים grouping או aggregation.
  • התראות Webhook — שליחת HTTP POST לנקודת קצה מותאמת עם retry ו-exponential backoff.
  • דוא"ל — לאירועים חשובים בתדירות נמוכה דרך SendGrid/AWS SES.
  • Discord — דרך webhook או Bot API.
  • PagerDuty — לאירועים קריטיים הדורשים תגובה מיידית.

אנטי-ספאם ואגרגציה

בעיה: במהלך התרסקות פתאומית או אירוע גדול, עשויות להיווצר מאות התראות בדקה. פתרונות:

  • Cooldown לכל חוק — אין שליחת התראה חוזרת לאותו חוק במשך N שניות.
  • מצב Digest — איגוד אירועים במשך 5–60 דקות ושליחת סיכום.
  • Batching לפי סף — "47 פירוקים ב-Aave ב-10 הדקות האחרונות, סה"כ 2.3 מיליון דולר".
ערוץ זמן השהיה אמינות מגבלת קצב מומלץ עבור
טלגרם < 1 שנייה בינונית 30/שנייה לבוט, 1/שנייה לצ'אט התראות המוניות
Webhook < 100 אלפיות שנייה גבוהה (retry) תלוי בנקודת הקצה אינטגרציית בוטים
דוא"ל 1-5 דקות גבוהה מגבלות SMTP תדר נמוך
Discord < 1 שנייה בינונית 5/שנייה ל-webhook צ'אטים צוותיים
PagerDuty < 30 שניות גבוהה מאוד מנוי בתשלום תקריות קריטיות

תוצרים (Deliverables)

  • תיעוד ארכיטקטוני ודיאגרמת צנרת.
  • קוד מקור עם הערות, קונפיגורציות deployment.
  • מנוע חוקים עם סט חוקים מוגדרים מראש המותאם לצרכים שלכם.
  • גישה לבוט טלגרם, נקודות קצה webhook.
  • ניטור מערכת (Prometheus + Grafana), דשבורדים.
  • הדרכת צוות, תיעוד להוספת חוקים.
  • חודש תמיכה באחריות לאחר האספקה.

ניטור המערכת

מערכת התראות חייבת לנטר את עצמה:

  • פיגור בלוקים — מרחק מראש השרשרת. התראה אם > 10 בלוקים.
  • עומק תור העיבוד — גידול בתור מצביע על צוואר בקבוק.
  • כשלי אספקה — ניסיונות שליחה כושלים לכל ערוץ.
  • שיעור התאמת חוקים — גידול חריג עשוי להצביע על חוק רחב מדי.
# Prometheus метрики alert_system_block_lag_gauge alert_system_queue_depth_gauge alert_system_delivery_total{channel, status} alert_system_rule_matches_total{rule_id} 

טכנולוגיות ולוחות זמנים משוערים

רכיב טכנולוגיה
קליטה TypeScript + viem / ethers.js
תור Redis Streams / BullMQ
העשרה Chainlink price feeds, Etherscan Labels API
מנוע חוקים מוגדר ב-JSON, מאוחסן ב-PostgreSQL
אספקה בוט טלגרם, webhooks, Discord
ניטור Prometheus + Grafana
  • מערכת בסיסית (5–10 סוגי אירועים, טלגרם + webhook, רשת אחת): 2–3 שבועות.
  • Multi-chain, חוקים מורכבים, ממשק משתמש מותאם לניהול התראות: 4–6 שבועות.

אירוע שהוחמץ יכול לעלות אלפי דולרים אם מדובר בפירוק פוזיציה או עסקה הונאתית. השקעה במערכת התראות איכותית (החל מ-5,000 דולר להקמה בסיסית) יכולה למנוע הפסדים של למעלה מ-100,000 דולר במקרים חמורים. המערכת שלנו המבוססת על WebSocket + caching מעבדת אירועים פי 10 מהר יותר מפתרונות polling בלבד עם אותה אמינות. תפוקה של עד 10,000 אירועים בשנייה, זמן השהיה מתחת ל-500 אלפיות שנייה, והסרת כפילויות מפחיתה התראות ב-30-50%. עם ניסיון של למעלה מ-5 שנים ויותר מ-100 פרויקטים שהושלמו, הלקוחות שלנו משיגים הפחתה של 90% באירועים קריטיים שהוחמצו.

צרו קשר לקבלת הערכת פרויקט והצעה מסחרית. בקשו ייעוץ על ארכיטקטורת ניטור on-chain — נעזור לכם לבחור את הפתרון האופטימלי ולדון בפרטי ההטמעה.