TransactionAttempt

État d'une tentative d'envoi de transaction.

Représentation JSON
{
  "status": enum (TransactionStatus),
  "proofOfInclusion": {
    object (ProofOfInclusion)
  },
  "statusEvents": [
    {
      object (StatusEvent)
    }
  ]
}
Champs
status

enum (TransactionStatus)

Uniquement en sortie. État actuel de la tentative de transaction.

proofOfInclusion

object (ProofOfInclusion)

Uniquement en sortie. Certificat d'inclusion des effets de la transaction dans l'état du monde. Fourni uniquement si l'état est FINALIZED.

statusEvents[]

object (StatusEvent)

Uniquement en sortie. Événements d'état enregistrés pour la tentative de transaction.

TransactionStatus

État de la tentative de transaction.

Enums
TRANSACTION_STATUS_UNSPECIFIED État inconnu ou non initialisé.
PENDING Le validateur connaît la transaction, mais elle n'est pas encore finalisée.
FINALIZED La transaction est finalisée. Ses effets ont été conservés sur la blockchain et ne peuvent pas être annulés.

ProofOfInclusion

Certificat d'inclusion des effets d'une transaction dans l'état du monde.

Représentation JSON
{
  "transactionCertificate": {
    object (TransactionCertificate)
  },
  "roundCertificate": {
    object (RoundCertificate)
  },
  "pathToRoundRoot": [
    {
      object (MerkleTreeNode)
    }
  ]
}
Champs
transactionCertificate

object (TransactionCertificate)

Uniquement en sortie. Certificat d'inclusion des effets de la transaction dans un tour spécifique.

roundCertificate

object (RoundCertificate)

Uniquement en sortie. Certificat d'exécution du tour.

pathToRoundRoot[]

object (MerkleTreeNode)

Uniquement en sortie. Preuve cryptographique de l'inclusion des effets de la transaction dans le tour d'exécution.

Il est fourni sous la forme d'un chemin d'accès d'une feuille donnée (un résumé de transaction) à la racine du tour d'exécution. Le chemin est représenté sous la forme d'une liste de paires (enfant de gauche, enfant de droite). La première paire correspond aux enfants de gauche et de droite du nœud parent de la feuille donnée. Par exemple, en supposant que l'arbre de Merkle ait été créé avec huit résumés de feuille [t0, t1, t2, t3, t4, t5, t6, t7], avec la structure suivante :

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

Dans pathToRoundRoot pour t0, vous trouverez : [(t0, t1), (h10, h11), (h20, h21)].

Il est possible de calculer consécutivement les condensés SHA-256 de chaque nœud de chemin d'accès pour vérifier que le condensé du chemin d'accès produit la même valeur que roundCertificate.merkle_tree.root_digest_hex. Cela permet de vérifier que la feuille a été incluse dans l'arbre de Merkle du tour.

TransactionCertificate

Certificat d'exécution d'une transaction spécifique dans un tour.

Représentation JSON
{
  "transactionDigestHex": string,
  "roundId": string,
  "transactionEffects": {
    object (TransactionEffects)
  },
  "events": [
    {
      object (TransactionEvent)
    }
  ],
  "transactionEffectsStateChecksumHex": string,
  "certificationResultsDigestHex": string
}
Champs
transactionDigestHex

string

Uniquement en sortie. ID de la transaction à laquelle ce certificat se rapporte.

roundId

string (int64 format)

Uniquement en sortie. ID du cycle d'exécution au cours duquel cette transaction a été exécutée.

transactionEffects

object (TransactionEffects)

Uniquement en sortie. Effets de l'exécution de la transaction.

events[]

object (TransactionEvent)

Uniquement en sortie. Événements générés par la transaction.

transactionEffectsStateChecksumHex

string

Uniquement en sortie. Somme de contrôle homomorphe des effets. Valeur de 2 048 octets encodée sous forme de chaîne hexadécimale.

certificationResultsDigestHex

string

Uniquement en sortie. Digest cryptographique de tous les champs précédents dans l'ordre. Utilisé pour créer un arbre Merkle pour la preuve d'inclusion.

TransactionEffects

Effets de l'exécution d'une transaction.

Représentation JSON
{
  "status": {
    object (TransactionStatus)
  },
  "effects": [
    {
      object (TransactionEffect)
    }
  ]
}
Champs
status

object (TransactionStatus)

Uniquement en sortie. État de l'exécution de la transaction.

effects[]
(deprecated)

object (TransactionEffect)

Uniquement en sortie. Obsolète : interrogez plutôt l'état du réseau pour déterminer les modifications apportées à l'état du monde. Effets de la transaction sur l'état du monde.

TransactionStatus

Représente l'état d'une exécution de transaction.

Représentation JSON
{
  "code": integer,
  "message": string
}
Champs
code

integer

Uniquement en sortie. Code d'état, une valeur numérique dont la signification est définie par le code d'état gRPC correspondant.

message

string (bytes format)

Uniquement en sortie. Message d'erreur, le cas échéant. Défini uniquement si le code n'est pas OK. Il s'agit d'une chaîne encodée en octets UTF-8. Stocké sous forme d'octets pour éviter tout problème de déterminisme de l'encodage.

Chaîne encodée en base64.

TransactionEffect

Représente une mise à jour de l'état du monde par une transaction.

Si elle comporte un deltaVal, elle est considérée comme un delta (un décalage entier) appliqué à la valeur précédemment stockée pour une clé donnée. Dans ce cas, newVal et oldVal doivent être vides.

Sinon, il est supposé avoir au moins l'un des éléments oldVal ou newVal (ou les deux). Une valeur oldVal vide indique que la valeur a été insérée. Une valeur newVal vide indique que la valeur a été supprimée.

Représentation JSON
{
  "key": string,
  "oldVal": string,
  "newVal": string,
  "deltaVal": string
}
Champs
key

string (bytes format)

Uniquement en sortie. Clé de l'état du monde qui a été mise à jour.

Chaîne encodée en base64.

oldVal

string (bytes format)

Uniquement en sortie. Valeur de la clé avant l'exécution de la transaction.

Chaîne encodée en base64.

newVal

string (bytes format)

Uniquement en sortie. Valeur de la clé après l'exécution de la transaction.

Chaîne encodée en base64.

deltaVal

string (int64 format)

Uniquement en sortie. Décalage entier appliqué à la valeur stockée précédemment.

TransactionEvent

Événement produit par une transaction.

Représentation JSON
{
  "type": string,
  "attributes": [
    {
      object (EventAttribute)
    }
  ]
}
Champs
type

string

Uniquement en sortie. Type d'événement. Un événement spécial de type transaction_output contient les résultats produits par la transaction (par exemple, l'ID de compte d'un compte nouvellement créé).

attributes[]

object (EventAttribute)

Uniquement en sortie. Attributs de l'événement sous forme de paires clé/valeur arbitraires.

EventAttribute

Attribut individuel sous forme de paire clé/valeur.

Représentation JSON
{
  "key": string,
  "value": string
}
Champs
key

string

Uniquement en sortie. Clé de l'attribut.

value

string

Uniquement en sortie. Valeur de l'attribut.

RoundCertificate

Certificat de l'exécution d'un tour par un validateur spécifique.

Représentation JSON
{
  "roundId": string,
  "validatorId": string,
  "roundStateChecksumHex": string,
  "roundDeltaChecksumHex": string,
  "merkleTree": {
    object (MerkleTree)
  },
  "validatorSignatures": [
    string
  ],
  "isFinalized": boolean
}
Champs
roundId

string (int64 format)

Uniquement en sortie. ID du tournoi pour lequel le certificat est destiné.

validatorId

string

Uniquement en sortie. Identifiant du validateur lisible par l'utilisateur. Elle permet de rechercher la clé publique par rapport à laquelle validatorSignatures est vérifié.

roundStateChecksumHex

string

Uniquement en sortie. Représentation hexadécimale du résumé homomorphique sur l'état du monde après l'application des effets de ce tour.

roundDeltaChecksumHex

string

Uniquement en sortie. Représentation hexadécimale du résumé homomorphique sur les effets de transaction agrégés de ce tour.

merkleTree

object (MerkleTree)

Uniquement en sortie. Arbre Merkle dont ce tour est le nœud racine et les lots de transactions (exécutés au cours du tour) sont les feuilles.

validatorSignatures[]

string (bytes format)

Facultatif. Signature du validateur. La signature est apposée sur le résumé de la charge utile précédente de cet enregistrement.

Chaîne encodée en base64.

isFinalized

boolean

Uniquement en sortie. Valeur booléenne indiquant si le tour est finalisé, c'est-à-dire si un quorum suffisant de validateurs a certifié ce tour avec le même certificat.

MerkleTree

Arbre de Merkle avec un résumé cryptographique du nœud racine.

Représentation JSON
{
  "rootHashHex": string,
  "rootDigestHex": string,
  "numTransactions": string
}
Champs
rootHashHex
(deprecated)

string

Uniquement en sortie. Digest cryptographique du nœud racine. Obsolète : utilisez plutôt rootDigestHex.

rootDigestHex

string

Uniquement en sortie. Représentation hexadécimale du condensé du nœud racine. Format : chaîne hexadécimale de 64 caractères.

numTransactions

string (int64 format)

Uniquement en sortie. Nombre de transactions dans l'arborescence.

MerkleTreeNode

Représente un nœud dans un chemin d'arbre Merkle.

Représentation JSON
{
  "leftChildHashHex": string,
  "rightChildHashHex": string,
  "leftChildDigestHex": string,
  "rightChildDigestHex": string
}
Champs
leftChildHashHex
(deprecated)

string

Uniquement en sortie. Représentation hexadécimale du résumé du nœud enfant de gauche. Obsolète : utilisez plutôt leftChildDigestHex.

rightChildHashHex
(deprecated)

string

Uniquement en sortie. Représentation hexadécimale du résumé du nœud enfant de droite. Obsolète : utilisez plutôt rightChildDigestHex.

leftChildDigestHex

string

Uniquement en sortie. Représentation hexadécimale du résumé du nœud enfant de gauche. Format : chaîne hexadécimale de 64 caractères.

rightChildDigestHex

string

Uniquement en sortie. Représentation hexadécimale du résumé du nœud enfant de droite. Format : chaîne hexadécimale de 64 caractères.

StatusEvent

Représente un événement lors du traitement d'une transaction, tel qu'observé par un seul validateur.

Toutes les valeurs indiquées sont celles du validateur qui traite la demande. Elles peuvent donc différer de celles d'autres validateurs.

Représentation JSON
{
  "eventTime": string,
  "eventType": enum (EventType),
  "eventDetails": {
    object (EventDetails)
  }
}
Champs
eventTime

string (Timestamp format)

Uniquement en sortie. Heure à laquelle l'événement a été enregistré par ce validateur.

Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

eventType

enum (EventType)

Uniquement en sortie. Le type d'événement.

eventDetails

object (EventDetails)

Uniquement en sortie. Informations supplémentaires associées à l'événement.

EventType

Représente le type d'événement lors du traitement d'une transaction, tel qu'observé par le programme de validation auquel la requête a été envoyée.

Enums
EVENT_TYPE_UNSPECIFIED Événement inconnu ou non spécifié.
EVENT_TYPE_RECEIVED Le validateur a reçu la transaction directement d'un client.
EVENT_TYPE_BROADCASTED La transaction a été diffusée par ce validateur à d'autres.
EVENT_TYPE_ORDERED La transaction a été ordonnée et planifiée pour exécution par ce validateur.
EVENT_TYPE_EXECUTION_STARTED L'exécution de la transaction a commencé.
EVENT_TYPE_EXECUTION_COMPLETED L'exécution de la transaction est terminée.
EVENT_TYPE_FINALIZED La transaction a été finalisée par ce validateur.

EventDetails

Représente des informations supplémentaires sur un événement d'état.

Représentation 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.
}
Champs
Champ d'union event_details. Détails de l'événement. event_details ne peut être qu'un des éléments suivants :
executionDetails

object (ExecutionDetails)

Uniquement en sortie. Informations supplémentaires sur un événement d'exécution.

ExecutionDetails

Informations supplémentaires sur un événement d'exécution.

Représentation JSON
{
  "roundId": string
}
Champs
roundId

string (int64 format)

Uniquement en sortie. ID du tour au cours duquel l'événement d'exécution s'est produit.