Testando o Decred na Testnet

4 minutos de leitura

1. Introdução

Para explorar melhor alguns conceitos, fazer experimentos, testar a implantação de Decred como forma de pagamento e desenvolver para Decred você precisará da Testnet.

A Testnet é um ambiente com regras similares às regras da Mainnet, mas com dinheiro de mentira, uma blockchain de testes. Para conhecer as diferenças técnicas entre os ambientes veja o arquivo de parâmetros do dcrd aqui.

Saiba mais sobre a estrutura do Decred.

2. Executando um node da Testnet

Para entrar na Testnet é necessário baixar a blockchain da Testnet, que já está na Testnet2. Periodicamente a Testnet é reiniciada para que o tamanho da blockchain não seja um fator de complicação aos testes.

2.1. Configuração

2.1.1. Decrediton

Para usar o Decrediton na Testnet é necessário apenas alterar a rede onde o Decrediton se conecta. A configuração é feita no arquivo ~/.config/decrediton/config.json.

Se essa pasta ainda não existe, inicie o Decrediton e encerre logo em seguida. A pasta e os arquivos serão criados. No arquivo ~/.config/decrediton/config.json, altere o parâmetro "network": "mainnet",:

"network": "testnet",

Esse é o melhor momento de definir onde ficará armazenada a blockchain. No arquivo ~/.config/decrediton/dcrd.conf fica a configuração do diretório. Se o parâmetro não existir no arquivo, crie-o logo após o último parâmetro existente, como o exemplo abaixo:

[Application Options]
rpcuser=$USER
rpcpass=$PASSWORD
datadir=/opt/blockchain

Reinicie o Decrediton. Ao abrir ele mostrará que está conectado a Testnet (no botão quadrado azul, em cima do ícone da carteira). Será criada uma nova pasta, chamada testnet2, em ~/Library/Application Support/Dcrd/data ao lado da pasta mainnet já existente. Ali ficará armazenada a blockchain da Testnet2.

Figura 1 - Decrediton aberto em modo Testnet
Figura 1 - Decrediton aberto em modo Testnet

Para usar a carteira padrão, clique no ícone start/shutdown. Será usado o nome “default-wallet” para o diretório onde a carteira ficará armazenada, mas o usuário poderá escolher se quer criar uma nova seed ou usar uma já existente.

Figura 2 - Criação da carteira na Testnet através do Decrediton
Figura 2 - Criação da carteira na Testnet através do Decrediton

Se já possuir uma seed, selecione o botão “Restore Existing Wallet” e entre com a seed da carteira. Se não possuir, prossiga em “Create a New Wallet”.

Nas duas telas seguintes, o Decrediton pede que a seed seja anotada e depois confirmada. O usuário deverá definir uma senha para carteira.

Figura 3 - Decrediton apresenta a seed da carteira
Figura 3 - Decrediton apresenta a seed da carteira

Figura 4 - Validação da seed da carteira recém-criada no Decrediton
Figura 4 - Validação da seed da carteira recém-criada no Decrediton

A carteira é criada e o Decrediton está pronto para ser usado.

Figura 5 - Decrediton na Testnet pronto para uso
Figura 5 - Decrediton na Testnet pronto para uso

Para voltar a usar a Mainnet, edite novamente no arquivo ~/.config/decrediton/config.json e retorne o parâmetro network para a configuração original, mainnet, salve e reinicie o Decrediton.

2.1.2. dcrd e dcrwallet

Essa etapa não é necessária para quem quer usar apenas o Decrediton na Testnet.

Para executar o dcrd e o dcrwallet na Testnet só é necessário executá-los com a opção --testnet na linha de comando. Também é possível incluir a flag testnet=1 nos arquivos de configuração dcrd.conf e dcrwallet.conf, mas pode ser mas prático usar a linha de comando.

Quando executado pela primeira vez na Testnet o dcrd começará a baixar a blockchain da Testnet2 no diretório data/testnet2 do diretório home do dcrd ou no diretório especificado na flag datadir na linha de comando ou no dcrd.conf.

$ ./dcrd --testnet

Se executado pela linha de comando é possível especificar um caminho completamente diferente para armazenar a blockchain da Testnet2, até mesmo outro disco. Se for especificado o mesmo datadir as blockchains serão armazenadas em data/mainnet e data/testnet2.

$ ./dcrd --testnet --datadir=/another/path/to/blockchain

Antes de executar o dcrwallet pela linha de comando é preciso primeiro criar uma carteira da Testnet. As etapas de criação da carteira são as mesmas da Mainnet. Após a criação da carteira o dcrwallet pode ser executado normalmente.

$ ./dcrwallet --testnet --create
$ ./dcrwallet --testnet

Para enviar comandos para o dcrd e para o dcrwallet é necessário usar a flag --testnet com os comandos do dcrctl. Por exemplo, para verificar o saldo da carteira da Testnet o comando deve ser:

$ ./dcrctl --testnet --wallet getbalance

Veja mais sobre dcrwallet e dcrctl.

2.2. Comunicação

dcrd, dcrwallet e dcrctl se comunicam através de portas TCP. Se todos os componentes estão no mesmo dispositivo a comunicação deve ocorrer sem problemas.

Para saber mais sobre a comunicação entre os componentes e sugestões de regras de firewall leia o artigo A estrutura do Decred.

3. Testnet faucet

3.1. Web

A equipe de desenvolvedores criou um faucet web que envia DCRs para carteiras da Testnet. É com esses DCRs que você poderá fazer transferências e testes nessa rede. Acesse em https://faucet.decred.org/.

Figura 6 - Decred Testnet Faucet
Figura 6 - Decred Testnet Faucet

Para receber alguns DCRs na carteira de testes, crie um novo endereço de recebimento. Acesse o menu “Transactions” e depois selecione a guia “Receive”.

Figura 7 - Endereço de recebimento na Testnet
Figura 7 - Endereço de recebimento na Testnet

No Decrediton, clique no ícone ao lado do endereço para que o endereço seja copiado para a área de transferência. Informe esse endereço de recebimento no Decred Testnet Faucet:

Figura 8 - Envio do endereço de recebimento da Testnet para o site de faucets
Figura 8 - Envio do endereço de recebimento da Testnet para o site de faucets

Assim que o usuário pede o envio dos DCRs uma transação é criada.

Figura 9 - O site confirma o envio dos faucets para o endereço informado
Figura 9 - O site confirma o envio dos faucets para o endereço informado

Em breve aparecerá uma transação pendente no Decrediton. Aguarde a transação ser confirmada e os DCRs poderão ser gastos.

Figura 10 - Após alguns momentos a transferência estará confirmada no Decrediton
Figura 10 - Após alguns momentos a transferência estará confirmada no Decrediton

3.2. Testnetfaucet Go

Há também uma aplicação que pode ser executada localmente e necessita apenas que o Go esteja instalado. O Testnetfaucet envia uma quantidade configurável de DCR via RPC para uma instância de dcrwallet.

Saiba mais em: https://github.com/decred/testnetfaucet