₿itcoinItaliaNetwork 

block template

Difficoltà: avanzato

Argomento: tecnologia


DEFINIZIONE

Un block template, modello di blocco, è una lista di transazioni non confermate, solitamente ottimizzate in base alle fee più profittevoli, limitate dalle dimensioni del blocco.
Queste transazioni sono utilizzate da una mining pool nella costruzione di un nuovo blocco ancora da minare.
Per massimizzare la block reward, la ricompensa del blocco, il template include i pacchetti di transazioni che pagano la fee più alta.

La chiamata di procedura remota (RPC) di Bitcoin Core chiamata getblocktemplate viene utilizzata periodicamente per richiedere un nuovo block template. Alcune mining pool potrebbero utilizzare anche la RPC di Bitcoin Core, mentre altri potrebbero avere implementato i propri algoritmi di selezione delle transazioni e infrastrutture per la creazione del template.

Le mining pool aggiornano il loro block template appena vengono a conoscenza che sia stato minato un nuovo blocco. Inoltre, la maggior parte delle mining pool pubbliche aggiorna il proprio block template circa ogni 30 secondi per includere nei propri blocchi le transazioni appena ricevute.

Le attività Stratum non contengono l'elenco completo delle transazioni incluse nel template del blocco.

Un miner che partecipa al mining tramite una mining pool, deve solo costruire un block header, operazione che può essere eseguita senza conoscere tutto il contenuto del template. I miner attualmente esauriscono velocemente il nonce a 32 bit nel block header e possono quindi aggiornare il timestamp nell'header, modificare la versione alla maniera dell'overt ASICBoost o cambiare il cosiddetto extranonce nella transazione coinbase, il che provoca un cambiamento della merkle root. Per fare ciò, i miner hanno bisogno della transazione coinbase, delle informazioni sull'extranonce e dei merkle tree per calcolare una nuova merkle root.

L'elenco dei merkle tree nelle attività Stratum contiene solo le informazioni necessarie per calcolare la merkle root. Per costruire la merkle root, la transazione coinbase viene hashata insieme al primo merkle tree, il risultato viene quindi hashato con il secondo merkle tree, che a sua volta viene hashato con il terzo merkle tree. La merkle root viene raggiunta una volta che tutti i merkle tree sono stati hashati insieme.

Con il protocollo Stratum V2 il miner partecipa in modo più diretto alla costruzione del block template, dichiarando le transazioni alla pool che può quindi scegliere di accettarle o rifiutarle.


aggiornato il 2024-10-01