08 / 736NODE

Full Node

nó de validação completa

Verificar seus próprios pagamentos e blocos do Bitcoin: o que o nó confere, como a carteira o utiliza e por que não é necessário minerar nem guardar todos os blocos para sempre.

Um Full Node é um programa que verifica por si as regras do Bitcoin. Ele roda num computador, recebe blocos e transações e determina quais podem integrar um histórico válido. Com um nó próprio, essa verificação não precisa depender das afirmações de um minerador ou servidor externo. Para a carteira se beneficiar, porém, ela deve realmente usar esse nó como fonte de dados.

Imagine que sua carteira mostre um pagamento recebido. Como ela sabe que a transação realmente pertence ao histórico do Bitcoin e segue as regras? Pode consultar um servidor externo ou usar seu nó. O Full Node torna a segunda opção concreta: verifica de forma independente a validade dos dados recebidos. Ele não pergunta à maioria dos computadores conectados como decidir. Se alguém enviar um bloco que viola as regras, ele o rejeita. Mais conexões, portanto, não substituem a verificação. Seu nó permite conferir os dados nos quais você baseia seus pagamentos. [1] [3]

O nó verifica como os blocos se conectam, seus cabeçalhos e Proof of Work, a prova de cálculo exigida para um bloco. Nas transações, confere, entre outras coisas, se elas se referem a fundos existentes, se esses fundos não são gastos duas vezes e se as condições de uso são cumpridas. Essas condições aparecem em scripts, pequenos conjuntos de regras programadas. Também verifica quantos bitcoins novos são criados. O resultado atualizado é o UTXO set, o conjunto de saídas de transações ainda não gastas: um registro dos fundos específicos disponíveis. Mais trabalho acumulado pode decidir entre dois ramos válidos, mas não torna válido um bloco inválido. [1]

Não. Um Full Node verifica blocos e transações; a verificação comum, sozinha, não recebe recompensa de bloco. O minerador monta uma proposta de bloco e repete cálculos até encontrar um resultado adequado. Esse cálculo usa um hash, a impressão digital do cabeçalho. As funções podem trabalhar juntas: o minerador precisa saber qual histórico está continuando e quais transações pode incluir. Isso não significa que todo nó precise minerar. Verificar e competir para encontrar o próximo bloco são atividades diferentes. [5] [1]

Um nó novo precisa primeiro alcançar o histórico da rede. Ele baixa blocos e processa seus dados, na chamada sincronização inicial. É importante distinguir duas formas avançadas de acelerar esse processo. Em condições específicas, assumevalid permite ao Bitcoin Core omitir verificações antigas de scripts; assumevalid=0 desativa essa otimização. AssumeUTXO permite carregar um snapshot, um estado salvo dos fundos não gastos num bloco específico, cuja impressão digital é comparada a um valor incluído no código-fonte. O histórico anterior é então verificado em segundo plano. Poder usar o estado atual não significa, por si só, que a verificação histórica terminou. [1] [2]

Um Full Node não precisa guardar todos os arquivos antigos de blocos para sempre. Pruning remove parte deles após o processamento, mas mantém o UTXO set atual e os dados recentes necessários. O nó continua verificando blocos novos. Um nó de arquivo guarda os antigos para fornecê-los a outros ou examiná-los novamente. Economizar disco não é o mesmo que usar um cliente SPV, com verificação simplificada de pagamentos. Esse cliente não verifica todas as transações e seu estado como um Full Node. A diferença está no que você verifica, não apenas na quantidade de arquivos guardados. [3]

Na sincronização comum, um nó podado baixa e processa os blocos históricos antes de removê-los gradualmente. Pruning não é um botão para pular sua verificação; sua função é economizar armazenamento. As otimizações anteriores são uma questão diferente: assumevalid pode omitir verificações antigas de scripts sob certas condições, e AssumeUTXO permite usar um snapshot enquanto a verificação histórica continua. Para avaliar se o nó está pronto, observe o método de sincronização e o progresso real, não apenas o tamanho dos dados no disco. [3] [2]

A carteira precisa de informações sobre transações e confirmações. Quando as obtém de um servidor externo, envia consultas das quais ele pode deduzir algo sobre os pagamentos. Conectá-la ao seu Full Node permite usar dados verificados pelo seu nó sem essas consultas ao servidor externo. Mas instalar e iniciar o nó não muda automaticamente a conexão da carteira. Importa a fonte de dados que ela realmente suporta e utiliza. Seu nó também não garante anonimato: a privacidade depende de outros dados de rede e da forma como você usa a carteira. [3] [4]

Um nó pode funcionar sem suas chaves privadas. As chaves permitem assinar pagamentos; o nó verifica se transações e blocos seguem as regras. O mesmo dispositivo não precisa cuidar das duas tarefas. Por isso, além de confirmar que seu nó está funcionando, confira de onde a carteira lê os dados e como transmite suas transações. Verificar por conta própria não substitui uma cópia segura das chaves nem elimina todas as informações que a comunicação de rede pode revelar. Isso ajuda numa parte específica do processo: conferir os dados do Bitcoin de forma independente. [3] [4]

O nó tem duas interfaces distintas. Pelas conexões P2P, troca blocos e transações com outros nós. RPC é a interface pela qual aplicativos enviam comandos e podem eventualmente controlar também sua carteira. Abrir uma porta P2P de entrada para trocar dados é diferente de expor RPC a desconhecidos. O Bitcoin Core recomenda não expor RPC diretamente à internet pública. Para acesso local, normalmente usa credenciais guardadas num arquivo .cookie, que comprovam a autorização do aplicativo. Não é um cookie de rastreamento do navegador. [4]

Os comandos permitem verificar mais que um ícone verde. Em getblockchaininfo, observe a rede correta, blocks para os blocos processados, headers para os cabeçalhos conhecidos e initialblockdownload para a sincronização inicial. Ao usar um snapshot, getchainstates ajuda a distinguir o estado atual da verificação histórica em segundo plano. O número de conexões não prova uma verificação completa. Por fim, confira se o nó não ficou numa ponta antiga da cadeia e se a carteira realmente recebe os dados dele. Só então sua verificação independente beneficia o uso da carteira. [2] [1]

Para ter uma visão mais completa, leia este verbete junto com Bitcoin, Timechain / Blockchain, Transação, UTXO, Proof of Work. Também há referências a este verbete em Bitcoin, Satoshi Nakamoto, Timechain / Blockchain, Proof of Work.

DOC · 001Bitcoin Core v29.0: validationFonte primária DOC · 002Bitcoin Core v29.0: AssumeUTXOFonte primária DOC · 003Bitcoin.org: running a full nodeFonte primária DOC · 004Bitcoin Core v29.0: RPC securityFonte primária DOC · 005Bitcoin whitepaperFonte primária
Revisto em: Fontes em primeiro lugar · Não é recomendação de investimento