getblocktemplate ist eine JSON-RPC-Methode für Daten zum Zusammenstellen eines Blockkandidaten oder zur Prüfung eines Vorschlags. Die Beschreibung folgt Bitcoin Core 29; implementationsspezifisches Verhalten gilt nicht automatisch für alle Server dieses Protokolls.
Der voreingestellte mode ist template. Die Antwort liefert Mining-Software Daten, keinen gefundenen proof of work. Diese Anfrage hat keinen Parameter für eine Auszahlungsadresse; Coinbase-Erstellung und Lösungssuche folgen anschließend. [Bitcoin Core 29 — getblocktemplate RPC]
Bitcoin Core v29.0 verlangt segwit in den angefragten rules und signet im signet-Netz. Eine Zeichenfolge ersetzt nicht die Umsetzung der betreffenden Regeln. capabilities beschreibt Schnittstellenfunktionen und kann verpflichtende rules nicht ersetzen. [Bitcoin Core v29.0 — Mining RPC implementation]
BIP 145 unterscheidet txid ohne Witness von hash mit Witness. Die primäre Merkle root verwendet txid, nicht den Witness-Hash. data enthält die serialisierte Transaktion in Hexadezimaldarstellung; ihre Kennung allein enthält nicht die vollständigen Bytes. [BIP 145 — SegWit template fields]
Der Client sendet die erhaltene longpollid mit der nächsten wartenden Anfrage zurück. Nach BIP 22 darf er keine bestimmte Bedeutung voraussetzen; ein portabler Client sollte sie deshalb nicht als eigenes Format zerlegen. Long Polling braucht einen langen Timeout und Pausen nach wiederholten Fehlern statt einer engen Wiederholungsschleife. [BIP 22 — Long polling]
Bitcoin Core v29.0 hält die Vorlage im Cache: Sie ändert sich bei einem anderen Vorgänger oder bei Mempool-Änderungen mehr als fünf Sekunden nach ihrer Erstellung. Die Header-Zeit wird separat aktualisiert. Deshalb enthält nicht jeder Aufruf die neueste Transaktion oder erzeugt unabhängige Mining-Arbeit. [Bitcoin Core v29.0 — Mining RPC implementation]
Im Modus proposal enthält data den vollständigen Blockkandidaten hexadezimal. Core prüft die Merkle root, verlangt aber keinen gültigen proof of work. inconclusive-not-best-prevblk bedeutet einen anderen Vorgänger als die aktuelle Kettenspitze; es ist keine vollständige Gültigkeitsprüfung des Vorschlags. [Bitcoin Core v29.0 — Mining RPC implementation]
submitblock erhält den ganzen Block als hexdata, nicht nur einen Hash. Bitcoin Core 29 liefert bei Annahme null, andernfalls möglicherweise eine Ergebniszeichenfolge. Das optionale dummy wird ignoriert. Annahme durch den Node garantiert keine dauerhafte Bestätigung in der aktiven Kette. [Bitcoin Core 29 — submitblock RPC]
Auf mainnet gibt Bitcoin Core v29.0 ohne verbundene Peers oder während initial block download keine Vorlage aus. Das beschreibt die Bereitschaft des Nodes, nicht die Ungültigkeit eines bestimmten Blocks. Solche Fehler sind von Validierungsablehnungen und normal wartendem Long Polling zu unterscheiden. [Bitcoin Core v29.0 — Mining RPC implementation]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Block Template, Mining, Stratum V2, Extranonce. Auf diesen Eintrag verweisen außerdem Solo Mining, Job Negotiation.