getblocktemplate उम्मीदवार ब्लॉक बनाने का डेटा लेने या प्रस्ताव जाँचने की JSON-RPC विधि है। यह विवरण Bitcoin Core 29 पर आधारित है; किसी कार्यान्वयन का व्यवहार इसी प्रोटोकॉल के सभी सर्वरों पर स्वतः लागू नहीं होता।
डिफ़ॉल्ट mode, template है। उत्तर माइनिंग सॉफ़्टवेयर को डेटा देता है, मिला हुआ proof of work नहीं। यह अनुरोध भुगतान पता बताने वाला पैरामीटर नहीं लेता; coinbase बनाना और समाधान खोजना बाद के कदम हैं। [Bitcoin Core 29 — getblocktemplate RPC]
Bitcoin Core v29.0 अनुरोध की rules में segwit और signet नेटवर्क पर signet भी माँगता है। स्ट्रिंग लिखना संबंधित नियम लागू करने का विकल्प नहीं है। capabilities इंटरफ़ेस सुविधाएँ बताता है और अनिवार्य rules की जगह नहीं ले सकता। [Bitcoin Core v29.0 — Mining RPC implementation]
BIP 145, witness रहित txid और witness सहित hash में अंतर करता है। मुख्य Merkle root में txid इस्तेमाल होता है, witness हैश नहीं। data में सीरियलाइज़ किया हुआ लेनदेन हेक्साडेसिमल में होता है; केवल पहचानकर्ता उसके पूरे बाइट नहीं है। [BIP 145 — SegWit template fields]
क्लाइंट मिले हुए longpollid को अगले प्रतीक्षारत अनुरोध में लौटाता है। BIP 22 उसका निश्चित अर्थ मानने से मना करता है, इसलिए पोर्टेबल क्लाइंट उसे अपने बनाए प्रारूप की तरह न खोले। Long polling को लंबा टाइमआउट और बार-बार विफलता पर विराम चाहिए, लगातार तत्काल पुनःप्रयास नहीं। [BIP 22 — Long polling]
Bitcoin Core v29.0 टेम्पलेट कैश करता है: पिछला ब्लॉक बदलने पर, या बनाने के पाँच सेकंड से अधिक बाद mempool बदलने पर उसे बदलता है। हेडर समय अलग से अद्यतन होता है। इसलिए हर कॉल नवीनतम लेनदेन शामिल करे या स्वतंत्र माइनिंग काम बनाए, यह आवश्यक नहीं। [Bitcoin Core v29.0 — Mining RPC implementation]
proposal मोड में data पूरा उम्मीदवार ब्लॉक हेक्साडेसिमल में रखता है। Core, Merkle root जाँचता है लेकिन वैध proof of work आवश्यक नहीं होता। inconclusive-not-best-prevblk का अर्थ पिछला ब्लॉक मौजूदा चेन सिरे से अलग होना है; यह प्रस्ताव की वैधता का पूर्ण आकलन नहीं है। [Bitcoin Core v29.0 — Mining RPC implementation]
submitblock को पूरा ब्लॉक hexdata के रूप में मिलता है, केवल हैश नहीं। Bitcoin Core 29 स्वीकार करने पर null लौटाता है; अन्यथा परिणाम की स्ट्रिंग लौटा सकता है। वैकल्पिक dummy अनदेखा होता है। नोड की स्वीकृति सक्रिय चेन में स्थायी पुष्टि की गारंटी नहीं है। [Bitcoin Core 29 — submitblock RPC]
mainnet पर Bitcoin Core v29.0 जुड़े हुए पीयर न होने या initial block download के दौरान टेम्पलेट नहीं देता। यह नोड की तैयारी बताता है, किसी विशेष ब्लॉक की अमान्यता नहीं। इन्हें सत्यापन अस्वीकृति के कारणों और सामान्य रूप से प्रतीक्षा कर रहे long polling से अलग समझें। [Bitcoin Core v29.0 — Mining RPC implementation]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें Block Template, बिटकॉइन माइनिंग, Stratum V2, Extranonce. इस प्रविष्टि का उल्लेख यहाँ भी है ASIC Miner, Solo Mining, Job Negotiation.