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 no inicializado.
PENDING El validador conoce la transacción, pero aún no se finalizó.
FINALIZED Se finalizó 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. Es la 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 se representa como una lista de pares (hijo izquierdo, hijo derecho), y el primer par son los hijos izquierdo y derecho del nodo principal de la hoja determinada. Por ejemplo, supongamos que el árbol de Merkle se compiló 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á: [(t0, t1), (h10, h11), (h20, h21)].

Se pueden calcular de forma consecutiva los resúmenes SHA-256 de cada nodo de la ruta para verificar que el resumen de la ruta produzca el mismo valor que 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

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 emitió 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. Es la suma de verificación homomórfica de los efectos. Es 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

Son los 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 en el código de estado de gRPC correspondiente.

message

string (bytes format)

Solo salida. El mensaje de error, si corresponde. Solo se establece si el código no es OK. Es una cadena codificada como bytes UTF-8. Se almacenan como bytes para evitar problemas 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úmeros enteros) 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 del 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 que produce 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 produjo la transacción, por ejemplo, el ID de cuenta de una cuenta recién creada.

attributes[]

object (EventAttribute)

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

EventAttribute

Es un atributo individual como un par clave-valor.

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

string

Solo salida. Es 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 del mundo después de que se aplican los efectos de esta ronda.

roundDeltaChecksumHex

string

Solo salida. Es la representación hexadecimal del resumen homomórfico sobre los efectos de la transacción agregada 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. Firma del validador. Esta firma se realiza 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 está finalizada, es decir, si un quórum suficiente de validadores certificó esta ronda con el mismo certificado.

MerkleTree

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

Representación JSON
{
  "rootHashHex": string,
  "rootDigestHex": string,
  "numTransactions": string
}
Campos
rootHashHex
(deprecated)

string

Solo salida. Es el resumen criptográfico del nodo raíz. Obsoleto: Usa rootDigestHex en su lugar.

rootDigestHex

string

Solo salida. Es la representación hexadecimal del resumen del nodo raíz. Formato: Es 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 Merkle.

Representación JSON
{
  "leftChildHashHex": string,
  "rightChildHashHex": string,
  "leftChildDigestHex": string,
  "rightChildDigestHex": string
}
Campos
leftChildHashHex
(deprecated)

string

Solo salida. Es la representación hexadecimal del resumen del hijo izquierdo de un nodo. Obsoleto: Usa leftChildDigestHex en su lugar.

rightChildHashHex
(deprecated)

string

Solo salida. Es la representación hexadecimal del resumen del hijo derecho de un nodo. Obsoleto: Usa rightChildDigestHex en su lugar.

leftChildDigestHex

string

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

rightChildDigestHex

string

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

StatusEvent

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

Todos los valores registrados se basan en la perspectiva del validador que controla la solicitud y pueden diferir de la opinión de otros validadores.

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

string (Timestamp format)

Solo salida. Es la fecha y 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 los detalles adicionales asociados con el evento.

EventType

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

Enums
EVENT_TYPE_UNSPECIFIED Evento desconocido o no especificado.
EVENT_TYPE_RECEIVED El validador recibió la transacción directamente de un cliente.
EVENT_TYPE_BROADCASTED Esta entidad transmitió la transacción a otros validadores.
EVENT_TYPE_ORDERED El validador ordenó y programó la ejecución de la transacció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 El validador finalizó la transacción.

EventDetails

Representa detalles adicionales de un evento de estado.

Representación JSON
{

  // Union field event_details can be only one of the following:
  "executionDetails": {
    object (ExecutionDetails)
  }
  // End of list of possible types for union field event_details.
}
Campos
Campo de unión event_details. Son los detalles del evento. event_details puede ser solo uno de los parámetros siguientes:
executionDetails

object (ExecutionDetails)

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

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 ocurrió el evento de ejecución.