Os Nós Remoto de Carteira fornecem dados para as Light Wallets - Carteiras Leves -, tais como carteiras em smartphones ou mesmo carteiras em desktops. Ao provedor de um Nó Remoto de Carteira é dada a possibilidade de cobrar uma taxa por seu uso, provendo uma forma de monetizar no ecossistema da rede Niobio Cash.
A função de um Nó Remoto é prover informações sobre as transações na rede, além do próprio saldo, para uma carteira Niobio Cash. Desse modo, elimina a necessidade de baixar localmente uma cópia da blockchain, tornando o uso mais ágil e simples para o usuário comum.
Um Nó Remoto de Carteira é, essencialmente, um full node com um recurso extra habilitado. Este recurso permite a cobrança de uma taxa percentual sobre cada transação enviada pelo usuário conectado.
A especificação completa de um Nó Remoto de Carteira pode ser encontrada em https://github.com/niobio-cash/ncip/blob/master/ncip-0004-pt_BR.mediawiki
Um full node na rede Niobio Cash é executado através do niobiod, o daemon principal entre os componentes de software da rede. Pacotes compilados podem ser baixados em https://github.com/niobio-cash/niobio-node-daemon/releases. O recurso necessário para a execução de um Nó Remoto foi incluído a partir da versão 1.6.8 - Shai. Dependendo do sistema pode ser necessário baixar o código fonte e compilar localmente. Instruções desse processo, assim como informação sobre as dependências necessárias, estão disponível em https://github.com/niobio-cash/niobio-node-daemon.
Com o pacote disponível em um servidor, o daemon pode ser executado com usuário comum, não é necessário rodar a partir do root ou Administrator. É importante ressaltar que um full node vai expor as portas 8313 e 8314 por padrão. Logo, a configuração de firewall deve permitir conexões de entrada a essas portas ou àquelas utilizadas caso opte-se por mudar o padrão.
Para subir o serviço é preciso utilizar o seguinte comando:
./niobiod --fee-address <endereço_de_carteira> --fee <taxa_em_percentual> --rpc-bind-ip 0.0.0.0 --restricted-rpc --enable-blockchain-indexes --enable-cors "*"
O endereço_de_carteira é o endereço da carteira que vai receber os valores pagos pelos usuários como taxa pelo serviço de Nó de Carteira. A taxa que o provedor deseja cobrar é especificada no campo taxa_em_percentual, sendo possível usar casas decimais, sempre separadas por um ponto.
Os outros parâmetros do comando são necessários para o funcionamento do full node. A seguir, um exemplo:
./niobiod --fee-address N8jNZ3gVi7zAj5zUU2vXap1iDpdFzB8rAScAeTG7JgqA7a5qtJb34HB5oCUdW1GiExNMJmGHtLf6qNGGjhPwDe2H633YDYb --fee 0.25 --rpc-bind-ip 0.0.0.0 --restricted-rpc --enable-blockchain-indexes --enable-cors "*"
Neste caso, estará sendo cobrada uma taxa de 0.25% do montante de cada envio que o usuário conectado a este Nó de Carteira fizer.
Um limite máximo de 5% é permitido para o percentual de taxa. Além disso, qualquer que seja esse percentual há o limite absoluto de 10NBR por transação.
O niobiod é um serviço de execução contínua, ou seja, é necessário que ele continue rodando mesmo após o administrador desconectar de seu terminal. No linux uma excelente opção, para se conseguir isso, é o multiplexador de terminais chamado screen. Basta chamar o comando original acrescentando o screen antes:
screen ./niobiod [restante do comando...]
O software iniciará normalmente. Para desconectar basta digitar CTRL-D, o que trará o prompt do terminal o qual, por sua vez, pode ser fechado normalmente sem que o processo do Nó Remoto seja encerrado. Quando for necessário acessar o niobiod novamente basta acessar o terminal com o mesmo usuário e digitar screen -r e o terminal atual será novamente conectado a sessão do daemon.
Mais informações sobre o screen podem ser encontradas em https://www.vivaolinux.com.br/dica/Magicas-com-o-utilitario-screen-em-conexoes-remotas.
Para validar que o serviço está funcionando é muito simples, basta fazer uma chamada a API que devolve o endereço de carteira e valor da taxa. Isso pode ser feito através do navegador em alguns casos, ou através do comando curl.
Para isolar a possibilidade de problemas na rede ou no DNS, a primeira forma de verificação é local, ou seja, acessar o serviço da mesma máquina onde ele roda, e sem resolução de nomes. Para isso, em outro terminal, executa-se a chamada da API através do comando curl.
curl http://127.0.0.1:8314/feeaddress
A reposta esperada é do tipo abaixo, apenas com os valores correspondentes a respectiva instalação.
{"fee_address":"NEVtKAvw6p6icaagBFBgVGUa9Udhgmf5u9NEdNoErroJPs57LSqxnjQLDGiJPrHorZUb1jpShLefMJqHakzFopfDPE6qnYu","fee_percent":0.3,"status":"OK"}
Um exemplo de indicativo de problema é mostrado abaixo.
curl: (7) Failed to connect to 122.0.0.1 port 8314: Operation timed out
Uma vez confirmado localmente que o serviço está operacional, verifica-se se ele é acessível remotamente pela Internet. A verificação, nesse caso, deve ser feita de outra estação e utilizando o nome DNS do servidor remoto.
curl http://remote-nbr-hydra.niobioco.in:8314/feeaddress
A resposta esperada é a mesma do teste local.
Caso haja problema no teste remoto, e o teste local tenha sucesso, as seguintes causas de problemas são as mais prováveis:
Para que um Nó de Carteira seja listado para os usuários, ele deve estar inserido no arquivo JSON localizado em https://github.com/niobio-cash/wallet-support-files/blob/master/wallet-nodes.txt. Para isso, o provedor deve solicitar sua inclusão através de um pull request no repositório, ou a abertura de uma issue, ou enviando um email para contato AT niobiocash DOT org.