Testando o Decred na Testnet
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
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
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 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
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
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
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
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
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
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