121 / 691IBD

Initial block download

IBD é a primeira sincronização de um novo nó com a história do Bitcoin. Inclui obter dados, validar blocos e construir o estado de saídas não gastas, além da transferência de arquivos.

IBD é mais que baixar arquivos. Um Full Node constrói um conjunto UTXO validado a partir da história; verificações de scripts antigos também dependem de assumevalid.

O nó descobre endereços de pares e sincroniza cabeçalhos. Um cabeçalho liga a história e contém Proof of Work, mas sozinho não comprova a validade de todas as transações do bloco. [Bitcoin Developer Guide — Initial Block Download] [Satoshi Nakamoto — Bitcoin whitepaper]

O trabalho acumulado identifica um ramo candidato à validação. Nem a maior quantidade de cabeçalhos nem a afirmação de um par substitui trabalho e verificações completas. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — validation] [Satoshi Nakamoto — Bitcoin whitepaper]

Blocos podem ser baixados em paralelo de vários pares. Conectá-los à cadeia válida respeita o estado anterior: saídas não podem ser verificadas sem a história necessária. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — validation]

Um Full Node verifica estrutura, Merkle root, regras de gasto e limites de emissão, entre outros. As regras de consenso se aplicam conforme altura e ativações; cabeçalhos não são validação completa. [Bitcoin Core — validation] [Bitcoin Core — chainstate]

Conectar blocos remove saídas gastas e adiciona novas UTXO. A base representa possibilidades atuais de gasto, não todas as transações históricas ou um livro de saldos por endereço. [Bitcoin Core — validation] [Bitcoin Core — chainstate]

Sob condições de história conhecida suficientemente profunda, assumevalid pode pular verificações de scripts antigos. Não aceita qualquer história sem verificar; assumevalid=0 desativa essa otimização. [Bitcoin Core — validation]

A poda remove arquivos antigos após processamento e mantém o conjunto UTXO e metadados necessários. Economiza armazenamento permanente, não obter e processar a história durante IBD comum. [Bitcoin Core — validation] [Bitcoin Core — chainstate]

Bitcoin Core v29.0 usa idade da ponta, trabalho mínimo e estado de carregamento; após concluir, o indicador não volta a true nesse processo. É uma heurística operacional, não prova da ponta global mais recente. [Bitcoin Core — validation] [Bitcoin Core — getblockchaininfo]

A duração depende de CPU, memória, disco, rede e pares disponíveis. verificationprogress de getblockchaininfo estima trabalho de verificação, não prazo garantido nem apenas a fração de bytes baixados. [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — getblockchaininfo]

AssumeUTXO pode usar um snapshot UTXO compatível para operar mais cedo na ponta. A história é validada em segundo plano e o resultado comparado ao snapshot; uso antecipado não significa validação histórica concluída. [Bitcoin Core — validation] [Bitcoin Core — AssumeUTXO design]

Para ter uma visão mais completa, leia este verbete junto com Pruned node, AssumeUTXO, Block propagation, Compact block relay. Também há referências a este verbete em Pruned node, AssumeUTXO.

DOC · 001Bitcoin Developer Guide — Initial Block DownloadDocumentação ↗DOC · 002Bitcoin Core — validationDocumentação ↗DOC · 003Bitcoin Core — chainstateDocumentação ↗DOC · 004Bitcoin Core — AssumeUTXO designDocumentação ↗DOC · 005Bitcoin Core — getblockchaininfoDocumentação ↗DOC · 006Satoshi Nakamoto — Bitcoin whitepaperFonte primária ↗
Fontes em primeiro lugar · Não é recomendação de investimento