הגדרת Tenderly Simulator: פרופיל גז, סימולציית Fork, CI

ניפוי באגים בחוזים חכמים על mainnet הופך פעמים רבות למרדף אחר שגיאות ללא הקשר מלא, ו-forks מקומיים חסרים את הפרטים הדרושים. אנו מגדירים את Tenderly Simulator כך שתקבלו execution trace מלא, gas profiling וסימולציית state-override בקריאת API אחת. הצוות שלנו מספק את הפרויקט turnkey—מהאינטגרציה ועד הגדרת CI—ומבטיח פעולה אמינה ותמיכה מתמשכת.

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

שאלות נפוצות

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

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1481
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1335
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1034
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1293
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    738
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1031

ביליתם שעות בניפוי באג של חדירה חוזרת (reentrancy) על Fork מקומי של Hardhat, ובכל זאת ברשת המרכזית (mainnet) זה עדיין נשבר? Tenderly Simulator פותר את זה: מעקב ביצוע מלא עם שמות פונקציות, פרופיל גז לכל קריאה, ו-state override בקריאת API אחת. ההתקנה אורכת יום עבודה אחד ומקצרת את זמן הניפוי ב-30-50%.

אילו בעיות Tenderly Simulator פותר?

סיכון להתקפות חדירה חוזרת והלוואות בזק—ברשת המרכזית אי אפשר פשוט לקרוא לחוזה ולקבל מעקב. Tenderly Simulator מספק מעקב מחסנית מלא עם שמות פונקציות, קריטי לביקורת. אופטימיזציית גז—אתם רואים את הגז של כל קריאה פנימית, לא רק את המגבלה הכוללת. שגיאות חישוב AMM—סימולציה עם override ליתרות מאגר מאפשרת ניפוי של החלקה (slippage) ואובדן קבוע (impermanent loss). אנחנו משתמשים ב-Tenderly ביותר מ-50 פרויקטים, מ-ERC-4626 vaults ועד Compound forks. אנחנו מבטיחים שאחרי ההתקנה, הצוות שלכם יוכל לתפוס 90% מהשגיאות לפני הפריסה.

השוואה: Tenderly Simulator לעומת Hardhat fork

מאפיין Hardhat --fork Tenderly Simulator
פריסה EVM מקומי API בענן
State override דרך קוד בדיקה JSON בבקשה
פרופיל גז מגבלה כוללת לכל קריאה
Bundle לא כן
Virtual TestNet לא כן
מוכן ל-CI נדרש Node ב-pipeline קריאת API פשוטה

Tenderly Simulator מהיר פי 10 להקמה מאשר Hardhat fork מקומי ומספק מעקב מפורט פי 5. Fork מקומי טוב לבדיקות ראשוניות, אבל לתרחישים מורכבים אנחנו ממליצים על Simulator.

איך Tenderly Simulator פותר את בעיית הניפוי?

דמיינו: החוזה החכם שלכם על Polygon זורק OutOfGas. מקומית אי אפשר לשחזר את מצב המאגר המדויק בגלל תצורה שונה. Tenderly Simulator מאפשר לכם לעקוף את האחסון של המאגר (למשל, לדמות שינויי רזרבות), להגדיר יתרת משתמש של 1000 MATIC, להריץ את הסימולציה, ולראות בדיוק איזו קריאה צרכה גז. זה מקצר את זמן הניפוי משעות לדקות. עם Tenderly Simulator, זמן האבחון של שגיאות OutOfGas יורד משעתיים ל-15 דקות.

למה Virtual TestNets עדיפים על Fork מקומי?

Virtual TestNet הוא Fork מתמשך של הרשת המרכזית עם כתובת RPC. אתם מתחברים אליו דרך MetaMask או wagmi כרשת רגילה. החזית (frontend) עובדת עם חוזים אמיתיים, ואתם רואים אינטראקציות בממשק המשתמש. המצב מתאפס לפי לוח זמנים—אידיאלי ל-CI, שבו כל ריצת בדיקה מתחילה עם מצב נקי. אין צורך להפעיל Anvil או לבזבז זמן על תצורת Hardhat. Virtual TestNet נוצר עם פקודה אחת וזמין דרך כתובת RPC, מהיר ב-80% מהקמת Fork מקומי.

מאפיין Virtual TestNet Fork מקומי
פריסה פקודה אחת (CLI) התקנת Hardhat
משך חיים לפי לוח זמנים משך חיי התהליך
נגישות לחזית כתובת RPC localhost:8545
איפוס מצב לפי דרישה הפעלה מחדש של התהליך

Tenderly Simulator תומך בסימולציית bundle, המאפשרת לבדוק תרחישים מרובי-שלבים.

התקנת API

סימולציה בסיסית דרך Tenderly API:

const TENDERLY_API = 'https://api.tenderly.co/api/v1';
const headers = {
  'X-Access-Key': process.env.TENDERLY_ACCESS_KEY!,
  'Content-Type': 'application/json'
};

const response = await fetch(
  `${TENDERLY_API}/account/${TENDERLY_USER}/project/${TENDERLY_PROJECT}/simulate`,
  {
    method: 'POST',
    headers,
    body: JSON.stringify({
      network_id: '1', // mainnet
      from: userAddress,
      to: contractAddress,
      input: encodedCalldata,
      gas: 500000,
      gas_price: '0',
      value: '0',
      save: true, // сохранить симуляцию в дашборде
      state_objects: { // override баланса пользователя
        [userAddress]: {
          balance: '0xDE0B6B3A7640000' // 1 ETH
        }
      }
    })
  }
);

const simulation = await response.json();
console.log('Gas used:', simulation.transaction.gas_used);
console.log('Status:', simulation.transaction.status); // true/false

התקנת Tenderly Simulator שלב-אחר-שלב ל-CI

שלב 1. צרו פרויקט ב-Tenderly והשיגו Access Key.

שלב 2. כתבו סקריפט סימולציה לעסקאות טיפוסיות: deploy, swap, staking. השתמשו ב-state_objects למקרי קצה.

שלב 3. הוסיפו שלב ל-pipeline שלכם (GitHub Actions, GitLab CI, או CircleCI) עם המשתנה TENDERLY_ACCESS_KEY. במקרה של כישלון סימולציה, ה-pipeline נעצר.

דוגמה לתצורת GitHub Actions
- name: Simulate deployment transaction env: TENDERLY_ACCESS_KEY: ${{ secrets.TENDERLY_ACCESS_KEY }} run: npx ts-node scripts/simulate-deploy.ts 

Virtual TestNets: תחליף ל-Fork מקומי

Tenderly Virtual TestNets (לשעבר Tenderly Forks) הם Forks מתמשכים של הרשת המרכזית עם נקודת קצה RPC. התחברו דרך MetaMask או wagmi כרשת רגילה ובדקו ישירות בדפדפן עם ממשק משתמש אמיתי. צרו Virtual TestNet דרך CLI:

tenderly devnet spawn-rpc \ --template mainnet \ --project my-project \ --account my-account 

מחזיר כתובת RPC. הוסיפו לתצורת wagmi:

const virtualMainnet = defineChain({
  id: 1,
  name: 'Virtual Mainnet',
  rpcUrls: {
    default: {
      http: [process.env.TENDERLY_VIRTUAL_TESTNET_RPC!]
    }
  }
});

המצב מתאפס לפי בקשה או לפי לוח זמנים—נוח ל-CI, שבו כל ריצת בדיקה מתחילה עם מצב נקי.

מה כלול בהתקנה

אנחנו מספקים תצורת פרויקט Tenderly ומפתחות API (עם גישה ללוח הבקרה), סקריפטים לסימולציה של 3-5 עסקאות טיפוסיות, אינטגרציית CI (GitHub Actions, GitLab CI, CircleCI), Virtual TestNet עבור ה-Fork של הרשת המרכזית שלכם, ותיעוד. קבלו ייעוץ—ההתקנה תקצר את זמן הבדיקות ב-30-50% ותפחית את הסיכון לדוחות באגים יקרים. צרו קשר להערכת הפרויקט שלכם—נבחר את התצורה האופטימלית למחסנית הטכנולוגית ולתקציב שלכם.

ניסיון ואחריות

10+ שנים בפיתוח בלוקצ'יין, 50+ פרויקטים על Ethereum, Polygon, Arbitrum. אנחנו מבטיחים שהתקנת Tenderly תקצר את זמן הבדיקות ב-30-50% ותפחית את הסיכון לדוחות באגים יקרים. בקשו התקנה—קבלו ייעוץ חינם.