How-To:Handle Deposits/pt-br

From Nxt Wiki
Jump to: navigation, search

Desenvolvedores têm fornecido algumas dicas sobre bons métodos para a implementação de recursos no seu software. Esta dica foi criado pelo Come-from-Beyond.

1 Uma maneira de lidar com depósitos

  1. Gere uma sequência de 50+ caracteres. Esta é a sua frase-senha mestra. Ela deve ser muito forte. Para este exemplo, vamos supor que a senha é "segredo".
  2. Quando um usuário deseja depositar moedas, você gera uma identificação única. Você pode usar um ID de usuário se não é necessário criar um novo endereço para cada depósito.
  3. Use "segredo"+ID para gerar uma senha para a conta de depósito. Por exemplo: "segredo8475347836".
  4. Utilize esta chamada de API para criar um ID da conta: http://localhost:7874/nxt?requestType=getAccountId&secretPhrase=segredo8475347836 irá retornar o correspondente ID de conta. Você deve dar este ID para o usuário.
  5. Verifique periodicamente para ver se o endereço tem transações de entrada: usa http://localhost:7874/nxt?requestType=getAccountTransactionIds&account=6975576163363041725&timestamp=0
  6. Para cada ID de transação na lista, você pode obter informações de transação: http://localhost:7874/nxt?requestType=getTransaction&transaction=83492836836338756
  7. Quando você obter um número suficiente de confirmações (pelo menos 10), você pode aumentar o saldo do usuário no software.

2 Algumas coisas muito importantes

Blocos podem se tornar órfãos e as transações podem ser cancelados, então preste atenção ao timestamp e prazo de validade da transação. Timestamp é medido em segundos desde o bloco gênese (24 de novembro de 2013, 12:00:00 UTC). O prazo de validade da transação é medido em minutos.

A transação expira quando timestamp + deadline*60 < tempo atual . Ela não pode ser incluída em um bloco com um timestamp maior que timestamp (da transação) + deadline*60. O tempo atual pode ser obtido com http://localhost:7874/nxt?requestType=getTime

Para se certificar de que você não vai perder a transação, você deve verificar se um usuário usa um longo prazo de validade e não tenta enganá-lo através da criação de um timestamp muito antigo.

Além disso, até que uma transação recebe 720 confirmações, você deve verificar se ela ainda está confirmada. Se não (devido à reorganização do blockchain), retransmita a transação para a rede usando http://localhost:7874/nxt?requestType=broadcastTransaction&transactionBytes=f11234bd3a2fc19c2ba6b7c0d108deea9fcbafda5f544e4648c651ec4ed34ed2. Bytes de transação podem ser obtidas via http://localhost:7874/nxt?requestType=getTransactionBytes&transaction=83492836836338756.