How-To:Handle Deposits/ru

From Nxt Wiki
Jump to: navigation, search

Разработчики предоставили некоторые идеи для реализации функций в вашем ПО. Этот совет предложен пользователем под ником Come-from-Beyond.

1 Один из способов управления депозитами

  1. Сгенерируйте строку длиною более 50 символов. Это ваша кодовая последовательность. Она должна быть надежной. Для этого примера предположим, что это слово "секрет".
  2. Когда пользователь хочет вложить монеты, вы генерируете уникальный ID. Вы можете использовать ID пользователя, если не так важно создавать новый адрес для каждого депозита.
  3. Используйте "secret"+ID для генерации кодового слова для аккаунта с депозитом. Например, "secret8475347836".
  4. Используйте эту API функцию для создания ID аккаунта: http://localhost:7874/nxt?requestType=getAccountId&secretPhrase=secret8475347836 вернет соответствующий ID аккаунта. Вы должны предоставить его пользователю.
  5. Периодически проверяйте, поступают ли транзакции на этот адрес: use http://localhost:7874/nxt?requestType=getAccountTransactionIds&account=6975576163363041725&timestamp=0
  6. Для каждого ID транзакции вы можете получить информацию о переводе: http://localhost:7874/nxt?requestType=getTransaction&transaction=83492836836338756
  7. Когда вы получили достаточно подтверждений ( как минимум 10), вы можете увеличить баланс пользователя в своем ПО.

2 Некоторые важные вещи

Блоки могут быть потеряны и транзакции могут быть отменены, поэтому уделяйте внимание отметке времени и значению дедлайна. Отметка времени измеряется в секундах с момента создания первого блока (24 ноября 2013 в 12:00:00 UTC). Дедлайн транзакции измеряется в минутах.

Транзакция истекает, когда отметка времени + дедлайн * 60 < текущее время. Транзакция со значением большим, чем отметка времени (транзакции) + дедлайн * 60, не может быть включена в блок. Текущее время можно получить с помощью запроса http://localhost:7874/nxt?requestType=getTime.

Для того, чтобы быть уверенным что вы не потеряете транзакцию, вы должны проверить, что пользователь использует большой дедлайн и не пытается обмануть вас установив временную отметку в значение в далеком прошлом.

Также, пока транзакция не получит 720 подтверждений, вы должны проверять, что она все еще подтверждается. Если нет (из-за реорганизации цепочки блоков), переотправьте транзакцию в сеть используя http://localhost:7874/nxt?requestType=broadcastTransaction&transactionBytes=f11234bd3a2fc19c2ba6b7c0d108deea9fcbafda5f544e4648c651ec4ed34ed2. Значение транзакции в байтах можно получить запросом http://localhost:7874/nxt?requestType=getTransactionBytes&transaction=83492836836338756.