Cómo se Procesan las Transacciones

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 Transacciones

Calcular los saldos de cada cuenta NXT requiere escanear toda la cadena de bloques. Aunque esto puede parecer poco eficiente, considerando las actuales velocidades de la red y de las CPU no se trata de una tarea tan pesada. Esto descarga de trabajo al servidor NXT y permite que incluso dispositivos móviles de baja potencia sean un nodo en NXT.

Los detalles de una transacción en NXT son los siguientes:

  1. El remitente especifica los parámetros de la transacción. Hay distintos tipos de transacciones (enviar dinero, crear un alias, transmitir un mensaje, emitir un activo o un pedido para un activo) pero hay varios parámetros que deben ser especificados en cada transacción:
    • la contraseña secreta de la cuenta emisora
    • una comisión especificada para la transacción
    • un tiempo límite para la transacción
    • una transacción "de referencia" opcional
  2. Se revisan todos los parámetros de entrada de la transacción. Por ejemplo, los parámetros obligatorios deben especificarse; las comisiones no pueden ser menores que o iguales a cero; el tiempo límite de una transacción no puede ser menor de 1 minuto en el futuro.
  3. Si no se producen errores a la hora de revisar los parámetros:
    1. La clave pública de la cuenta emisora se calcula utilizando la contraseña secreta suministrada
    2. Se obtiene la información de la cuenta emisora, y se validan los parámetros de la transacción:
      • El saldo de la cuenta emisora no puede ser cero
      • El saldo confirmado de la cuenta emisora no puede ser menor que la cantidad de la transacción más la comisión de la transacción
    3. Si la cuenta emisora posee fondos suficientes para la transacción:
      1. Se crea una transacción nueva, con valores de tipo y subtipo de acuerdo con la clase de transacción realizada (enviar dinero, crear un alias, mandar un mensaje, etc.). Todos los parámetros especificados se incluyen en el objeto de la Transacción. Se genera una ID de transacción única al crear el objeto
      2. La transacción es firmada usando la clave privada del emisor
      3. Los datos encriptados de la transacción se incluyen en un mensaje dando instrucciones a los pares de la red para procesar la transacción
      4. La transacción se difunde a todos los pares en la red
  4. El servidor responde con un código de resultado: la ID de transacción, si la transacción ha sido creada con éxito; o un código y mensaje de error si alguna de las comprobaciones de parámetros ha fallado.

2 Confirmaciones de Transacción

Todas las transacciones en Nxt se consideran "sin confirmar" hasta ser incluidas en un bloque válido en la red. Los bloques recién creados son distribuidos en la red por la cuenta que los genera, y una transacción incluida en un bloque se considera confirmada una vez. Como los bloques subsiguientes se añaden a la cadena de bloques existente, cada bloque adicional añade una confirmación más al número de confirmaciones de una transacción.

Se considera a las transacciones en Nxt fiables tras 10 confirmaciones. Un máximo de 720 bloques recientes pueden ser "re-organizados" por la red si hay problemas, de modo que una transacción se considera irreversible tras 721 confirmaciones. Las transacciones que han sido confirmadas 1440 veces se consideran permanentes.