227 / 691BTPL

Block Template

Dados para montar um candidato à mineração

Block Template descreve um candidato ao próximo bloco, suas transações e condições de alteração. Mudar o conteúdo exige mais que copiar a recompensa e os hashes antigos: todos os dados dependentes devem corresponder ao bloco resultante.

Block Template é um conjunto de dados para montar um bloco cujo cabeçalho será usado na busca de proof of work. Relaciona bloco anterior, transações, coinbase e restrições de mineração; não comprova que um bloco foi encontrado ou aceito.

Os campos previousblockhash e height situam o candidato na cadeia. Também há version, bits e informações de tempo. O modelo serve para montar um bloco, não é apenas um cabeçalho pronto para repetir cegamente o mesmo cálculo. [BIP 22 — Block template structure]

No BIP 22, depends referencia, começando em um, entradas anteriores de transactions, cuja lista exclui a coinbase. Se uma transação filha gasta uma saída de outra incluída no mesmo bloco, a mãe deve vir antes. A ausência de depends indica dependências desconhecidas, não inexistentes. [BIP 22 — Block template structure]

Bitcoin Core v29.0 monta a coinbase com o subsídio daquela altura e as taxas reais das transações incluídas. Depois de removê-las, o antigo coinbasevalue não pode automaticamente permanecer como recompensa legítima. Alterar a seleção exige recalcular as taxas disponíveis. [Bitcoin Core v29.0 — Block assembler]

Pelo BIP 141, witness commitment vincula dados witness via wtxid. Bitcoin Core 29 fornece default_witness_commitment para o modelo inalterado. Ao modificar transações relevantes ou sua ordem, é preciso verificar ou recalcular o compromisso e refletir os TXID resultantes na Merkle root do cabeçalho. [BIP 141 — Witness commitment] [Bitcoin Core 29 — getblocktemplate RPC]

Bitcoin Core v29.0 seleciona pacotes com dependências e respeita peso e sigops. blockmaxweight e blockmintxfee influenciam a montagem. Uma omissão por essa política não prova, por si só, invalidade de consenso; a configuração do minerador tampouco aumenta os limites da rede. [Bitcoin Core v29.0 — Block assembler]

BIP 23 usa mutable para descrever mudanças autorizadas, como tempo ou transações. A permissão do servidor não revoga o consenso: predecessor, tempo, dificuldade e transações devem continuar corretos. O acesso ao modelo também não garante ao dispositivo final seleção irrestrita de conteúdo. [BIP 23 — Mutations and proposals]

BIP 23 pode limitar o trabalho com expires e especificar permissões para alterar prevblock. Quando muda a ponta da cadeia, trocar apenas o hash do predecessor não garante a validade de tudo mais. Altura, transações, recompensa e outras condições contextuais precisam ser reavaliadas. [BIP 23 — Mutations and proposals]

O modo proposal do BIP 23 verifica um candidato sem exigir proof of work válido. Um resultado positivo não significa que um bloco foi encontrado, publicado ou incluído permanentemente na cadeia. O bloco pronto deve passar pela validação adequada ao ser enviado. [BIP 23 — Mutations and proposals]

Para ter uma visão mais completa, leia este verbete junto com Mining Pool, Cabeçalho de bloco, Extranonce, Árvore de Merkle. Também há referências a este verbete em Transação coinbase, ASIC Miner, Mining Pool, Nonce.

DOC · 001BIP 22 — Block template structureEspecificação ↗DOC · 002BIP 23 — Mutations and proposalsEspecificação ↗DOC · 003Bitcoin Core 29 — getblocktemplate RPCDocumentação ↗DOC · 004Bitcoin Core v29.0 — Block assemblerFonte primária ↗DOC · 005BIP 141 — Witness commitmentEspecificação ↗
Fontes em primeiro lugar · Não é recomendação de investimento