Validator monitoring Web3 Action template
Project अवलोकन
इस project का उद्देश्य एक system सेट अप करना है जो Lido validator exit requests की निगरानी करता है और विशिष्ट शर्तें पूरी होने पर notifications भेजता है। यहाँ project के flow का एक quick breakdown है:- प्रासंगिक on-chain events पर subscribe करें: Web3 Action Ethereum mainnet पर Lido contract से
ValidatorExitRequestevents के लिए listen करता है। - Tenderly API का उपयोग करके event को Decode करें: जब कोई event detect होता है, तो यह Tenderly API का उपयोग करके transaction विवरण प्राप्त करता है।
- रुचि के विशिष्ट events के लिए Filter करें:
ValidatorExitRequestevent का आगे मूल्यांकन तब किया जाता है जबstakingModuleId1 है औरnodeOperatorId14 है। - प्रतिक्रिया दें: यदि रुचि का
ValidatorExitRequestहुआ है, तो Web3 Action validator exit request के बारे में विवरण के साथ निर्दिष्ट Telegram channel पर एक notification भेजता है।
पूर्वापेक्षाएँ
शुरू करने से पहले, सुनिश्चित करें कि आपके पास निम्नलिखित है:- Tenderly CLI स्थापित
- Node.js (v20 वर्तमान में समर्थित)
- npm
- एक Telegram bot token और channel ID
- एक Tenderly account और project
Setup
आइए अपने Lido Validator Exit Notification system को सेट अप करने के चरणों से गुज़रें:git clone https://github.com/Tenderly/tenderly-lido-validator-monitoring-solution
cd tenderly-lido-validator-monitoring-solution
account_id: "<YOUR_ACCOUNT_ID>"
actions:
<YOUR_ACCOUNT_ID>/<YOUR_PROJECT_SLUG>:
runtime: v2
sources: actions
specs:
action_name:
description: Get a notification when condition matches on Lido tx
function: lidoEvents:subscribeToLidoValidatorExitRequestFn
execution_type: parallel
trigger:
type: transaction
transaction:
status:
- mined
filters:
- network: 1
eventEmitted:
contract:
address: 0x0de4ea0184c2ad0baca7183356aea5b8d5bf5c6e
name: ValidatorExitRequest
project_slug: "<YOUR_PROJECT_SLUG>"
<YOUR_ACCOUNT_ID> और <YOUR_PROJECT_SLUG> को अपने वास्तविक Tenderly Account Name और Project Slug से बदलना सुनिश्चित करें।action deploy करने और वांछित contract की निगरानी करने में सक्षम होने के लिए, आपको उस contract को project में जोड़ने की आवश्यकता है।
BEARER: आपकी Tenderly API bearer tokenBOT-TOKEN: आपका Telegram bot tokenCHANNEL-ID: आपकी Telegram channel IDsecrets जोड़ने के लिए, अपने project के भीतर Web3 Actions पर जाएँ और Secrets अनुभाग पर navigate करें।
यह कैसे काम करता है
आइएlidoEvents.ts file के main components का breakdown करें:
showLineNumbers
subscribeToLidoValidatorExitRequestFn function हमारी Web3 Action के लिए मुख्य entry point है। यह निम्न tasks को संभालता है:
- Tenderly API का उपयोग करके transaction विवरण retrieve करता है
- जाँच करता है कि
stakingModuleId1 है औरnodeOperatorId14 है - यदि शर्त पूरी हो जाती है, तो निर्दिष्ट Telegram channel पर notification भेजता है
Transaction Trace के लिए Tenderly API
इस Web3 Action का एक महत्वपूर्ण हिस्सा Tenderly API का उपयोग करके transaction trace retrieve करना है। यहाँ उपयोग किया गया API endpoint है:https://api.tenderly.co/api/v1/public-contract/: Tenderly के public contract API के लिए base URL${network}: network identifier (जैसे Ethereum Mainnet के लिए1)${txHash}: उस transaction का hash जिसमें हमारी रुचि है
- सभी emit किए गए events और उनके parameters
- transaction के दौरान किए गए internal calls
- हुए state changes
ValidatorExitRequest event को खोजने और प्रासंगिक जानकारी extract करने के लिए करते हैं:
showLineNumbers
transaction traces के लिए Tenderly API का उपयोग करना on-chain events के बारे में detailed जानकारी access करने का एक शक्तिशाली तरीका प्रदान करता है, बिना blockchain के साथ सीधे interact किए या अपना खुद का node सेट अप किए।
Customization
Lido validator exits के लिए, रुचि के events कोstakingModuleId parameter के मान 1, और nodeOperatorId के मान 14 द्वारा पहचाना जाता है।
इन filtering शर्तों को modify करने या निगरानी के लिए अधिक events जोड़ने के लिए:
lidoEvents.tsfile को edit करें- अपनी आवश्यकताओं से मेल खाने के लिए
ifstatement में condition check को update करें - message format को modify करें या आवश्यकतानुसार अतिरिक्त जानकारी जोड़ें
stakingModuleId और nodeOperatorId शर्तों को बदलने के लिए:
showLineNumbers
Monitoring और Troubleshooting
यह सुनिश्चित करने के लिए कि आपकी Web3 Action सही तरीके से काम कर रही है:- Tenderly dashboard में अपनी Web3 Action executions की निगरानी करें
- किसी भी error संदेशों या execution विवरण के लिए Tenderly logs की जाँच करें
- सुनिश्चित करें कि आपके Telegram bot को निर्दिष्ट channel पर संदेश भेजने की अनुमति है