Nó
O que é um nó bitcoin?
Um nó é um computador rodando o programa Bitcoin.
Ele se conecta a outros nós na rede para compartilhar informações sobre transações e blocos.
Um nó é qualquer dispositivo que envia, recebe ou processa dados conectado a uma rede.
A forma mais fácil de se tornar um nó é baixar e rodar o software Bitcoin Core.
Função
O que um nó faz?
Um nó tem duas funções principais:
1. Manter uma cópia da blockchain
Quando você roda o Bitcoin pela primeira vez, ele se conecta a outros nós da rede para baixar uma cópia completa da blockchain.
Isso permite que seu nó se atualize com o estado atual da blockchain, para que você possa começar a receber (e validar) as transações e blocos mais recentes sendo enviados pela rede.
Baixar a blockchain completa também significa que ela está replicada em outro computador. Isso reforça a rede, porque qualquer um que queira destruir o Bitcoin precisaria remover cada cópia da blockchain. E, ao manter uma cópia, você ajuda a replicá-la para outros nós que entram na rede no futuro.
O Bitcoin é muito parecido com o torrent, onde muitos computadores diferentes estão semeando o mesmo arquivo (a blockchain).
2. Validar e retransmitir novas transações e blocos
Depois de baixar a cópia mais recente da blockchain, um nó pode começar a receber as transações e blocos mais recentes.
Cada nó verifica as transações e blocos que recebe contra um conjunto de regras, para garantir que são válidos, antes de retransmiti-los aos nós aos quais está conectado.
Como resultado, um nó trabalha constantemente para aplicar regras e transmitir dados pela rede.
Requisitos
O que você precisa para rodar um nó Bitcoin?
O Bitcoin é só um programa de computador, então tudo o que você precisa para rodar um nó é um computador e uma conexão à Internet.
Há alguns requisitos de sistema que ajudam o programa a rodar bem:
Espaço em Disco
-
Recomendado: 2+ TB
Antes de tudo, você vai precisar de um disco grande o suficiente para armazenar a blockchain (atualmente em torno de 850 GB).
A blockchain também cresce a uma taxa de cerca de 100 GB/ano, então você precisa de espaço disponível para acompanhar se planeja rodar um nó por um período prolongado.
Você pode reduzir drasticamente o espaço necessário rodando um nó podado (pruned).
RAM
-
Recomendado: 2+ GB
A RAM é usada para armazenar as transações mais recentes no mempool, além de armazenar UTXOs para ajudar a acelerar a validação de novas transações e blocos.
Você não precisa de muita RAM para rodar o Bitcoin, mas quanto mais você der, mais eficientemente ele roda.
Banda (Bandwidth)
-
Recomendado: 2+ TB/mês
Um nó está constantemente enviando e recebendo dados (transações e blocos) de e para outros nós da rede, então você vai precisar de banda suficiente para cobrir isso.
Não é uma quantidade exorbitante de dados, mas um nó Bitcoin vai usar significativamente mais banda do que você usaria navegando em sites e enviando e-mails.
Você pode limitar a quantidade de banda que seu nó usa com a configuração
maxuploadtarget.
Os maiores requisitos são ter o espaço em disco para armazenar a blockchain e banda suficiente para enviar e receber os dados mais recentes da rede.
Então o Bitcoin não é o programa mais leve do mundo, mas é perfeitamente possível rodá-lo em um laptop ou desktop do dia a dia. Na verdade, é comum as pessoas configurarem um nó Bitcoin em um Raspberry Pi.
Você não precisa manter um nó Bitcoin rodando 24/7.
É útil para a rede se você puder mantê-lo rodando o máximo possível, mas você pode iniciar e parar o programa quantas vezes precisar.
As mensagens são transmitidas no melhor esforço possível, e os nós podem sair e voltar à rede à vontade, aceitando a cadeia de prova de trabalho mais longa como prova do que aconteceu enquanto estavam fora.
Comunicação
Como um nó se comunica com outros nós?
Um nó se comunica com outros nós enviando muitas mensagens individuais.
Essas mensagens são enviadas via TCP (Transmission Control Protocol), uma forma comum de dois computadores em uma rede se comunicarem.
Cada nó também precisa seguir um protocolo Bitcoin específico ao se comunicar, que é basicamente um conjunto de regras sobre a estrutura e a ordem das mensagens enviadas entre os nós.
A Rede Bitcoin é completamente aberta e acessível a qualquer um. Então, desde que você siga as regras para conectar e enviar mensagens, qualquer um pode escrever o próprio software para se comunicar com um nó.
Benefícios
Por que rodar seu próprio nó?
1. Confiança
Rodar seu próprio nó significa que você não precisa confiar em mais ninguém para obter informações sobre transações.
Isso significa que você pode saber com 100% de certeza que cada pagamento que recebe é válido, e que cada consulta que faz sobre a blockchain está correta. Se você não roda seu próprio nó, está confiando que outra pessoa que roda um nó te envie informações corretas.
Não confie, verifique.
2. Privacidade
Rodar seu próprio nó significa que você não precisa compartilhar suas transações com serviços de terceiros.
Se você não roda seu próprio nó, precisa usar um site ou carteira de terceiros que roda um nó para enviar transações à rede por você. Esses serviços podem rastrear suas requisições junto com seu IP para ajudar a montar um retrato das suas atividades — o que não é ótimo para a privacidade.
3. Apoiar a rede
Rodar seu próprio nó apoia a rede de duas formas:
- Replicação da blockchain. O Bitcoin é difícil de matar porque todo o histórico de transações está replicado pelo mundo, então adicionar mais um nó torna o Bitcoin mais resiliente.
- Transmissão de dados. O Bitcoin funciona porque muitos nós individuais cooperam para espalhar as transações e blocos mais recentes pela rede. Ao rodar um nó, você adiciona mais um retransmissor à rede.
Rodar um nó é como semear um arquivo torrent; e todo mundo adora um seeder.
4. Desenvolvimento
Rodar seu próprio nó é útil se você planeja se tornar um desenvolvedor de Bitcoin: você tem acesso a todos os dados do bitcoin no seu computador local (via bitcoin-cli) e, se compilar o Bitcoin Core do zero, ao código-fonte que o faz rodar.
Definições
Quais são os diferentes tipos de nó?
Nó Completo (Full Node)
Um nó completo é um nó que consegue acompanhar a blockchain e validar os blocos e transações que recebe.
Um nó completo recebe uma cópia completa da blockchain, o que significa que tem memória de todo o histórico de transações e consegue determinar se qualquer novo bloco ou transação que recebe é válido. Em outras palavras, ele consegue aplicar as regras do sistema e é, portanto, um participante ativo da rede.
1. Nó de Arquivo (Archival Node)
Um nó de arquivo mantém uma cópia completa da blockchain, o que significa que pode replicar a blockchain inteira para qualquer novo nó que entrar na rede.
2. Nó Podado (Pruned Node)
Um nó podado não mantém uma cópia completa da blockchain. Em vez disso, ele recebe uma cópia completa, mas vai deletando os blocos mais antigos para economizar espaço em disco. Ele ainda consegue aplicar as regras (validar e retransmitir), mas não consegue servir uma cópia completa da blockchain para novos nós.
Nó Leve (Lightweight Node)
"Thin Node", "Thin Client", "Lightweight Client"
Um nó leve consegue acompanhar a blockchain, mas não consegue validar os blocos e transações que recebe. Ele pode verificar que um bloco ou transação existe na blockchain, mas não pode confirmar que são válidos. Portanto, ele é incapaz de aplicar as regras do sistema e não é um participante ativo da rede.
Carteira SPV
Simple Payment Verification
Um tipo comum de nó leve é a chamada carteira SPV (ex.: Electrum). Uma carteira SPV só recebe os cabeçalhos de bloco (muito menores que blocos completos) e pode pedir uma prova a um nó completo para confirmar se uma transação específica está em um bloco específico (uma prova de Merkle).
Porém, embora uma carteira SPV use mínima banda e disco, ela tem que confiar que a informação enviada por um nó completo é válida. Se você quer ter certeza de que todas as transações que vê são válidas sem ter que confiar em ninguém, precisa rodar um nó completo.
Implementações
Que software preciso para rodar um nó completo?
A forma mais fácil de rodar um nó completo é baixar a implementação original: Bitcoin Core. Há implementações alternativas (btcd, bcoin, BitcoinJ), mas todas muito menos populares que o cliente original.
Todos os comandos bitcoin-cli mencionados neste site supõem que você está rodando um nó Bitcoin Core.
Software Personalizado
Nada impede você de escrever seu próprio software de nó, se quiser. A rede Bitcoin é completamente aberta, então, se você descobrir como se conectar a outros nós e seguir as regras da rede, conseguirá usar o Bitcoin com o seu próprio software. O que é bem legal.
E, o mais importante, ninguém pode te impedir de escrever seu próprio software de nó. E é disso que o Bitcoin se trata.