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ê.
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.