Criando um ambiente de testes

4 minutos de leitura

1. Introdução

Um ambiente de testes dedicado facilita o estudo dos componentes do Decred e a criação de novos aplicativos.

O uso da máquina virtual serve para separar completamente o ambiente de testes do ambiente de produção, mas é perfeitamente possível seguir apenas parte das sugestões, criando os usuários e instalando os aplicativos localmente, no caso da instalação de um full node na rede local ou um explorador de blocos com dcrdata.

Pré-requisitos

  • Oracle Virtualbox em https://www.virtualbox.org/
  • Imagem do Debian Linux 9, primeiro DVD em https://www.debian.org/CD/
  • dcrinstall e Decrediton em https://github.com/decred/decred-binaries/releases/
  • Golang (opcional) em https://golang.org/dl/

2. Instalação

Usuários de Debian e Ubuntu no host podem instalar o Virtualbox através de:

$ sudo apt-get install virtualbox

Para outros pacotes de instalação, verifique o hash SHA256 disponível na página de Downloads.

Instale o Oracle Virtualbox normalmente e inicie a criação da máquina virtual. Uma configuração recomendada seria 2 processadores, 2GB de RAM, 1 placa de rede, 1 DVD. O espaço em disco depende do que será instalado. Veja a seguir.

2.1. Particionamento

É melhor separar as partições e os discos para facilitar o gerenciamento do espaço em disco. No caso dos diretórios /boot, /, /home e /root, esses serão sempre necessários e devem ficar no disco principal. A vantagem de partições separadas é facilitar a atualização do sistema e evitar que o espaço em disco do sistema seja ocupado por muitos arquivos salvos em /home ou /root.

Para o download da blockchain pode ser usado um disco virtual separado, para facilitar o gerenciamento. No exemplo, o segundo disco foi montado no diretório /opt/blockchain. Para armazenar as blockchains da Mainnet e da Testnet, reserve no mínimo, 7GB. Para instalar o dcrdata é necessário reservar um disco de no mínimo 25GB para o banco de dados PostgreSQL, que no exemplo foi montado no diretório /opt/pgsql. Pode ser necessário adiconar outros discos caso outros componentes sejam instalados no mesmo servidor.

Figura 1 - Sugestão de particionamento
Figura 1 - Sugestão de particionamento

2.2. Instalação e atualização

Antes de instalar o Debian Linux, verifique a sua assinatura digital. Saiba mais em Verificando assinaturas digitais: Debian Linux.

Faça a instalação padrão do Debian. Regras de firewall podem ser configuradas como no exemplo do artigo A estrutura do Decred.

Instale o sudo (Super User do) e adicione o seu usuário (criado na instalação) ao grupo sudo (grupo de usuários que podem executar o comando sudo). Daí em diante passe a usar o sudo para executar comandos que requerem poderes de root.

$ su -
# apt-get install sudo
# usermod -aG sudo $USERNAME

Para verificar se o seu usuário é membro do grupo sudo:

# groups $USERNAME

Se fez logon com seu usuário não-administrativo (no lugar do usuário root), será necessário fazer logoff e logon para atualizar a informação sobre os grupos do usuário. Após o logon, faça a atualização do sistema operacional:

$ sudo apt-get update && apt-get upgrade

3. Criação de usuários

A partir do Decrediton 1.2.1 em diante é possível gerenciar várias carteiras com um único usuário, escolhendo a carteira que será usada após iniciar o Decrediton. Para facilitar a separação e o entendimento serão mantidos aqui usuários separados.

Crie os usuários para cada personagem do teste que pretende executar. Cada usuário terá sua própria carteira, assim é possível reaproveitar os usuários e as carteiras em outros testes e executá-las em paralelo.

$ sudo adduser alice
$ sudo adduser bob

Figura 2 - Sugestão de estrutura de diretórios
Figura 2 - Sugestão de estrutura de diretórios

4. Componentes

Baixe o decred-linux e o Decrediton em https://github.com/decred/decred-binaries/releases/ e disponibilize em um diretório acessível por todos os usuários de testes:

$ mv decred-linux-$ARCH-$VERSION.tar.gz decrediton-$VERSION.tar.gz /opt

Antes de descompactar o decred-linux ou o Decrediton, verifique as assinaturas digitais. Saiba mais sobre a Instalação do Decrediton.

4.1. dcrd

Com o seu usuário, descompacte o pacote do Decred dentro de /opt:

$ sudo tar -C /opt -xvf decred-linux-$ARCH-$VERSION.tar.gz

Faça uma cópia do arquivo sample-dcrd.conf para dcrd.conf. Configure usuário e senha do RPC no arquivo dcrd.conf. Para executar o dcrd na Testnet:

$ cd /opt/decred-linux-$ARCH-$VERSION
$ ./dcrd --testnet -C dcrd.conf -b /opt/blockchain

Para mais detalhes veja o artigo Instalando o dcrd.

Minimize a janela do terminal.

4.2. dcrwallet e Decrediton

Faça logon com um dos usuários de testes (Alice, Bob, etc) e descompacte os pacotes.

$ su - alice

$ tar -C $HOME -xvf decred-linux-$ARCH-$VERSION.tar.gz
$ tar -C $HOME -xvf decrediton-$VERSION.tar.gz

Entre no diretório dos executáveis do Decred e execute o dcrwallet para criar uma nova carteira com:

$ cd $HOME/decred-linux-$ARCH-$VERSION
$ ./dcrwallet --testnet create

Faça uma cópia do arquivo sample-dcrwallet.conf para dcrwallet.conf. Configure os mesmos usuário e senha de RPC do arquivo dcrd.conf no arquivo dcrwallet.conf.

Para executar um dcrwallet por usuário ao mesmo tempo, será necessário especificar portas TCP diferentes para cada conexão do dcrctl. Após executar o dcrwallet, minimize o terminal.

alice@testnet$ ./dcrwallet --testnet --rpclisten=127.0.0.1:9211
alice@testnet$ ./dcrctl --testnet -s 127.0.0.1:9211 --wallet getbalance

Em outro terminal, execute o dcrctl. Repare na mudança de porta.

bob@testnet$ ./dcrwallet --testnet --rpclisten=127.0.0.1:9212
bob@testnet$ ./dcrctl --testnet -s 127.0.0.1:9212 --wallet getbalance

Para usar a mesma carteira no dcrwallet e no Decrediton será necessário copiar o arquivo de uma pasta para a outra antes do uso.

alice@testnet$ cp ~/.dcrwallet/testnet2/wallet.db ~/.config/decrediton/testnet2/

A execução de mais de um Decrediton simultaneamente é um pouco mais complicada porque precisa configurar o Decrediton para usar o dcrd local e também por causa do uso do dcrwallet interno. O uso compartilhado do dcrd e do dcrwallet será tratado em outros artigos.

5. Instalação do Go (golang)

Para fazer modificações nos componentes do Decred ou criar novos componentes usando a mesma linguagem veja a Instalando o Go (golang).