Visão Geral
Em computação, um daemon é um programa que roda como processo em segundo plano em vez de ser controlado diretamente por um usuário por meio de uma interface gráfica. No contexto do Bitcoin, o daemon mais importante é o bitcoind, o daemon do Bitcoin Core que opera um nó completo. Rodar o bitcoind permite que um servidor participe da rede Bitcoin, valide transações e blocos, mantenha uma cópia da blockchain e forneça serviços por meio de sua interface RPC.
Arquitetura do bitcoind
┌──────────────────────────────────────────────┐
│ bitcoind │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ P2P │ │Validation│ │ Wallet │ │
│ │ Network │ │ Engine │ │ (optional)│ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ ┌────┴──────────────┴─────────────┴─────┐ │
│ │ Blockchain Database │ │
│ └────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────┐ │
│ │ JSON-RPC Interface │ │
│ └────────────────┬───────────────────────┘ │
└───────────────────┼───────────────────────────┘
│
┌───────────┴───────────┐
│ │
bitcoin-cli Applications
(command line) (wallets, explorers)
Uso Comum
Rodar o bitcoind em um servidor é a forma padrão de operar um nó completo do Bitcoin:
- Download inicial de blocos (IBD): Na primeira execução, o bitcoind baixa e valida todo o histórico da blockchain
- Operação contínua: Recebe continuamente novos blocos e transações, os valida e os retransmite para os pares
- Interface RPC: Expõe uma API JSON-RPC que permite que outros softwares consultem dados da blockchain, enviem transações e gerenciem carteiras
Configuração
O bitcoind é configurado por meio de um arquivo bitcoin.conf ou argumentos de linha de comando. As configurações comuns incluem seleção de rede (mainnet, testnet, signet), credenciais RPC, limites de conexão com pares, opções de poda para configurações com restrição de disco e alocação de memória para o cache UTXO.
Por Que Rodar um Daemon
Rodar seu próprio daemon bitcoind é a forma mais soberana de interagir com o Bitcoin. Permite que você verifique todas as transações de forma independente, melhora sua privacidade ao não depender de serviços de terceiros para verificar seus saldos e contribui para a saúde da rede ao retransmitir transações e blocos para outros pares.