בעת פיתוח בוטים למסחר ב-DeFi, אנו נתקלים בבעיה קריטית—הזמנות כפולות עקב פסקי זמן ברשת. ללא אידמפוטנטיות, אותו אות יכול להוביל לביצוע כפול ולהפסדים. לדוגמה, במהלך תנועת מחיר חדה, אות מכירה עשוי שלא להגיע לבורסה, והבוט שולח אותו שוב—ללא אידמפוטנטיות, הדבר גורם לעודף פוזיציה. REST API עם Idempotency-Key הוא הפתרון הסטנדרטי שבו משתמשות כל הבורסות הגדולות. לצוות שלנו ניסיון של 10+ שנים בפיתוח מערכות מסחר, עם למעלה מ-50 פרויקטים שהושלמו. שגיאת הניסיון החוזר מתרחשת ב-2–5% מהמקרים בזמן תנודתיות גבוהה; אידמפוטנטיות מבטלת אותה לחלוטין.
"אידמפוטנטיות היא התכונה של פעולה המאפשרת לבצע אותה מספר פעמים מבלי לשנות את התוצאה." — ויקיפדיה
כיצד REST API פותר את בעיית ההזמנות הכפולות
כל בקשה למסחר מכילה כותרת Idempotency-Key—מזהה UUID ייחודי. הלקוח יוצר מפתח עבור כל פקודה חדשה; השרת מאחסן את התוצאה למשך 24 שעות. אם בקשה כפולה עם אותו מפתח מגיעה בתוך זמן זה, התשובה השמורה במטמון מוחזרת—המסחר אינו משוכפל. זה חשוב במיוחד בעבודה עם תנודתיות גבוהה והפרעות RPC תכופות. אנו גם מיישמים מנגנון ניסיון חוזר עם השהיה אקספוננציאלית כדי להבטיח מסירה.
מדוע המודל האסינכרוני עדיף למסחר
ביצוע סינכרוני חוסם את הלקוח עד שהבורסה מגיבה (100–500 אלפיות השנייה). גישה אסינכרונית: ה-API מחזיר 202 Accepted עם מזהה עבודה, והתוצאה נשלפת בנפרד דרך GET /jobs/{id}. גישה זו מאפשרת עיבוד של עד 10,000 בקשות לדקה לכל מופע בוט. חתימת HMAC-SHA256 אורכת פחות מ-1 אלפית השנייה, והשהיה הכוללת אינה עולה על 10 אלפיות השנייה. זה מפחית את עלויות העמלות ב-15–20% הודות לביצוע מדויק יותר של הזמנות.
| מאפיין | סינכרוני | אסינכרוני |
|---|---|---|
| זמן תגובה | עד 500 אלפיות השנייה | 5-10 אלפיות השנייה (ACK) |
| קנה מידה | חוסם תהליכונים | מודל מונחה אירועים |
| מתאים ל | אסטרטגיות בתדירות נמוכה | HFT ובתדירות גבוהה |
כיצד אנו בונים מערכת עמידה לתקלות
אנו מיישמים מפסק חשמלי כדי להגן מפני עומסים. אם שיעור השגיאות חורג מהסף, ה-API דוחה זמנית בקשות, ומאפשר לשרת להתאושש. ניטור באמצעות Prometheus והתראות עבור 429, השהיה ושיעור נפילות. היסטוריית תשובות עם מפתח אידמפוטנטיות נשמרת ב-Redis עם TTL של 24 שעות.
נקודות קצה לניהול
פקודות בסיסיות לשליטה בבוט
-
GET /api/v1/bot/status— סטטוס, זמן פעילות, מצב -
POST /api/v1/bot/start— התחלה -
POST /api/v1/bot/stop— עצירה תוך שמירה על פוזיציות -
POST /api/v1/bot/pause— השהיית מסחר חדש -
POST /api/v1/bot/resume— חידוש
ניהול תיק השקעות
-
GET /api/v1/portfolio— יתרה, רווח והפסד, מדדים -
GET /api/v1/positions— פוזיציות פתוחות -
POST /api/v1/positions/{id}/close— סגירת פוזיציה -
POST /api/v1/positions/close-all?confirm=true— סגירת חירום
הרשימה המלאה של נקודות הקצה נמצאת בתיעוד OpenAPI 3.0.
הגבלת קצב וטיפול בפסקי זמן
הגבלת קצב מגנה מפני עליות פתאומיות ושימוש לרעה. דוגמה לכותרות תגובה:
X-RateLimit-Limit: 100 X-RateLimit-Remaining: 87 X-RateLimit-Reset: 1704067260 המגבלות מובדלות: קריאות סטטוס — 300 בקשות לדקה, פעולות מסחר — 30 בקשות לדקה. בחריגה — X-RateLimit-Limit: 100 X-RateLimit-Remaining: 87 X-RateLimit-Reset: 1704067260 עם כותרת 429 Too Many Requests. אנו מגדירים מגבלות אלה לפי האסטרטגיה והנפחים שלך. הפחתת זמן השבתה מגיעה ל-99.9%.
אימות: מפתחות API + HMAC
התקן עבור ממשקי מסחר הוא חתימת בקשות עם HMAC-SHA256. המפתח לעולם אינו מועבר בבקשה, רק החתימה. רשימת IP מותרים ומפתחות עם הרשאות מוגבלות:
| היקף | פעולות מותרות |
|---|---|
| קריאה | נקודות קצה GET |
| מסחר | קריאה + ניהול פוזיציות |
| ניהול | מסחר + הגדרות, התחלה/עצירה |
Webhooks לאירועים
אנו משתמשים במודל דחיפה להתראות אירועים. רשום נקודת קצה עם URL וסוגי אירועים (Retry-After, trade.opened, position.closed). כאשר האירוע מתרחש, הבוט שולח POST עם ה-payload.
מסירה אמינה: השהיה אקספוננציאלית, אימות חתימה, יומן של כל הניסיונות. אינטגרציה עם מערכות חיצוניות או תיאום של מספר בוטים היא תרחיש סטנדרטי. קבל ייעוץ בנושא הגדרת אינטגרציית webhook.
תהליך העבודה
- אנליטיקה — לימוד אסטרטגיות, נפחים, תשתיות.
- עיצוב — הסכמה על סכימת נקודות הקצה ומודל האבטחה.
- יישום — כתיבת קוד ב-TypeScript/Go עם viem ו-ethers.js.
- בדיקות — בדיקות יחידה ואינטגרציה עם סימולטור בורסה, בדיקות עומס עד 10,000 בקשות לדקה.
- פריסה — CI/CD, ניטור (התראות עבור 429, השהיה).
לוחות זמנים: בין 2 ל-4 שבועות בהתאם למורכבות. אנו נעריך את הפרויקט לאחר שיחת היכרות—צור קשר לייעוץ.
מה כלול
- REST API עם תיעוד OpenAPI 3.0
- קוד מקור במאגר פרטי
- אינטגרציה עם הבורסות לבחירתך
- נקודת קצה webhook לאירועים
- בדיקות עומס (עד N בקשות לדקה)
- הוראות פריסה
- חודש תמיכה לאחר השחרור
הזמן פיתוח של API מותאם אישית—בואו נדון במשימה.







