TransactionAttempt

Es el estado de un intento de envío de transacción.

Representación JSON
{
  "status": enum (TransactionStatus),
  "proofOfInclusion": {
    object (ProofOfInclusion)
  },
  "statusEvents": [
    {
      object (StatusEvent)
    }
  ]
}
Campos
status

enum (TransactionStatus)

Solo salida. Es el estado actual del intento de transacción.

proofOfInclusion

object (ProofOfInclusion)

Solo salida. Certificado de la inclusión de los efectos de la transacción en el estado mundial. Solo se proporciona si el estado es FINALIZED.

statusEvents[]

object (StatusEvent)

Solo salida. Son los eventos de estado ordenados que se registraron para el intento de transacción.

TransactionStatus

Es el estado del intento de transacción.

Enums
TRANSACTION_STATUS_UNSPECIFIED Estado desconocido o sin inicializar.
PENDING Este validador conoce la transacción, pero aún no se finalizó.
FINALIZED Se finaliza la transacción. Sus efectos se conservaron en la cadena de bloques y no se pueden revertir.

ProofOfInclusion

Certificado de la inclusión de los efectos de una transacción en el estado mundial.

Representación JSON
{
  "transactionCertificate": {
    object (TransactionCertificate)
  },
  "roundCertificate": {
    object (RoundCertificate)
  },
  "pathToRoundRoot": [
    {
      object (MerkleTreeNode)
    }
  ]
}
Campos
transactionCertificate

object (TransactionCertificate)

Solo salida. Certificado de la inclusión de los efectos de la transacción en una ronda específica.

roundCertificate

object (RoundCertificate)

Solo salida. Certificado de la ejecución de la ronda.

pathToRoundRoot[]

object (MerkleTreeNode)

Solo salida. Prueba criptográfica de la inclusión de los efectos de la transacción en la ronda de ejecución.

Se proporciona como una ruta de acceso desde una hoja determinada (un resumen de la transacción) hasta la raíz de la ronda de ejecución. La ruta de acceso se representa como una lista de pares (elemento secundario izquierdo, elemento secundario derecho), y el primer par son los elementos secundarios izquierdo y derecho del nodo superior de la hoja determinada. Por ejemplo, suponiendo que el árbol de Merkle se creó con ocho resúmenes de hojas [t0, t1, t2, t3, t4, t5, t6, t7], con la siguiente estructura:

       _____root_digest____
      |                    |
   __ h20__             __h21__
  |        |           |       |
 h10     h11          h12     h13
 | |     | |          | |     | |
t0 t1   t2 t3        t4 t5   t6 t7

Aquí, pathToRoundRoot para t0 contendrá lo siguiente: [(t0, t1), (h10, h11), (h20, h21)].

Se pueden calcular de forma consecutiva los resúmenes SHA-256 de cada nodo de ruta para verificar que el resumen de la ruta produzca el mismo valor que el roundCertificate.merkle_tree.root_digest_hex. De esta manera, se verifica que la hoja se haya incluido en el árbol de Merkle de la ronda.

TransactionCertificate

Es el certificado de la ejecución de una transacción específica en una ronda.

Representación JSON
{
  "transactionDigestHex": string,
  "roundId": string,
  "transactionEffects": {
    object (TransactionEffects)
  },
  "events": [
    {
      object (TransactionEvent)
    }
  ],
  "transactionEffectsStateChecksumHex": string,
  "certificationResultsDigestHex": string
}
Campos
transactionDigestHex

string

Solo salida. Es el ID de la transacción para la que se emite este certificado.

roundId

string (int64 format)

Solo salida. Es el ID de la ronda de ejecución en la que se ejecutó esta transacción.

transactionEffects

object (TransactionEffects)

Solo salida. Son los efectos de la ejecución de la transacción.

events[]

object (TransactionEvent)

Solo salida. Son los eventos que produce la transacción.

transactionEffectsStateChecksumHex

string

Solo salida. Suma de comprobación homomórfica de los efectos. Un valor de 2,048 bytes codificado como una cadena hexadecimal.

certificationResultsDigestHex

string

Solo salida. Es el resumen criptográfico de todos los campos anteriores en secuencia. Se usa para compilar un árbol de Merkle para la prueba de inclusión.

TransactionEffects

Efectos de la ejecución de una transacción.

Representación JSON
{
  "status": {
    object (TransactionStatus)
  },
  "effects": [
    {
      object (TransactionEffect)
    }
  ]
}
Campos
status

object (TransactionStatus)

Solo salida. Es el estado resultante de la ejecución de la transacción.

effects[]
(deprecated)

object (TransactionEffect)

Solo salida. Obsoleto: En su lugar, consulta el estado de la red para determinar cualquier cambio en el estado del mundo. Son los efectos de la transacción en el estado mundial.

TransactionStatus

Representa el estado de la ejecución de una transacción.

Representación JSON
{
  "code": integer,
  "message": string
}
Campos
code

integer

Solo salida. El código de estado, un valor numérico cuyo significado se define por el código de estado de gRPC correspondiente.

message

string (bytes format)

Solo salida. El mensaje de error, si corresponde. Se establece solo si el código no es OK. Esta es una cadena codificada como bytes utf-8. Se almacena como bytes para evitar cualquier problema con el determinismo de la codificación.

Es una cadena codificada en Base64.

TransactionEffect

Representa una actualización de alguna transacción al estado mundial.

Si tiene un deltaVal, se supone que es un delta (un desplazamiento de número entero) que se aplica al valor almacenado previamente en una clave determinada. En ese caso, newVal y oldVal deben estar vacíos.

De lo contrario, se supone que tiene al menos uno de los valores oldVal o newVal (o ambos). Un oldVal vacío indica que se insertó el valor. Un newVal vacío indica que se borró el valor.

Representación JSON
{
  "key": string,
  "oldVal": string,
  "newVal": string,
  "deltaVal": string
}
Campos
key

string (bytes format)

Solo salida. Es la clave en el estado mundial que se actualizó.

Es una cadena codificada en Base64.

oldVal

string (bytes format)

Solo salida. Es el valor de la clave antes de que se ejecutara la transacción.

Es una cadena codificada en Base64.

newVal

string (bytes format)

Solo salida. Es el valor de la clave después de que se ejecutó la transacción.

Es una cadena codificada en Base64.

deltaVal

string (int64 format)

Solo salida. Es un desplazamiento de número entero que se aplicó al valor almacenado anteriormente.

TransactionEvent

Es un evento producido por una transacción.

Representación JSON
{
  "type": string,
  "attributes": [
    {
      object (EventAttribute)
    }
  ]
}
Campos
type

string

Solo salida. El tipo de evento Un evento especial de tipo transaction_output contiene los resultados que produce la transacción, por ejemplo, el ID de una cuenta recién creada.

attributes[]

object (EventAttribute)

Solo salida. Son los atributos del evento como pares clave-valor arbitrarios.

EventAttribute

Un atributo individual como un par clave-valor.

Representación JSON
{
  "key": string,
  "value": string
}
Campos
key

string

Solo salida. La clave del atributo.

value

string

Solo salida. Es el valor del atributo.

RoundCertificate

Certificado de la ejecución de una ronda por parte de un validador específico.

Representación JSON
{
  "roundId": string,
  "validatorId": string,
  "roundStateChecksumHex": string,
  "roundDeltaChecksumHex": string,
  "merkleTree": {
    object (MerkleTree)
  },
  "validatorSignatures": [
    string
  ],
  "isFinalized": boolean
}
Campos
roundId

string (int64 format)

Solo salida. Es el ID de la ronda para la que se emite el certificado.

validatorId

string

Solo salida. Es el identificador del validador legible por humanos. Se usa para buscar la clave pública con la que se verifica el validatorSignatures.

roundStateChecksumHex

string

Solo salida. Es la representación hexadecimal del resumen homomórfico sobre el estado mundial después de que se aplican los efectos de esta ronda.

roundDeltaChecksumHex

string

Solo salida. Es la representación hexadecimal del resumen homomórfico de los efectos de las transacciones agregadas de esta ronda.

merkleTree

object (MerkleTree)

Solo salida. Árbol de Merkle que tiene esta ronda como nodo raíz y lotes de transacciones (ejecutados en la ronda) como hojas.

validatorSignatures[]

string (bytes format)

Es opcional. La firma del validador. Esto se firma sobre el resumen de la carga útil anterior de este registro.

Es una cadena codificada en Base64.

isFinalized

boolean

Solo salida. Es un valor booleano que indica si la ronda finalizó, es decir, si un quórum suficiente de validadores certificó esta ronda con el mismo certificado.

MerkleTree

Un árbol de Merkle con un resumen criptográfico del nodo raíz.

Representación JSON
{
  "rootDigestHex": string,
  "numTransactions": string
}
Campos
rootDigestHex

string

Solo salida. Es la representación hexadecimal del resumen del nodo raíz. Formato: Una cadena hexadecimal de 64 caracteres.

numTransactions

string (int64 format)

Solo salida. Es la cantidad de transacciones en el árbol.

MerkleTreeNode

Representa un nodo en una ruta de árbol de Merkle.

Representación JSON
{
  "leftChildDigestHex": string,
  "rightChildDigestHex": string
}
Campos
leftChildDigestHex

string

Solo salida. Es la representación hexadecimal del resumen del elemento secundario izquierdo de un nodo. Formato: Una cadena hexadecimal de 64 caracteres.

rightChildDigestHex

string

Solo salida. Es la representación hexadecimal del resumen del elemento secundario derecho de un nodo. Formato: Una cadena hexadecimal de 64 caracteres.

StatusEvent

Representa un evento en el procesamiento de una transacción según lo observado por un solo validador.

Todos los valores informados se basan en la perspectiva del validador que controla la solicitud y pueden diferir de la vista de otros validadores.

Representación JSON
{
  "eventTime": string,
  "eventType": enum (EventType),
  "eventDetails": {
    object (EventDetails)
  }
}
Campos
eventTime

string (Timestamp format)

Solo salida. Es la hora en que este validador registró el evento.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

eventType

enum (EventType)

Solo salida. Es el tipo de evento.

eventDetails

object (EventDetails)

Solo salida. Son detalles adicionales asociados con el evento.

EventType

Representa el tipo de evento en el procesamiento de una transacción, según lo observado por el validador al que se enrutó la solicitud.

Enums
EVENT_TYPE_UNSPECIFIED Indica que el evento es desconocido o que este no se especificó.
EVENT_TYPE_RECEIVED Este validador recibió la transacción directamente de un cliente.
EVENT_TYPE_BROADCASTED Este nodo transmitió la transacción a otros validadores.
EVENT_TYPE_ORDERED Este validador ordenó la transacción y la programó para su ejecución.
EVENT_TYPE_EXECUTION_STARTED Se inició la ejecución de la transacción.
EVENT_TYPE_EXECUTION_COMPLETED Se completó la ejecución de la transacción.
EVENT_TYPE_FINALIZED Este validador finalizó la transacción.

EventDetails

Representa detalles adicionales de un evento de estado.

Representación JSON
{

  // The following is a list of mutually exclusive fields. At most one of the
  // fields will be set in a response:
  "executionDetails": {
    object (ExecutionDetails)
  }
  // End of mutually exclusive fields.
}
Campos
Los detalles del evento. La siguiente es una lista de campos mutuamente excluyentes. Como máximo, se establecerá uno de los campos en una respuesta:
executionDetails

object (ExecutionDetails)

Solo salida. Son detalles adicionales de un evento de ejecución.

Fin de los campos mutuamente excluyentes.

ExecutionDetails

Son detalles adicionales de un evento de ejecución.

Representación JSON
{
  "roundId": string
}
Campos
roundId

string (int64 format)

Solo salida. Es el ID de la ronda en la que se produjo el evento de ejecución.