227 / 691BTPL

Block Template

Podklady pro sestavení těženého bloku

Block Template popisuje kandidáta na další blok, jeho transakce a podmínky úprav. Při změně obsahu nestačí zkopírovat starou odměnu a hashe; všechny závislé údaje musí odpovídat výslednému bloku.

Block Template je sada údajů pro sestavení bloku, na jehož hlavičce se hledá proof of work. Spojuje předchozí blok, transakce, coinbase a omezení těžební práce; sama není důkazem nalezení ani přijetí bloku.

Pole previousblockhash a height určují návaznost kandidáta na řetězec. Součástí jsou také version, bits a časové údaje. Šablona je podklad pro sestavení bloku, nikoli jen hotová hlavička pro bezmyšlenkovité opakování stejného výpočtu. [BIP 22 — Block template structure]

V BIP 22 pole depends odkazuje od jedničky na dřívější položky seznamu transactions, který nezahrnuje coinbase. Pokud dítě utrácí výstup rodiče zařazeného do téhož bloku, rodič musí zůstat před ním. Chybějící depends znamená neznámé závislosti, ne jejich nepřítomnost. [BIP 22 — Block template structure]

Bitcoin Core v29.0 sestavuje coinbase z dotace pro danou výšku a skutečných poplatků zařazených transakcí. Po jejich odebrání nelze automaticky ponechat původní coinbasevalue jako oprávněnou odměnu. Úprava výběru vyžaduje nový výpočet dostupných poplatků. [Bitcoin Core v29.0 — Block assembler]

Podle BIP 141 witness commitment zavazuje witness data přes wtxid. Bitcoin Core 29 nabízí default_witness_commitment pro nezměněnou šablonu. Po změně příslušných transakcí nebo jejich pořadí je nutné závazek ověřit či přepočítat a výsledné TXID promítnout do Merkle root hlavičky. [BIP 141 — Witness commitment] [Bitcoin Core 29 — getblocktemplate RPC]

Bitcoin Core v29.0 vybírá balíčky se závislostmi a respektuje váhu i sigops. Nastavení blockmaxweight a blockmintxfee ovlivňují sestavení. Vynechání transakce touto politikou samo o sobě nedokazuje její konsenzuální neplatnost a konfigurace těžaře nezvyšuje síťové limity. [Bitcoin Core v29.0 — Block assembler]

BIP 23 používá mutable k popisu dovolených změn, například času nebo transakcí. Povolení serveru ale neruší konsenzus: stále musí souhlasit předchůdce, čas, obtížnost i transakce. Dostupnost šablony také nezaručuje koncovému zařízení neomezený výběr obsahu. [BIP 23 — Mutations and proposals]

BIP 23 může omezit práci přes expires a upravit oprávnění měnit prevblock. Po změně špičky řetězce nelze pouze přepsat hash předchůdce a předpokládat platnost všeho ostatního. Je třeba znovu posoudit výšku, transakce, odměnu a další kontextové podmínky. [BIP 23 — Mutations and proposals]

Režim proposal v BIP 23 kontroluje návrh bez požadavku na platný proof of work. Kladný výsledek proto neznamená nalezený blok, jeho zveřejnění ani trvalé místo v řetězci. Dokončený blok musí projít odpovídající validací při odevzdání. [BIP 23 — Mutations and proposals]

Pro nejúplnější obraz čtěte toto heslo společně s Mining Pool, Hlavička bloku, Extranonce, Merkleův strom. Opačným směrem na něj odkazují také Coinbase transakce, Stratum V1, Stratum V2, Extranonce.

DOC · 001BIP 22 — Block template structureSpecifikaceDOC · 002BIP 23 — Mutations and proposalsSpecifikaceDOC · 003Bitcoin Core 29 — getblocktemplate RPCDokumentaceDOC · 004Bitcoin Core v29.0 — Block assemblerPrimární zdrojDOC · 005BIP 141 — Witness commitmentSpecifikace
Primární zdroje · Nejde o investiční doporučení