8bg Blocked Desbloquear Seguir Seguindo 10 de janeiro
Um guia passo-a-passo para colocar um Bitcoin Full Node rodando no seu computador – sem experiência prévia!
Nodos completos são o sistema nervoso do Bitcoin!
Como tudo isso opera em uma máquina virtual, você não precisa se preocupar em corromper seu sistema operacional principal / host. Isso fornecerá a você um playground de nó Bitcoin de baixo risco. Este guia é feito com a versão Microsoft Windows do VirtualBox, mas o processo é quase idêntico no MacOS.
Como sei o quanto pode ser difícil encontrar guias atualizados para esse tipo de configuração, planejo atualizar este guia regularmente com novos lançamentos do Bitcoin Core, VirtualBox e Ubuntu. Espero que isso garanta que curiosos consertadores sempre tenham um guia preciso e atualizado disponível.
Esta versão inicial será principalmente baseada em texto, mas em futuras revisões, espero adicionar capturas de tela ou até mesmo vídeos de diferentes etapas. Por favor, consulte as referências na parte inferior – eu não poderia ter compilado este guia sem eles.
Parte Zero – Visão Geral
Neste guia, estaremos realizando quatro tarefas principais:
- Configurando um host da máquina virtual do VirtualBox
- Instalando e configurando a última versão estável e de suporte a longo prazo do Ubuntu Server nesse host de máquina virtual
- Instalando e configurando um nó completo do Bitcoin Core (bitcoind)
- Configurando o bitcoind para executar a rede Tor (isso protege a sua privacidade enquanto convenientemente evita a necessidade de modificar quaisquer configurações do roteador doméstico para permitir o tráfego de entrada da rede Bitcoin)
Parte um – pré-requisitos
Como um verdadeiro nó completo requer o download e o armazenamento de todo o histórico do blockchain do Bitcoin, você precisará garantir que tenha aproximadamente 200 GB de espaço livre no disco rígido, idealmente mais próximo de 250 GB. Embora você possa executar o que é conhecido como “podar” para reduzir a quantidade de espaço em disco usada após o download inicial do blockchain, não cobrirei isso aqui.
O tamanho do blockchain também significa que, dependendo da sua conexão de rede, o download / sincronização inicial pode levar horas, dias … ou até mais. Seja paciente!
Parte Dois – Configurando a plataforma do VirtualBox
VirtualBox é um programa gratuito de código aberto para executar máquinas virtuais no seu computador. Para fazer o download, visite https://www.virtualbox.org/
Baixe a versão mais recente (atualmente 5.2.22) para a sua plataforma, que para mim (no Windows 10) é VirtualBox-5.2.22–126460-Win.exe
Inicie o instalador exe e simplesmente aceite todos os padrões. Quando isso estiver concluído, estamos prontos para instalar o Ubuntu!
Parte Três – Configurando nossa máquina virtual do servidor Ubuntu Linux
O Ubuntu é uma das distribuições mais populares do sistema operacional Linux e é gratuito para download e uso. Neste guia, usarei o que é conhecido como a versão LTS (suporte a longo prazo), que é suportada e forneceu atualizações de segurança por cinco anos.
Isso é ótimo para um servidor “sem cabeça” (sem GUI), onde não são necessários gráficos extravagantes ou aplicativos de consumo de última geração. Dito isto, você poderia usar sua versão mais recente e atualizada com mais frequência. Apenas esteja ciente de que as coisas podem quebrar… Mas o Bitcoin é conhecido por sua estabilidade de código, então faz sentido executá-lo em um sistema operacional que também é conhecido por sua estabilidade de código!
Para começar, baixe a última versão do LTS (atualmente 18.04LTS) do site do Ubuntu: https://www.ubuntu.com/download/server/thank-you?version=18.04.1&architecture=amd64 . O nome do arquivo para esta versão é ubuntu-18.04.1-live-server-amd64.iso
Uma vez baixado o arquivo ISO (imagem de disco), inicie o Virtual Box. Você será presenteado com a interface principal, que está bastante em branco no momento. Então, vamos adicionar uma nova VM:
(Futuro acréscimo: como adicionar um segundo host de rede para que possamos fazer SSH na VM para facilitar a cópia / colagem de texto)
Clique em Novo
Dê um nome à VM, como o Ubuntu Server – o que você quiser
Em Type selecione Linux
Na versão selecione Ubuntu (64 bits)
Na caixa de diálogo Tamanho da memória , escolha o máximo de memória possível sem afetar negativamente sua capacidade de usar seu computador enquanto o VirtualBox estiver em execução. Eu tenho 16GB de RAM no meu computador host, então vou escolher ~ 4GB aqui. Quanto mais memória você puder alocar, melhor, como o download / sincronização inicial do blockchain do Bitcoin consome muita memória. Você sempre pode dimensionar isso de volta (ou para cima) mais tarde, conforme necessário.
Na caixa de diálogo Disco rígido , selecione Criar um disco rígido virtual agora e clique no botão Criar
Na caixa de diálogo Tipo de arquivo do disco rígido , deixe a VDI selecionada.
Na caixa de diálogo Armazenamento no disco rígido físico , deixe Dinamicamente alocado selecionado.
Na caixa de diálogo Localização e tamanho do arquivo , você deverá escolher pelo menos 200 GB . No momento em que escrevo, o banco de dados blockchain consome aproximadamente 180 GB e você precisa de espaço para crescimento. Observe que o VirtualBox não consumirá esse espaço imediatamente, mas aumentará o tamanho do disco virtual conforme necessário, até esse limite.
Clique em Criar
A instalação será concluída e você verá uma nova entrada na coluna à esquerda listando sua nova máquina virtual. Agora precisamos começar a trabalhar!
Parte Quatro – Instalando o Ubuntu Linux em nosso novo disco de máquina virtual
Escolha Iniciar no menu principal do VirtualBox. Você será solicitado a fornecer um disco de inicialização. Escolha o arquivo .iso do Ubuntu que baixamos anteriormente e clique em Iniciar .
O instalador do Ubuntu será lançado. Após uma breve espera, você será saudado com a tela de boas-vindas. Como esse é um instalador de servidor sem cabeçalho, não há uma interface gráfica tradicional baseada em mouse.
Para navegar pelo instalador baseado em texto, você deve usar as teclas de seta para mover-se entre as seleções, a tecla Tab para ir para os botões de confirmação (sim / não / pronto / continuar) e a tecla Enter para selecionar. Você também pode usar as teclas de seta para percorrer todo o caminho até os botões de confirmação, mas Tab é muito mais rápido.
Página 1 – Tela de boas – vindas
Escolha seu idioma preferido (lembrete – navegue com as teclas de seta e pressione Enter quando seu idioma estiver destacado)
Página 2 – Configuração do teclado
Selecione o layout do teclado (o padrão geralmente é bom – basta pressionar Enter )
Página 3 – Instalação do Ubuntu
Deixar Instalar o Ubuntu selecionado
Página 4 – Conexões de rede
Suas configurações de rede devem ser automaticamente identificadas e um endereço IP local gerado. Se isso não acontecer, a resolução está muito além do escopo deste guia – você precisará procurar ajuda.
Página 5 – Configurar proxy
Deixe em branco
Página 6 – Configurar o espelho de arquivo do Ubuntu
Deixar o Espelho padrão selecionado
Page 7 a – Configuração do sistema de arquivos
Deixar usar um disco inteiro selecionado
Página 7b
Escolha o disco padrão para instalar
Página 7c
Aceite o layout padrão do sistema de arquivos
Escolha Continuar na caixa de diálogo Confirmar ação destrutiva (lembre-se, estamos em uma Máquina Virtual, portanto, isso não está apagando nada no seu sistema operacional host / principal!)
Página 7d
Digite seu nome (ou o que você preferir), um nome para o servidor e um nome de usuário e senha. O nome de usuário inserido aqui será aquele que usamos para executar o próprio serviço Bitcoind. Para este guia, vou usar o núcleo
Deixar Importar identidade SSH definida como Não
Página 7e
Deixar todos os Snaps de servidor em destaque não selecionados
Página 10 (sim, pula de 7 para 10) – Instalação do sistema
Você só precisa esperar aqui até a conclusão da instalação, geralmente apenas alguns minutos
Página 11 – Instalação completa!
Escolha Reiniciar Agora
Pressione Enter quando solicitado a Por favor, remova a mídia de instalação
A VM será reinicializada e, após alguns minutos, você verá o prompt de login. (Pode ser necessário pressionar Enter quando as mensagens de inicialização pararem – às vezes, o prompt de login não aparecerá de outra forma).
Antes de prosseguirmos para a próxima seção deste guia, queremos garantir que nosso servidor esteja atualizado com as últimas atualizações de segurança e software.
Para fazer isso, faça o login e, em seguida, no tipo de prompt
sudo apt-get update e& sudo apt-get upgrade
Digite sua senha quando solicitado, pressione Enter e aguarde que tudo seja atualizado. Você deve executar o comando acima periodicamente para garantir que seu servidor esteja atualizado com os patches de segurança!
Agora podemos chegar à parte divertida: instalando o servidor Bitcoin-Core, bitcoind!
Parte Cinco – Instalando o servidor Bitcoin Core (bitcoind)
Para instalar o bitcoind, nós estaremos baixando e compilando o código-fonte tanto para o bitcoin quanto para o Berkeley Database que ele usa para armazenar as informações da carteira. Antes de podermos fazer isso, precisaremos instalar algum software de pré-requisito.
Primeiro, precisamos ativar um repositório de software adicional que contenha algumas ferramentas de compilação essenciais (você precisará inserir sua senha para a maioria dos comandos a seguir):
sudo add-apt-repository universe
Pacotes adicionais serão instalados. Depois de concluído, podemos instalar nossos outros pré-requisitos:
sudo apt-get instalar build-essential autoconf libtool pkg-config libboost-all-dev libssl-dev libevent-dev doxygen libzmqpp-dev
Estamos prontos para instalar o software de banco de dados BerkeleyDB que é necessário para a funcionalidade de carteira do Bitcoin. Primeiro, usaremos o comando wget para fazer o download do software:
wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz
Em seguida, verificaremos se o download é autêntico / não foi adulterado:
echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256sum -c
Se a saída terminar em “OK”, o arquivo estará seguro! Os próximos comandos irão extrair o software, definir algumas variáveis de ambiente e configurá-lo, compilá-lo e instalá-lo. Digite cada comando separadamente!
tar -xvf db-4.8.30.NC.tar.gz
cd db-4.8.30.NC/build_unix
mkdir -p build
BDB_PREFIX = $ (pwd) / build
../dist/configure --disable-shared --enable-cxx --with-pic --prefix = $ BDB_PREFIX
faça instalar
O último passo levará alguns minutos. Quando terminar, podemos – finalmente! – baixe, configure, compile e instale o Bitcoin Core.
Primeiro, certifique-se de retornar ao diretório inicial do Ubuntu (que é um til, geralmente no seu teclado à esquerda do numeral 1):
cd ~
Usaremos a ferramenta de versionamento do software Git para baixar o código-fonte do Bitcoin e sincronizá-lo com nossa VM:
clone git https://github.com/bitcoin/bitcoin.git
Agora precisamos verificar a versão estável mais recente (atualmente v0.17.0.1 – você pode executar a git tag
para as versões de lista):
cd bitcoin
git checkout v0.17.0.1
git status
O último comando deve relatar o HEAD desanexado seguido pelo número da versão que você solicitou. Estamos prontos para obter os scripts de construção preparados para compilar a origem:
./autogen.sh
Poucos minutos depois, estamos prontos para configurar as opções que queremos compilar em nossa compilação Bitcoin. Para este artigo, não usaremos a Interface Gráfica do Usuário (GUI), para que possamos desabilitar isso. Os outros flags misteriosos são usados para dizer ao compilador onde / como usar o Berkeley Database:
./configure CPPFLAGS = "- $ {BDB_PREFIX} / include / -O2" LDFLAGS = "- L $ {BDB_PREFIX} / lib /" --with-gui = não
Finalmente, estamos prontos para compilar! Este passo pode demorar bastante, dependendo da velocidade do seu sistema, por isso seja paciente – vá fazer café!
faço
fazer cheque
sudo make install
Depois de terminar seu café, podemos continuar configurando o Bitcoin para usar o Tor.
Parte 6 – Configurando o Bitcoin para usar o Tor
Antes de lançarmos o servidor Bitcoin Core (bitcoind), precisaremos criar seu arquivo de configuração para garantir que ele faça o download do histórico completo de blockchain (para que possamos inspecionar diretamente qualquer transação) e use apenas conexões Tor. Por padrão, mesmo que você tenha o Tor instalado e configurado, o bitcoind continuará a se comunicar com os nós através do TCP – nós temos que explicitamente dizer para usar somente o TOR para proteger nossa privacidade:
cd ~
mkdir .bitcoin
toque em .bitcoin / bitcoin.conf
echo "txindex = 1" >> .bitcoin / bitcoin.conf
echo "onlynet = cebola" >> .bitcoin / bitcoin.conf
Observe que, se posteriormente você determinar que o bitcoind está consumindo muito rendimento em sua rede, poderá ajudar a reduzir seu uso limitando quantos outros nós se conectam por vez:
echo "maxconnections = 20" >> .bitcoin / bitcoin.conf
Experimente com números diferentes em que usei 20 acima até atingir um nível aceitável de taxa de transferência de rede.
Note que o download inicial do blockchain leva muito tempo, mas leva mais tempo até que o Tor, já que a rede Tor é um gargalo. Você pode considerar permitir o download inicial do blockchain diretamente sobre o TCP (colocando # na frente da linha Onlynet para desabilitá-lo). Depois disso, você pode prosseguir com os recursos do Tor abaixo. Observe que fazer isso exporá seu endereço IP externo à rede, no entanto.
Agora precisamos instalar o Tor, que é simples no Ubuntu:
sudo apt-get install tor
Assegure-se de que as seguintes linhas estejam (em qualquer lugar) no arquivo de configuração Tor – / usr / share / tor / tor-service-defaults-torrc :
ControlPort 9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1
Para ver as configurações padrão, use o comando:
menos / usr / share / tor / tor-service-defaults-torrc
Se alguma das linhas acima estiver faltando, adicione-as usando o comando echo
como antes, por exemplo:
sudo sh -c "echo 'ControlPort 9051' >> / usr / compartilhamento / tor / tor-service-defaults-torrc"
Se você tiver que adicionar qualquer uma das linhas acima, não se esqueça de reiniciar o serviço do Tor:
sudo /etc/init.d/tor restart
Para permitir o acesso bitcoind à autenticação que o Tor usa, temos que adicionar o usuário que executa o bitcoind (aquele que você instalou anteriormente ao instalar o Ubuntu) no grupo Tor (para mim, vou colocar o core onde o nome de usuário está listado abaixo, como esse é o usuário que eu configurei anteriormente):
sudo usermod -a -G nome de usuário do debian-tor
Agora, certifique-se de fazer logout e voltar para garantir que a associação ao grupo seja atualizada (também pode apenas reiniciar a VM, se desejar). Feito isso, finalmente estamos prontos para lançar o Bitcoin sobre o Tor!
bitcoind -daemon
Você pode usar o seguinte comando para monitorar o progresso:
tail -f ~ / .bitcoin / debug.log
Pode levar vários dias (ou mais) para baixar e inicializar o blockchain inteiro. Depois disso, seu nó estará totalmente operacional e poderá servir blocos para outros nós na rede Tor. Você desejará verificar se IPv4 e IPv6 estão definidos como "false" na seguinte saída de comando para garantir que você esteja operando APENAS sobre o Tor:
bitcoin-cli getnetworkinfo
Quando seu nó estiver totalmente sincronizado e servindo ativamente blocos para outros nós, você poderá executar o seguinte comando para ver se está fazendo isso. Se você vir algum resultado “verdadeiro”, está funcionando!
bitcoin-cli getpeerinfo | grep true
Sinta-se à vontade para fazer qualquer pergunta ou postar sobre problemas nos comentários. Obrigado pela leitura!
Referências
https://medium.com/@lopp/how-to-run-bitcoin-as-a-tor-hidden-service-on-ubuntu-cff52d543756
https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch03.asciidoc