122 / 736PRUNE

Pruned Node

Um nó completo com um arquivo de blocos menor

É possível verificar o Bitcoin por conta própria sem guardar todo o seu histórico no disco. Um Pruned Node processa os blocos antigos e depois pode removê-los, mantendo o estado necessário para conferir novos pagamentos.

Um Pruned Node é um Full Node que verifica as regras do Bitcoin por si mesmo, mas não guarda todos os blocos antigos para sempre. Ele economiza espaço em troca de um acesso mais limitado ao histórico. Não retira bitcoins dos seus fundos nem substitui o backup da carteira.

Ana quer usar Bitcoin sem depender de um servidor alheio para decidir se os pagamentos são válidos. Mas seu computador não tem espaço para um arquivo completo de blocos, os conjuntos de transações confirmadas. Um Pruned Node pode atender a essa necessidade. No Initial Block Download comum (a primeira sincronização do nó), ele baixa e verifica o histórico em sequência, depois remove arquivos antigos já processados. Não precisa guardar toda a história de uma só vez, mas ainda precisa percorrê-la durante essa sincronização. [2] [5]

Pruning é a remoção controlada de dados antigos. O Bitcoin Core remove arquivos de blocos elegíveis e seus dados undo, que permitem desfazer as mudanças causadas por um bloco. Pense em documentos de trabalho antigos cujos resultados já foram incorporados a um registro atualizado. As cópias locais desaparecem, mas os efeitos dos pagamentos válidos permanecem. Outros nós podem continuar guardando os mesmos blocos. [3] [7]

O conjunto UTXO reúne as saídas de transações que ainda não foram gastas. Cada saída informa um valor e as condições para gastá-lo. O nó atualiza esse conjunto e assim detecta, por exemplo, uma tentativa de gastar novamente uma saída já gasta. Ele também mantém um índice dos blocos com seus cabeçalhos, registros curtos que conectam os blocos. O conjunto UTXO não é uma lista de contas nem um histórico de todos os pagamentos. [2] [6]

A rede pode seguir por um breve período duas ramificações válidas e depois continuar por outra com mais trabalho acumulado. Essa mudança é chamada de reorganização. O trabalho acumulado mede a dificuldade de encontrar blocos válidos, representada pelo Proof of Work, a prova de trabalho computacional desses blocos. Numa reorganização, o nó precisa desfazer os efeitos de alguns blocos, por isso mantém uma reserva de blocos recentes e dados undo. Voltar além do histórico guardado pode exigir obter dados novamente ou reconstruir o estado. Um limite de disco não torna pagamentos antigos absolutamente irreversíveis. [5] [7]

A meta de pruning automático do Bitcoin Core se aplica aos arquivos de blocos e undo, não à pasta inteira de dados do nó. Bancos de dados, carteiras e outros arquivos também ocupam espaço. A remoção acontece por arquivos inteiros e deve respeitar a reserva necessária; portanto, a meta não é um teto rígido. Ao planejar o disco, considere esse espaço adicional: o limite do arquivo de blocos não é o tamanho total do nó. [1] [4] [7]

Full em Full Node significa verificar as regras de forma independente, não a obrigação de guardar cada bloco para sempre. Um nó de arquivo e um nó com pruning, com as mesmas configurações de validação, rejeitam os mesmos blocos inválidos. O pruning em si não desativa verificações. Uma assinatura digital comprova a autorização de um pagamento por meio de uma chave privada, um valor numérico secreto, sem revelar essa chave. Por exemplo, assumevalid pode dispensar parte da verificação histórica de assinaturas sob condições específicas, mas é uma configuração separada. Pode valer para ambos os tipos de nó e não decorre de um disco menor. [5] [6]

O nó de Ana continua recebendo e verificando novas transações e blocos disponíveis, e pode retransmiti-los. Não pode, porém, enviar um bloco antigo cujo arquivo já removeu. Por isso, quem mantém arquivos completos também é importante para nós recém-iniciados. Um Pruned Node não está desconectado da rede nem é apenas uma carteira leve que confia na verificação de terceiros; seu serviço de dados históricos é mais limitado. [10]

Mais tarde, Ana restaura uma carteira usada anos atrás. Uma carteira é um aplicativo ou dispositivo para receber e enviar bitcoins. Para reencontrar suas transações, o programa percorre os blocos correspondentes; isso se chama rescan. Se esses blocos não estiverem disponíveis localmente, importar uma chave ou um descriptor não os trará de volta. O descriptor descreve como os endereços e as condições de gasto são construídos. A recuperação pode exigir obter o histórico novamente. Um pagamento antigo ausente da tela não significa, por si só, que os bitcoins foram perdidos. [8] [9]

As aplicações conectadas ao nó também importam. Um explorador de todo o histórico tem necessidades diferentes das de uma carteira que acompanha novos pagamentos. Por exemplo, Bitcoin Core v29.0 não permite combinar pruning com txindex, um índice auxiliar para localizar transações nos blocos armazenados. Isso não proíbe todos os índices. Confira os requisitos da sua aplicação antes de escolher o modo; aumentar o limite depois não recria arquivos apagados. [1]

Um Pruned Node faz sentido para quem quer verificar Bitcoin por conta própria sem consultar constantemente todo o arquivo. Ele não elimina o download inicial comum do histórico; AssumeUTXO usa outro mecanismo para permitir que o nó seja usado mais cedo. Acima de tudo, nem os blocos nem o conjunto UTXO são backup das chaves privadas que autorizam gastos. O backup da carteira e um procedimento de recuperação testado continuam necessários, qualquer que seja o tamanho do arquivo. [2] [9]

Para ter uma visão mais completa, leia este verbete junto com Initial Block Download, AssumeUTXO, Block Propagation, vByte, Bitcoin, Bitcoin Core. Também há referências a este verbete em Initial Block Download, AssumeUTXO, Utreexo, Compact Block Filters.

DOC · 001Bitcoin Core v29.0 — pruning configurationDocumentação DOC · 002Bitcoin Core 0.11 release notesDocumentação DOC · 003Bitcoin Core — prune blockchain RPCDocumentação DOC · 004Bitcoin Core — getblockchaininfoDocumentação DOC · 005Bitcoin Core — validationDocumentação DOC · 006Bitcoin Developer Guide — Block ChainDocumentação DOC · 007Bitcoin Core v29.0 — Block file storageDocumentação DOC · 008Bitcoin Core v29.0 — rescanblockchainDocumentação DOC · 009Bitcoin Core v29.0 — Wallet imports and backupDocumentação DOC · 010Bitcoin Core v29.0 — Network block servingDocumentação
Revisto em: Fontes em primeiro lugar · Não é recomendação de investimento