//Construindo um servidor Namecoin com o Ubuntu 16.04

Construindo um servidor Namecoin com o Ubuntu 16.04

No que acabou de ser uma análise detalhada das múltiplas criptomoedas recentemente, tenho tido uma visão mais profunda do Namecoin .

Esta pesquisa significou ter que instalar máquinas virtuais de teste e, como o Ubuntu 16.04 é o meu sistema operacional de escolha (a versão do servidor LTS de 64 bits ), aqui está como eu configurei um nó do Namecoin.

Seus resultados podem variar, e eu não faço promessas ou garantias sobre o resultado dessas etapas, além de dizer que funcionou para mim.

Requisitos iniciais

Você precisará iniciar com um servidor recém-instalado Ubuntu 16.04 LTS de 64 bits (no meu caso, rodando em um hipervisor VMWare com 2 x CPU, 2048 Gb de RAM, 48 GB de HDD; hardware / plataforma depende de você).

Eu simplesmente instalei do zero, criei uma conta de usuário para mim, mudei o endereço IP para uma configuração estática ( eu tenho instruções para isso aqui ) e também fiz uma atualização completa e reiniciei.

sudo apt-get update & sudo apt-get -y upgrade && sudo reboot

As etapas a seguir supõem que você tenha SSH na caixa (ou no console) usando sua própria conta. Embora eu tenha um mau hábito de usar o “sudo -i” para obter um prompt de root, quando se trata de criar projetos a partir do código fonte, eu sempre uso minha própria conta.

Etapa 1. Instalar Bibliotecas Necessárias

Existem vários pacotes que você precisará instalar, o mais importante deles começa com todas as ferramentas essenciais de compilação incluídas no pacote “build-essential”.

sudo apt-get install build-essential

Depois, há um monte de outros pacotes que você precisará mais tarde, eu compilei esta lista de tentativa e erro na primeira vez que fiz isso.

sudo apt-get install autoconf libtool pkg-config 
sudo apt-get install libboost-all-dev libssl-dev libevent-dev

Etapa 2. Faça o download do namecoin-core

cd ~ 
git clone https://github.com/namecoin/namecoin-core.git

Isso irá recuperar um clone do repositório git que contém a versão mais recente do projeto namecoin-core.

Eu simplesmente executo isso na minha pasta pessoal e cria uma pasta namecoin-core / no meu diretório pessoal. Eu sei que algumas pessoas gostam de colocar o código-fonte em / usr / src e outros lugares, mas como este é um único servidor de teste criado para o propósito, não me incomodo.

Não vamos fazer nada com isso ainda, mas você precisará disso na próxima etapa.

Etapa 3. Obtendo o BerkeleyDB 4.8 libs

Este foi um obstáculo que eu encontrei causado devido ao Ubuntu 16.04 ser tão novo. Eu continuei recebendo este erro durante a configuração da construção do namecoin.

Se você não tem uma versão do Berkeley DB instalada:

verificação de cabeçalhos do Berkeley DB C ++… não
configure: erro: cabeçalhos libdb_cxx ausentes, o Namecoin Core requer esta biblioteca para funcionalidade de carteira (–disable-wallet para desativar a funcionalidade da carteira)

Ou se você de alguma forma já instalou o libdb ++ – dev (ou libdb5.3 ++ – dev) que você precisará remover o apt-get para prosseguir:

verificação de cabeçalhos do Berkeley DB C ++ … padrão
configure: error: Encontrado Berkeley DB diferente de 4.8, requerido para carteiras portáteis (–com-incompatível-bdb para ignorar ou –disable-wallet para desativar a funcionalidade da carteira)

Deixe-me explicar rapidamente o que é isso tudo.

O Namecoin, como o Bitcoin, fornece uma carteira para suas moedas. Esta funcionalidade é fornecida pelo armazenamento de chaves de criptografia em um arquivo especial chamado “wallet.dat” – que é um arquivo Berkeley DB (um tipo de banco de dados baseado em arquivo), e nos primeiros dias do Bitcoin foi a versão da biblioteca 4.8 que foi originalmente usado.

O problema é que o Ubuntu 16.04 é criado para fornecer apenas um pacote para a biblioteca Berkeley DB 5.3 e, enquanto isso normalmente seria bom, significa que seu arquivo wallet.dat não funcionaria em outros sistemas se você fosse movê-lo para outro lugar.

Uma vez que um arquivo Berkeley DB (ou seja, wallet.dat, neste caso) é acessado por um programa usando uma versão posterior da biblioteca Berkeley DB, o arquivo que está sendo acessado é atualizado automaticamente – e o arquivo nunca pode ser convertido para a versão anterior. Por isso, a maioria dos arquivos wallet.dat está usando o 4.8, então provavelmente devemos nos ater a isso para ter paz de espírito.

A solução não é tão difícil, como a maioria das coisas quando você finalmente encontra a resposta correta!

 wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz

Se esse download não funcionar, talvez visite o site da Oracle e encontre o link que faz.

tar xzvf db-4.8.30.NC.tar.gz  
cd db-4.8.30.NC/build_unix/  
../dist/configure --enable-cxx  
make  
sudo make install

Meus sinceros agradecimentos à discussão nesta página do Github pelos passos acima.

Além de compilar e instalar o Berkeley DB 4.8 lib, eu ainda tive problemas e tive que criar os seguintes links simbólicos para que os arquivos headers e lib pudessem ser encontrados. Graças ao fio aqui para isso.

sudo ln -s /usr/local/BerkeleyDB.4.8 /usr/include/db4.8  
sudo ln -s /usr/include/db4.8/include/* /usr/include  
sudo ln -s /usr/include/db4.8/lib/* /usr/lib

Depois de ter compilado e instalado a biblioteca Berkeley DB 4.8 a partir do código-fonte, agora você precisa editar um arquivo na fonte namecoin-core para ajudá-lo a encontrar os arquivos de cabeçalho necessários para a compilação do Namecoin.

cd ~ /namecoin-core/ 
nano build-aux/m4/bitcoin_find_bdb48.m4

Procure a linha que começa com bdbdirlist = e adicione o caminho completo para a pasta / build_unix / anteriormente. No meu caso, foi em /home/mjm/db-4.8.30.NC/build_unix, mas sem dúvida será diferente para você.

bitcoin_find_bdb48.m4

Etapa 4. Compilando o namecoin-core

Agora estamos com a compilação dos binários namecoin-core.

cd ~ / namecoin-core / 
./autogen.sh 
./configure 
make 
sudo make install

 

 

Note que estes passos podem levar algum tempo, especialmente o comando make acima – demorou cerca de dez minutos para mim.

Quando isso estiver concluído, você terá os seguintes arquivos em / usr / local / bin / ready to go.

  • namecoind
  • namecoin-cli
  • namecoin-tx
  • test_namecoin
  • bench_namecoin

Você vai querer iniciar o namecoind para rodar em segundo plano e, em um artigo separado, abordarei a melhor prática de usar o systemd para mantê-lo funcionando em segundo plano.

Você também deve criar um usuário ‘namecoin’ separado com menos privilégios para executar o daemon namecoind.

Leia mais sobre Linux

Leia mais sobre Bitcoin

Sou Analista de Sistemas Bacharel em Sistemas da Informação, Certificado MCTS 70-680 / MOS, Trabalho como Administrador de Redes e Servidores Windows e Linux! Minhas atividades favoritas são: Caminhar, Fazer Trilhas, Natureza, Insetos e claro ler sobre Tecnologia.