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 de l'inclusion des effets de la transaction dans l'état mondial. Fourni uniquement si l'état est FINALIZED.

statusEvents[]

object (StatusEvent)

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

TransactionStatus

État de la tentative de transaction.

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

ProofOfInclusion

Certificat de l'inclusion des effets d'une transaction dans l'état mondial.

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

object (TransactionCertificate)

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

roundCertificate

object (RoundCertificate)

Uniquement en sortie. Certificat d'exécution de la manche.

pathToRoundRoot[]

object (MerkleTreeNode)

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

Elle est fournie sous la forme d'un chemin d'accès d'une feuille donnée (un condensé de transaction) à la racine du cycle d'exécution. Le chemin d'accès 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, supposons que l'arbre de Merkle ait été créé avec huit condensés de feuilles [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

Ici, pathToRoundRoot pour t0 contiendra : [(t0, t1), (h10, h11), (h20, h21)].

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

TransactionCertificate

Certificat de l'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 est destiné.

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 produits 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. Le condensé cryptographique de tous les champs précédents dans l'ordre. Utilisé pour créer un arbre de 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 résultant 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 dans l'état du monde.

TransactionStatus

Représente l'état d'exécution d'une 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 lié au déterminisme de l'encodage.

Chaîne encodée en base64.

TransactionEffect

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

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

Sinon, il est supposé avoir au moins 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 précédemment stockée.

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 d'é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 cycle 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 de la session pour laquelle le certificat est destiné.

validatorId

string

Uniquement en sortie. Identifiant du validateur lisible par l'humain. Il permet de rechercher la clé publique par rapport à laquelle le validatorSignatures est validé.

roundStateChecksumHex

string

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

roundDeltaChecksumHex

string

Uniquement en sortie. Représentation hexadécimale du condensé homomorphe sur les effets de transaction agrégés de ce cycle.

merkleTree

object (MerkleTree)

Uniquement en sortie. Arbre de Merkle ayant ce round comme nœud racine et les lots de transactions (exécutés dans le round) comme feuilles.

validatorSignatures[]

string (bytes format)

Facultatif. La signature du validateur. Il est signé sur le condensé 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 cycle est finalisé, c'est-à-dire si un quorum suffisant de validateurs ont certifié ce cycle avec le même certificat.

MerkleTree

Un arbre de Merkle avec un condensé cryptographique du nœud racine.

Représentation JSON
{
  "rootDigestHex": string,
  "numTransactions": string
}
Champs
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 de Merkle.

Représentation JSON
{
  "leftChildDigestHex": string,
  "rightChildDigestHex": string
}
Champs
leftChildDigestHex

string

Uniquement en sortie. Représentation hexadécimale du condensé de l'enfant de gauche d'un nœud. Format : chaîne hexadécimale de 64 caractères.

rightChildDigestHex

string

Uniquement en sortie. Représentation hexadécimale du condensé de l'enfant de droite d'un nœud. Format : chaîne hexadécimale de 64 caractères.

StatusEvent

Représente un événement dans le traitement d'une transaction, tel qu'observé par un seul outil de validation.

Toutes les valeurs indiquées sont du point de vue du programme de validation qui traite la requête et peuvent différer de la vue des autres programmes de validation.

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 dans le traitement d'une transaction, tel qu'observé par l'outil de validation vers lequel la requête a été acheminée.

Enums
EVENT_TYPE_UNSPECIFIED Événement inconnu ou non spécifié.
EVENT_TYPE_RECEIVED La transaction a été reçue par ce validateur directement d'un client.
EVENT_TYPE_BROADCASTED La transaction a été diffusée par ce nœud aux autres validateurs.
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 détails supplémentaires d'un événement d'état.

Représentation 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.
}
Champs
Détails de l'événement. Voici une liste de champs mutuellement exclusifs. Au maximum, un des champs sera défini dans une réponse :
executionDetails

object (ExecutionDetails)

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

Fin des champs mutuellement exclusifs.

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 cycle au cours duquel l'événement d'exécution s'est produit.