228 / 691GBT

getblocktemplate

Antarmuka node untuk memperoleh templat penambangan

getblocktemplate memisahkan pengambilan data, pemeriksaan awal proposal dan pengajuan blok. Klien harus memahami aturan, pengenal transaksi dan respons node; panggilan RPC yang berhasil tidak menambang apa pun dengan sendirinya.

getblocktemplate adalah metode JSON-RPC untuk mendapatkan data penyusunan calon blok atau menilai proposal. Uraian ini mengikuti Bitcoin Core 29; perilaku implementasi tertentu tidak otomatis berlaku untuk semua server protokol yang sama.

mode bawaan adalah template. Respons menyediakan data bagi perangkat lunak penambangan, bukan proof of work yang ditemukan. Permintaan ini tidak menerima parameter alamat pembayaran; penyusunan coinbase dan pencarian solusi dilakukan selanjutnya. [Bitcoin Core 29 — getblocktemplate RPC]

Bitcoin Core v29.0 mewajibkan segwit dalam rules permintaan, serta signet pada jaringan signet. Menulis string tidak menggantikan implementasi aturan terkait. capabilities menjelaskan fitur antarmuka dan tidak menggantikan rules wajib. [Bitcoin Core v29.0 — Mining RPC implementation]

BIP 145 membedakan txid tanpa witness dari hash yang menyertakan witness. Merkle root utama memakai txid, bukan hash witness. data memuat transaksi terserialisasi dalam heksadesimal; pengenalnya saja bukan seluruh byte transaksi. [BIP 145 — SegWit template fields]

Klien mengembalikan longpollid yang diterima pada permintaan menunggu berikutnya. BIP 22 melarang asumsi makna tertentu, sehingga klien portabel tidak semestinya menguraikannya sebagai format sendiri. Long polling memerlukan timeout panjang dan jeda setelah kegagalan berulang, bukan siklus percobaan ulang tanpa jeda. [BIP 22 — Long polling]

Bitcoin Core v29.0 menyimpan templat dalam cache: ia berubah saat pendahulu berubah, atau saat mempool berubah lebih dari lima detik setelah pembuatan. Waktu header diperbarui terpisah. Setiap panggilan karena itu tidak harus memuat transaksi terbaru atau menciptakan pekerjaan penambangan independen. [Bitcoin Core v29.0 — Mining RPC implementation]

Dalam mode proposal, data memuat seluruh calon blok dalam heksadesimal. Core memeriksa Merkle root tetapi tidak mewajibkan proof of work yang sah. inconclusive-not-best-prevblk berarti pendahulu berbeda dari ujung rantai saat ini; bukan penilaian lengkap atas keabsahan proposal. [Bitcoin Core v29.0 — Mining RPC implementation]

submitblock menerima blok lengkap sebagai hexdata, bukan sekadar hash. Bitcoin Core 29 mengembalikan null saat diterima; jika tidak, dapat mengembalikan string hasil. dummy opsional diabaikan. Penerimaan node tidak menjamin konfirmasi permanen dalam rantai aktif. [Bitcoin Core 29 — submitblock RPC]

Pada mainnet, Bitcoin Core v29.0 menolak memberi templat tanpa peer terhubung atau selama initial block download. Ini menggambarkan kesiapan node, bukan ketidakabsahan blok tertentu. Bedakan kesalahan tersebut dari alasan penolakan validasi dan long polling yang menunggu secara normal. [Bitcoin Core v29.0 — Mining RPC implementation]

Untuk gambaran yang lebih utuh, baca entri ini bersama Block Template, Penambangan Bitcoin, Stratum V2, Extranonce. Entri ini juga dirujuk dari ASIC Miner, Solo Mining, Job Negotiation.

DOC · 001Bitcoin Core 29 — getblocktemplate RPCDokumentasi ↗DOC · 002Bitcoin Core v29.0 — Mining RPC implementationSumber primer ↗DOC · 003BIP 145 — SegWit template fieldsSpesifikasi ↗DOC · 004BIP 22 — Long pollingSpesifikasi ↗DOC · 005Bitcoin Core 29 — submitblock RPCDokumentasi ↗
Utamakan sumber · Bukan nasihat investasi