Як відбувається обробка транзакцій

From Nxt Wiki
Jump to: navigation, search
This page is a translated version of the page How Tx Processing Works and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎italiano • ‎português do Brasil • ‎русский • ‎українська

1 Транзакції

Обчислення балансу кожного аккаунта Nxt вимагає сканування усього ланцюжка блоків. Попри те, що це здається неефективним, з поточними швидкостями мережі і процесорів це не таке велике обчислювальне завдання. Це знижує необхідну роботу сервера і дозволяє використати в якості вузлів навіть малопотужні мобільні пристрої.

Можна виділити наступні особливості передачі Nxt :

  1. Посилач вказує параметри передачі. Існує безліч типів передачі (відправка грошей, створення альяса, передача повідомлення, видача активу або запит на актив), але тільки декілька параметрів можуть бути вказані для передачі:
    • пароль (секретна фраза) посилача
    • певна плата за проведення транзакції
    • deadline для цієї транзакції. Якщо за вказаний час транзакція не обробиться - операція буде скасована.
    • опционально - "залежна" транзакція
  2. Перевіряється усі введені значення для перекладу. Наприклад, обов'язкові параметри мають бути задані, плата за переклад не може бути менша або дорівнює нулю, дедлайн перекладу не може бути менше 1 хвилини.
  3. Якщо в процесі перевірки не з'явилося ніяких помилок, то:
    1. За допомогою пароля (секретної фрази) створюється публічний ключ для аккаунта посилача
    2. Витягається інформація про аккаунт, параметри передачі перевіряються далі:
      • Баланс посилача більше нуля
      • Баланс посилача має бути більший або дорівнює сумі переказу плюс комісія за передачу
    3. Якщо посилач задовольняє вимогам, то:
      1. Створюється нова транзакція, з вказівкою типу і значення підтипу транзакції (відправка NXT, створення альяса, відправка повідомлення і так далі). Усі вказані параметри включаються у транзакцію, якому привласнюється унікальний ID транзакції.
      2. Транзакція підписується публічним ключем аккаунта посилача
      3. Зашифрована інформація доповнюється повідомленням, яке вказує вузлам мережі почати обробку транзакції
      4. Переклад передається усім вузлам в мережі
  4. Сервер відповідає з наступним результуючим кодом: ID транзакції, якщо створення перекладу сталося успішно; кодом або повідомленням помилки, якщо перевірка деяких параметрів провалилася.

2 Підтвердження транзакції

Усі транзакції позначаються, як "непідтверджені" до тих пір, поки не будуть включені в діючий блок. Нові блоки розміщені в мережі аккаунтом, які створив їх, і передачи включені в ці блоки мають бути підтверджені одного разу. Оскільки кожен подальший блок, що додається в ланцюжок, додає ще одне до загального числа підтверджень цієї транзакції.

Nxt транзакції вважаються надійними після 10 підтверджень. До 720 підтвердження блоки можуть бути реорганізовані мережею у разі якихось проблем, після 721 підтвердження транзакція вважається безповоротною. Після 1440 підтвердження транзакції вважаються перманентними.