Compilar Bitcoin Core no CentOS 7

O Bitcoin Core é um projeto open-source que mantém e publica o software cliente chamado ‘Bitcoin Core’.

É descendente direto do software cliente original Bitcoin publicado por Satoshi Nakamoto após ele ter publicado o famoso whitepaper do Bitcoin.

O Bitcoin Core consiste de um software ‘full-node’ para completa validação da blockchain, assim como uma carteira bitcoin. O projeto, atualmente, também mantém softwares relacionados como a biblioteca de criptografia libsecp256k1 e outros que podem ser encontrados no GitHub.

Qualquer um pode contribuir para o Bitcoin Core.

INSTALANDO DEPENDÊNCIAS

# yum install -y autoconf automake boost-devel gcc-c++ git libdb4-cxx libdb4-cxx-devel libevent-devel libtool openssl-devel wget

INSTALANDO BERKELEY DB

$ wget http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz
$ sha256sum db-4.8.30.NC.tar.gz
# o último comando deve ter gerado o *hash*
12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef
$ 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
$ make install

COMPILANDO

$ cd ~

Clonando repositório com o GIT

$ git clone https://github.com/bitcoin/bitcoin.git$ cd bitcoin

Liste as tags de releases disponíveis:

$ git tag
#[... outras tags ...]
v0.11.2
v0.11.2rc1
v0.12.0
v0.12.0rc1
v0.12.0rc2
v0.12.0rc3
v0.12.0rc4
v0.12.0rc5
v0.12.1
#[... outras tags ...]

dê um checkout para a última versão estável

git checkout v0.18.0

Agora basta fazer o build (obs.: $BDB_PREFIX definida acima):

$ ./autogen.sh
$ ./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/"
#[...]
$ make
#[...]
$ make install  # opcional caso queira os binários no seu $PATH
#[...]

Verificando se tudo ocorreu bem

$bitcoind --version
Bitcoin Core Daemon version v0.18.0
Copyright (C) 2009-2019 The Bitcoin Core developers

API JSON-RPC

Para forma a estrutura da pasta .bitcoin chame o bitcoind e dê um CTRL+C logo em seguida.

$ bitcoind
^C

Vá até a pasta .bitcoin que por padrão fica no seu diretório #HOME. Crie ou edite o arquivo bitcoin.conf contendo o usuário e senha para o servidor RPC.

Exemplo de como seu arquivo ~/.bitcoin/bitcoin.conf deve ficar

server=1

dbcache=1536

rpcport=8332
rpcuser=bitcoinrpc
rpcpassword=yKVT3dVjz5kjG8K7ewWu94

# substitua 10.0.0.15 pelo seu endereço de IP do seu servidor
rpcbind=10.0.0.15
rpcbind=127.0.0.1

#substitua 10.0.0.50 pelo endereço de IP que poderá se conectar via RPC
rpcallowip=10.0.0.50
rpcallowip=127.0.0.1

Tendo seguido todos esses passos você tem tudo pronto para executar o software cliente como um full-node.

INICIANDO O CORE BITCOIN

Conectando à mainnet em modo daemon para não segurar o terminal.

$ bitcoind -daemon
Bitcoin server starting

ENCRIPTAR CARTEIRA

É extremamente importante encriptar a carteira adicionando uma senha para realizar à sua manipulação.

$ bitcoin-cli encryptwallet sua_senha_aqui

Inicie o bitcoind novamente para verificar o novo atributo da carteira encriptada.

$ bitcoin-cli stop
$ bitcoind -daemon
$ bitcoin-cli -getinfo
{
  "version": 180000,
  "protocolversion": 70015,
  "walletversion": 169900,
  "balance": 0.00000000,
  "blocks": 387195,
  "timeoffset": 0,
  "connections": 8,
  "proxy": "",
  "difficulty": 79102380900.22598,
  "testnet": false,
  "keypoololdest": 1564418881,
  "keypoolsize": 999,
  "unlocked_until": 0, # <--- sua carteira está protegida
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "warnings": ""
}

Para “abrir” sua carteira, utilize o comando walletpassphrase seguido de sua senha bem como o tempo que deseja que a carteira permaneça “aberta”.

$ bitcoin-cli walletpassphrase sua_senha_aqui 60

Quando você chamar novamente o getinfo, poderá verificar que a certeira esta “aberta”.

$ bitcoin-cli -getinfo
{
  "version": 180000,
  "protocolversion": 70015,
  "walletversion": 169900,
  "balance": 0.00000000,
  "blocks": 394234,
  "timeoffset": 0,
  "connections": 8,
  "proxy": "",
  "difficulty": 113354299801.4711,
  "testnet": false,
  "keypoololdest": 1564418881,
  "keypoolsize": 1000,
  "unlocked_until": 1564423839, <--- tempo em formato UNIX até quando a carteira permanecerá "aberta"
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "warnings": ""
}
Deixe um comentário

Seu endereço de email não será publicado. Os campos obrigatórios estão marcados com *