226 / 691XNONCE

Extranonce

माइनिंग के लिए अतिरिक्त परिवर्तनशील डेटा

Extranonce coinbase और हेडर में उसकी प्रतिबद्धता बदलकर खोज क्षेत्र बढ़ाता है। यह हेडर का एक और स्वतंत्र फ़ील्ड नहीं है, और पूल हर माइनर को इसके सभी बाइट बदलने की छूट नहीं देता।

Extranonce परिवर्तनशील डेटा है जो आम तौर पर coinbase लेनदेन के इनपुट में डाला जाता है। इसे बदलने से Merkle root और हेडर हैशिंग के लिए नया इनपुट मिलता है, जबकि हेडर का 32-बिट nonce फ़ील्ड नहीं बढ़ता।

nonce फ़ील्ड 32 बिट का है और बाकी हेडर समान होने पर 2^32 मान देता है। Extranonce इस फ़ील्ड को लंबा नहीं करता। यह अन्य डेटा बदलता है ताकि माइनर दूसरा हेडर बनाकर nonce मान फिर आजमा सके। [Bitcoin Developer Guide — Mining and nonce space]

coinbase का extranonce बदलने से उसका सीरियलाइज़ेशन और TXID बदलते हैं; फिर संबंधित Merkle ट्री शाखा और हेडर का Merkle root दोबारा गणना किए जाते हैं। अन्य लेनदेन बदलना जरूरी नहीं, लेकिन पुराना रूट बिना पुनर्गणना के नहीं रख सकते। [Bitcoin Developer Guide — Mining and nonce space]

दो पूरी तरह स्वतंत्र बाइट 2^16 विकल्प देते हैं। 32-बिट nonce और बाकी स्थिर डेटा वाले मॉडल में इससे 2^48 इनपुट संयोजन मिलते हैं। यह अलग प्रयासों का क्षेत्र है, मिले ब्लॉकों की संख्या या पूरा खोजने के बाद सफलता की गारंटी नहीं। [Bitcoin Developer Guide — Mining and nonce space]

BIP 34 coinbase के scriptSig की शुरुआत में सही एन्कोड की गई ब्लॉक ऊँचाई माँगता है। 100-बाइट सीमा पूरे coinbase scriptSig पर है, केवल extranonce पर नहीं। स्वतंत्र क्षेत्र ऊँचाई को न मिटाए और लेनदेन प्रारूप का उल्लंघन न करे। [BIP 34 — Height in coinbase] [Bitcoin Developer Reference — Coinbase input]

Stratum V2 extended extranonce को स्थिर upstream प्रीफ़िक्स, स्थानीय आरक्षित भाग और downstream क्षेत्र में बाँटता है। इससे व्यर्थ की दोहराव वाली खोज बचती है। निर्धारित extranonce_prefix अपने आप अंतिम माइनर के लिए स्वतंत्र रूप से बदलने योग्य क्षेत्र नहीं बन जाता। [Stratum V2 — Extended extranonce and jobs]

SubmitSharesExtended में coinbase को coinbase_tx_prefix, extranonce_prefix, extranonce और coinbase_tx_suffix के क्रम में जोड़ते हैं। भेजे गए extranonce बाइट तय लंबाई के होने चाहिए। उसी संख्या को कम बाइट में लिखने से जरूरी नहीं कि वही लेनदेन बने। [Stratum V2 — Extended extranonce and jobs]

Stratum V2 का Standard Job स्थिर Merkle root इस्तेमाल करता है; केवल version, nonce और nTime के अनुमत हिस्से बदलते हैं। इसलिए मानक उपकरण extended चैनल की तरह स्वयं extranonce नहीं भेजता। ऊपरी नोड नया कार्य तैयार करते समय coinbase बदल सकता है। [Stratum V2 — Extended extranonce and jobs]

Stratum V2 का SetExtranoncePrefix उस चैनल पर संदेश के बाद भेजे गए कार्यों पर लागू होता है। परिणाम सही job_id और आवंटित क्षेत्र से जुड़ा रहना चाहिए। नवीनतम प्रीफ़िक्स उस रिकॉर्ड का विकल्प नहीं है जो बताता है कि पुराना परिणाम किस कार्य से आया। [Stratum V2 — Extended extranonce and jobs]

पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Nonce, Merkle tree, Mining Share, Block Template. इस प्रविष्टि का उल्लेख यहाँ भी है ASIC Miner, Block Template, getblocktemplate.

DOC · 001Bitcoin Developer Guide — Mining and nonce spaceदस्तावेज़ ↗DOC · 002Stratum V2 — Extended extranonce and jobsविनिर्देश ↗DOC · 003BIP 34 — Height in coinbaseविनिर्देश ↗DOC · 004Bitcoin Developer Reference — Coinbase inputदस्तावेज़ ↗
स्रोत पहले · यह निवेश सलाह नहीं है