A definição do que é um nó (nodes) pode variar de acordo com o contexto utilizado. Quando se trata de redes de computadores ou telecomunicações, os nós (nodes) oferecem propostas diferentes, atuando como um ponto de redistribuição ou um ponto final de comunicação.
Normalmente, um nó é representado como um dispositivo em uma rede física, mas há alguns casos específicos em que os nós virtuais são utilizados.
Simplificando, um nó de rede é o ponto onde uma mensagem pode ser criada, recebida ou transmitida. Assim, discutiremos os diferentes tipos de nós Bitcoin: nós completos, super nós, nós de mineração e nós de clientes SPV.
Nós de Bitcoin
Mergulhar no contexto de cadeias de bloqueio — que são projetadas como sistemas distribuídos — uma rede de computadores é o que torna possível o uso do Bitcoin como moeda digital descentralizada Peer-to-Peer (P2P ou peer-to-peer) que é resistente às autoridades desde a concepção e não precisa de um intermediário para ser transacionado pelos usuários (não importa a distância entre eles).
Portanto, os nós de uma rede em cadeia de blocos são responsáveis por atuar como um ponto de comunicação que pode ter diferentes funções. Quaisquer computadores ou dispositivos que se conectam à interface Bitcoin podem ser considerados nós no sentido de que se comunicam entre si de alguma forma.
Estes nós também são capazes de transmitir informações sobre transações e blocos dentro de uma rede de computadores usando o protocolo Bitcoin peer-to-peer. No entanto, cada computador é definido de acordo com sua função particular, portanto, existem diferentes tipos de nós no Bitcoin.
Full Nodes
Full nodes são aqueles que realmente suportam e protegem o Bitcoin e são indispensáveis para a rede. Estes nós (nodes) também são conhecidos como nós de plena validação, pois entram no processo de verificação de blocos e transações seguindo as regras do algoritmo do consenso. Os nós completos também são capazes de transmitir novos blocos e transações para a cadeia de blocos (Blockchain).
Normalmente, um full node baixa uma cópia da cadeia de blocos Bitcoin contendo cada bloco e transação, mas isto não é um requisito para se tornar um full node (uma cópia reduzida da cadeia de blocos pode ser usada em vez da completa).
Um nó Bitcoin pode ser estabelecido através de diferentes implementações de software, mas a forma mais popular e utilizada é o Bitcoin Core. Estes são os requisitos mínimos para executar um nó Bitcoin Core completo:
Computador desktop ou notebook com a última versão do Windows, Mac OS X, ou Linux.
- 200GB de espaço livre no disco rígido.
- 2GB de memória (RAM)
- Conexão de internet de alta velocidade e taxa de carregamento com pelo menos 50 kB/s.
Uma conexão de internet com alto limite de largura de banda para uploads. Full nodes podem alcançar ou até mesmo exceder a faixa de 200GB/mês e 20GB/mês de download. E também é necessário baixar ~200Gb uma vez que você inicie seu full node.
Um full node (nó completo) deve estar ativo por pelo menos 6 horas todos os dias. É ainda melhor se você deixá-lo funcionando continuamente, 24 horas por dia, 7 dias por semana.
Algumas organizações e usuários voluntários estão rodando full nodes de Bitcoin como uma forma de ajudar o ecossistema. Atualmente, temos aproximadamente 9.700 nós públicos rodando na rede. Note que este número inclui apenas os nós públicos, que se referem aos nós que estão listados como visíveis e acessíveis (ou nós responsivos).
Além dos nós (nodes) públicos, há vários outros que são invisíveis (nós não-recebíveis). Estes nós geralmente operam atrás de um firewall, através de protocolos como o Tor, ou simplesmente porque foram configurados para não receber conexões.
Nós Receptivos (super nós)
Essencialmente, um nó receptor ou super-nó é um full node que é visível publicamente. Ele comunica e fornece informações a qualquer outro nó que estabeleça uma conexão mútua.
Consequentemente, o super nó é basicamente um ponto de redistribuição que pode funcionar como uma fonte de informação e uma ponte de comunicação em simultâneo.
Um super nó confiável normalmente funciona todos os dias e tem várias conexões estabelecidas, transmitindo as informações e transações da cadeia de blocos para vários nós ao redor do globo. Por esta razão, um super nó provavelmente exigirá maior capacidade de computação e conexão com a Internet, em oposição ao full node que permanece oculto.
Nós de Mineração
Para poder extrair Bitcoins no cenário muito competitivo de hoje, o interessado precisa investir em equipamentos e softwares especializados para este fim. Estes programas de mineração (software) não estão diretamente relacionados com o Bitcoin Core e devem ser executados em paralelo para tentar extrair blocos de Bitcoin. Um mineiro pode optar por trabalhar sozinho (mineiro solitário) ou em grupos conhecidos como piscinas de mineração.
Enquanto os mineiros solitários de full nodes utilizam sua própria cópia da cadeia de blocos, os mineiros de pools trabalham em conjunto, cada um contribuindo com seu poder computacional individual (hashpower). Em um pool de mineração, apenas o administrador do mesmo precisa atender à exigência de operar um full node — pool miner’s full node.
Clientes Lightweight ou SPV
Mais conhecidos como clientes de Verificação Simplificada de Pagamento ou SPV, clientes lightweight são aqueles que usam a rede Bitcoin, mas não atuam como full nodes. Portanto, os clientes SPV não contribuem para a segurança da rede simplesmente porque não possuem uma cópia da cadeia de blocos e não fazem parte do processo de verificação e validação da transação.
Em resumo, SPV é o método pelo qual um determinado participante pode verificar se certas transações foram ou não incluídas em um bloco, sem ter que baixar as informações completas do bloco. Portanto, os clientes SPV dependem das informações fornecidas por outros full nodes (super nós). Os clientes lightweight funcionam como terminais de comunicação e são utilizados por várias carteiras de moedas criptográfadas.
Clientes vs. nós de Mineração
É importante observar que rodar um full node normal não é a mesma coisa que rodar um full node de mineração de criptomoedas. Enquanto os mineiros precisam investir em peças de computador e software extremamente caros, qualquer um pode rodar um simples full node.
Além disso, antes de tentar minerar um bloco, o mineiro precisa coletar uma série de transações pendentes que tenham sido aceitas anteriormente como válidas pelos full nodes. Então o minerador cria um bloco candidato (com um grupo de transações) e tenta minerar esse bloco.
Se o mineiro conseguir encontrar uma solução válida para a prova matemática daquele bloco, ele o transmite para a rede e os outros full nodes fazem a verificação da validade daquele bloco. Portanto, as regras de consenso são determinadas e protegidas pela rede distribuída de blocos validados, e não pelos mineiros.
Concluindo Sobre Nós (Nodes)
Os nós Bitcoin comunicam-se entre si através do protocolo P2P da rede e, ao fazer isso, garantem a integridade do sistema. Um nó que age desonestamente ou tenta propagar informações incorretas é rapidamente descoberto pelos corretos e é eventualmente desconectado da rede.
Apesar do fato de que rodar um full node de validação não tem nenhuma recompensa financeira, é altamente recomendável fazê-lo a fim de proporcionar confiança, segurança e privacidade para todos os usuários da rede.
Os full nodes garantem que as regras estejam sempre sendo seguidas. Eles protegem a cadeia de blocos contra-ataques e fraudes (como a duplicação de gastos). Além disso, um full node não precisa confiar nos outros e permite ao usuário o controle total de seu dinheiro.