API संदर्भ
इथेरियम API
Core API
गाइड
Ethereum/Trace API/trace_replayBlockTransactions

trace_replayBlockTransactions

trace_replayBlockTransactions विधि एक निर्दिष्ट ब्लॉक में सभी लेनदेनों को रीप्ले करती है और प्रत्येक लेनदेन के लिए विस्तृत ट्रेस जानकारी लौटाती है। यह लेनदेन के निष्पादन प्रवाह में अंतर्दृष्टि प्रदान करता है, जिससे विस्तृत विश्लेषण और डिबगिंग की अनुमति मिलती है।

उपयोग के मामले

  • विशिष्ट ब्लॉक्स में लेनदेन निष्पादन प्रवाह का विश्लेषण करना
  • जटिल स्मार्ट कॉन्ट्रैक्ट इंटरैक्शन को डिबग करना
  • लेनदेन निष्पादन से स्टेट परिवर्तनों को समझना
  • लेनदेन परिणामों का ऑडिट और सत्यापन करना
  • गैस ऑप्टिमाइजेशन रिसर्च करना
  • विफल लेनदेनों की जांच करना
  • ऐतिहासिक ब्लॉक्स का अनुसंधान और विश्लेषण करना
  • विशिष्ट ब्लॉक स्थितियों में कॉन्ट्रैक्ट व्यवहार का परीक्षण करना
  • एक ब्लॉक में कई लेनदेनों में पैटर्न की पहचान करना
  • लेनदेन स्तर पर सहमति नियमों का सत्यापन करना

विधि विवरण

यह विधि विस्तृत ट्रेस जानकारी के साथ एक ब्लॉक में सभी लेनदेनों को रीप्ले करती है।

पैरामीटर:

हेक्स प्रारूप में ब्लॉक संख्या या ब्लॉक टैग (latest, earliest, pending)

प्रतिक्रिया में शामिल करने के लिए ट्रेस प्रकारों की सरणी

रिटर्न:

ब्लॉक में प्रत्येक लेनदेन के लिए ट्रेस परिणामों की सरणी

लेनदेन से आउटपुट डेटा

लेनदेन के कारण होने वाले स्टेट अंतर (यदि अनुरोधित हो)

किसी पते के लिए स्टेट परिवर्तन

ट्रेस ऑब्जेक्ट्स की सरणी

कॉल एक्शन के बारे में विवरण

कॉल का प्रकार (call, delegatecall, आदि)

प्रेषक पता

कॉल के लिए प्रदान किया गया गैस

कॉल के लिए इनपुट डेटा

प्राप्तकर्ता पता

wei में स्थानांतरित मूल्य

कॉल का परिणाम

उपयोग किया गया गैस की मात्रा

कॉल से आउटपुट डेटा

सबट्रेस की संख्या

कॉल ट्री में ट्रेस स्थान का पता पथ

ट्रेस का प्रकार

लेनदेन का हैश

वर्चुअल मशीन निष्पादन ट्रेस (यदि अनुरोधित हो)

निष्पादित हो रहा EVM बाइटकोड

निष्पादित ऑपरेशन्स की सरणी

ऑपरेशन की गैस लागत

ऑपरेशन का निष्पादन परिणाम

प्रोग्राम काउंटर

कॉल सब-एक्जीक्यूशन के बारे में जानकारी

प्रतिक्रिया उदाहरण

{
	"jsonrpc": "2.0",
	"id": 1,
	"result": [
		{
			"output": "0x0000000000000000000000000000000000000000000000000000000000000001",
			"stateDiff": {
				"0x1234567890123456789012345678901234567890": {
					"balance": {
						"*": {
							"from": "0x100",
							"to": "0x110"
						}
					},
					"code": "=",
					"nonce": {
						"*": {
							"from": "0x10",
							"to": "0x11"
						}
					},
					"storage": {
						"0x0000000000000000000000000000000000000000000000000000000000000001": {
							"*": {
								"from": "0x0000000000000000000000000000000000000000000000000000000000000000",
								"to": "0x0000000000000000000000000000000000000000000000000000000000000001"
							}
						}
					}
				}
			},
			"trace": [
				{
					"action": {
						"callType": "call",
						"from": "0x71c7656ec7ab88b098defb751b7401b5f6d8976f",
						"gas": "0x4c40d",
						"input": "0xa9059cbb000000000000000000000000ea674fdde714fd979de3edf0f56aa9716b898ec80000000000000000000000000000000000000000000000002b5e3af16b1880000",
						"to": "0xdac17f958d2ee523a2206206994597c13d831ec7",
						"value": "0x0"
					},
					"result": {
						"gasUsed": "0x9868",
						"output": "0x0000000000000000000000000000000000000000000000000000000000000001"
					},
					"subtraces": 0,
					"traceAddress": [],
					"type": "call"
				}
			],
			"transactionHash": "0x69f8de1af3129dc3b1adb5b3c1577476f737f9335f156e177b48c2ed88f3f7c4",
			"vmTrace": {
				"code": "0x60606040...",
				"ops": [
					{
						"cost": 3,
						"ex": {
							"mem": null,
							"push": ["0x60"],
							"store": null,
							"used": 16723979
						},
						"pc": 0,
						"sub": null
					}
					// अतिरिक्त ऑप्स...
				]
			}
		}
		// अतिरिक्त लेनदेन ट्रेस...
	]
}

ट्रेस प्रकार

traceTypes पैरामीटर निम्नलिखित मानों की एक सरणी स्वीकार करता है:

  • trace: लेनदेन निष्पादन का बुनियादी ट्रेस
  • vmTrace: EVM निष्पादन का विस्तृत ट्रेस
  • stateDiff: लेनदेन के परिणामस्वरूप होने वाले स्टेट परिवर्तन

आप इन ट्रेस प्रकारों के किसी भी संयोजन का अनुरोध कर सकते हैं।

स्टेट डिफ फॉर्मेट

स्टेट डिफ फॉर्मेट निम्न प्रतीकों का उपयोग करता है:

  • "=": मान में कोई परिवर्तन नहीं
  • "+": मान बनाया गया था
  • "-": मान हटा दिया गया था
  • "*": मान संशोधित किया गया था, "from" और "to" मानों के साथ

VM ट्रेस फॉर्मेट

VM ट्रेस में शामिल है:

  • code: निष्पादित हो रहा EVM बाइटकोड
  • ops: ऑपरेशन्स की सरणी जिसमें शामिल है:
  • cost: ऑपरेशन की गैस लागत
  • ex: निष्पादन परिणाम (मेमोरी, स्टैक, स्टोरेज)
  • pc: प्रोग्राम काउंटर
  • sub: सबकॉल्स के लिए जानकारी

ट्रेस फॉर्मेट

ट्रेस फॉर्मेट निष्पादन पथ दिखाता है:

  • action: कॉल के बारे में विवरण
  • result: कॉल का परिणाम
  • subtraces: चाइल्ड कॉल्स की संख्या
  • traceAddress: कॉल ट्री में स्थिति
  • type: ऑपरेशन का प्रकार (call, create, suicide)

महत्वपूर्ण नोट्स

  • यह विधि कम्प्यूटेशनली गहन है और पूरा होने में समय लग सकता है
  • Ethereum नोड पर ट्रेस API सक्षम होने की आवश्यकता है
  • सभी Ethereum क्लाइंट इस विधि का समर्थन नहीं करते हैं
  • कई लेनदेनों वाले ब्लॉक्स के लिए प्रतिक्रिया आकार बहुत बड़ा हो सकता है
  • बेहतर प्रदर्शन के लिए ट्रेस प्रकारों को सीमित करने पर विचार करें
  • खाली ब्लॉक्स एक खाली सरणी लौटाएंगे
  • ऐतिहासिक ब्लॉक्स को केवल तभी ट्रेस किया जा सकता है जब नोड आर्काइव डेटा बनाए रखता है
  • जटिल लेनदेनों वाले ब्लॉक्स के लिए, प्रतिक्रिया बेहद बड़ी हो सकती है
  • प्रत्येक ट्रेस प्रकार प्रतिक्रिया आकार में महत्वपूर्ण रूप से जोड़ता है
  • विभिन्न क्लाइंट ट्रेस फॉर्मेट के थोड़े भिन्न वेरिएंट लागू कर सकते हैं

ब्लॉक टैग्स

blockNumber पैरामीटर स्वीकार करता है:

  • हेक्स-एनकोडेड ब्लॉक संख्या (0x1b4)
  • latest: सबसे हाल का माइन किया गया ब्लॉक
  • earliest: जेनेसिस ब्लॉक
  • pending: वर्तमान में लंबित ब्लॉक (लेनदेन जो माइन होने का इंतजार कर रहे हैं)

यह भी देखें

  • trace_block - एक ब्लॉक में सभी लेनदेनों के लिए बुनियादी ट्रेस प्राप्त करें
  • trace_call - लेनदेन बनाए बिना कॉल निष्पादित और ट्रेस करें
  • debug_traceTransaction - एक ही लेनदेन के लिए विस्तृत निष्पादन ट्रेस प्राप्त करें
हमें बेहतर बनाने में मदद करें!
इस पृष्ठ को साझा करें और हमें आपके लिए और भी बेहतर उत्पाद बनाने में मदद करें।