Hoe Tx-verwerking werkt

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 Transacties

Het berekenen van de balansen van elke NXT account vereist een scan van de gehele blockchain. Dit klinkt misschien inefficiënt, maar met de huidige netwerk- en CPUsnelheden is het geen hele grote berekeningstaak. Dit zorgt ervoor dat er minder werk vereist wordt van de NXT server en staat hierdoor zelfs mobiele apparaten toe een NXT node te zijn.

De details van een Nxt transacties zijn als volgt:

  1. De zender specificeert parameters voor de transactie. De types transacties variëren (geld sturen, een alias registreren, een bericht versturen, een asset uitgeven of een order voor een asset uitzetten), maar enige parameters moeten voor elke transactie ingegeven worden:
    • De geheime passphrase van de versturende account
    • De gespecificeerde kosten voor de transactie
    • Een deadline voor de transactie
    • Een facultatieve 'gerefereerde" transactie
  2. Alle waardes voor de transactie worden gecontroleerd.De verplichte parameters moeten bij voorbeeld gespecificeerd zijn; kosten kunnen niet kleiner of gelijk aan nul zijn; een deadline kan niet minder dan 1 minuut in de toekomst liggen.
  3. Als er geen uitzonderingen worden aangegeven als gevolg van de controle:
    1. Wordt de publieke sleutel voor het aanmakende account berekend d.m.v. de opgegeven geheime passphrase
    2. Wordt de accountinformatie van het aanmakende account opgehaald en worden de parameters voor de transactie verder gevalideerd.
      • De balans van de sturende account kan geen nul zijn
      • De bevestigde balans van de sturende account mag niet lager zijn dan de transactiehoeveelheid plus de transactiekosten
    3. Als de zendende account genoeg balans heeft voor de transactie:
      1. Wordt een nieuwe transactie aangemaakt, met een type en subtype waardenset die overeenkomt met het soort transactie die er gedaan wordt (geld sturen, een alias registreren, een bericht versturen, etc.). Alle gespecificeerde parameters worden in het Transactieobject opgenomen. Een uniek transactieID wordt aangemaakt bij het aanmaken van het object
      2. De transactie wordt ondertekend met de private sleutel van de zendende account.
      3. De versleutelde transactiedata wordt in een bericht geplaatst dat de netwerk peers instructies geeft om de transactie te verwerken.
      4. De transactie wordt naar alle peers op het netwerk verzonden.
  4. De server antwoordt met een resultaatcode: de transactieID, als het aanmaken van de transactie succesvol was; een foutcode en foutbericht als een controle van de parameters mislukt is.

2 Transactiebevestigingen

Alle Nxt transacties worden als "onbevestigd" gezien totdat ze opgenomen zijn in een geldig netwerkblok. Nieuwgemaakte blokken worden verdeeld naar het netwerk door de account die ze aanmaakt, en een transactie die in het blok is opgenomen wordt beschouwd als éénmaal bevestigd. Aangezien opvolgende blokken toegevoegd worden aan de bestaande ketting van blokken, voegt elk volgende blok één bevestiging toe aan het aantal bevestigingen van een transactie.

Nxt transacties worden betrouwbaar geacht na 10 bevestigingen. Tot 720 revente blokken kunnen door het netwerk worden "gereorganiseerd" in geval van problemen, zodat een transactie als onomkeerbaar gezien wordt na 721 bevestigingen. Transacties worden na 1440 bevestigingen als permanent gezien.