TransactionAttempt

Lo stato di un tentativo di invio di una transazione.

Rappresentazione JSON
{
  "status": enum (TransactionStatus),
  "proofOfInclusion": {
    object (ProofOfInclusion)
  },
  "statusEvents": [
    {
      object (StatusEvent)
    }
  ]
}
Campi
status

enum (TransactionStatus)

Solo output. Lo stato attuale del tentativo di transazione.

proofOfInclusion

object (ProofOfInclusion)

Solo output. Certificato dell'inclusione degli effetti della transazione nello stato globale. Fornito solo se lo stato è FINALIZED.

statusEvents[]

object (StatusEvent)

Solo output. Gli eventi di stato ordinati registrati per il tentativo di transazione.

TransactionStatus

Lo stato del tentativo di transazione.

Enum
TRANSACTION_STATUS_UNSPECIFIED Stato sconosciuto o non inizializzato.
PENDING La transazione è nota a questo validator, ma non è ancora finalizzata.
FINALIZED La transazione è finalizzata. I suoi effetti sono stati salvati sulla blockchain e non possono essere annullati.

ProofOfInclusion

Certificato dell'inclusione degli effetti di una transazione nello stato globale.

Rappresentazione JSON
{
  "transactionCertificate": {
    object (TransactionCertificate)
  },
  "roundCertificate": {
    object (RoundCertificate)
  },
  "pathToRoundRoot": [
    {
      object (MerkleTreeNode)
    }
  ]
}
Campi
transactionCertificate

object (TransactionCertificate)

Solo output. Certificato dell'inclusione degli effetti della transazione in un round specifico.

roundCertificate

object (RoundCertificate)

Solo output. Certificato dell'esecuzione del round.

pathToRoundRoot[]

object (MerkleTreeNode)

Solo output. Prova crittografica dell'inclusione degli effetti della transazione nel round di esecuzione.

Viene fornita come percorso da una determinata foglia (un digest della transazione) alla radice del round di esecuzione. Il percorso è rappresentato come un elenco di coppie (nodo secondario sinistro, nodo secondario destro) e la prima coppia è costituita dai nodi secondari sinistro e destro del nodo principale della foglia specificata. Ad esempio, supponiamo che l'albero di Merkle sia stato creato con otto digest foglia [t0, t1, t2, t3, t4, t5, t6, t7], con la seguente struttura:

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

In questo caso, pathToRoundRoot per t0 conterrà: [(t0, t1), (h10, h11), (h20, h21)].

È possibile calcolare consecutivamente i digest SHA-256 di ogni nodo del percorso per verificare che il digest del percorso produca lo stesso valore di roundCertificate.merkle_tree.root_digest_hex. In questo modo, viene verificato che la foglia sia stata inclusa nell'albero di Merkle del round.

TransactionCertificate

Certificato dell'esecuzione di una transazione specifica in un round.

Rappresentazione JSON
{
  "transactionDigestHex": string,
  "roundId": string,
  "transactionEffects": {
    object (TransactionEffects)
  },
  "events": [
    {
      object (TransactionEvent)
    }
  ],
  "transactionEffectsStateChecksumHex": string,
  "certificationResultsDigestHex": string
}
Campi
transactionDigestHex

string

Solo output. L'ID della transazione a cui si riferisce questo certificato.

roundId

string (int64 format)

Solo output. L'ID del round di esecuzione in cui è stata eseguita la transazione.

transactionEffects

object (TransactionEffects)

Solo output. Gli effetti dell'esecuzione della transazione.

events[]

object (TransactionEvent)

Solo output. Eventi generati dalla transazione.

transactionEffectsStateChecksumHex

string

Solo output. Checksum omomorfico degli effetti. Un valore di 2048 byte codificato come stringa esadecimale.

certificationResultsDigestHex

string

Solo output. Il digest crittografico di tutti i campi precedenti in sequenza. Utilizzato per creare un albero di Merkle per la prova di inclusione.

TransactionEffects

Effetti dell'esecuzione di una transazione.

Rappresentazione JSON
{
  "status": {
    object (TransactionStatus)
  },
  "effects": [
    {
      object (TransactionEffect)
    }
  ]
}
Campi
status

object (TransactionStatus)

Solo output. Lo stato risultante dell'esecuzione della transazione.

effects[]
(deprecated)

object (TransactionEffect)

Solo output. Ritirato: esegui invece una query sullo stato della rete per determinare eventuali modifiche allo stato del mondo. Gli effetti della transazione nello stato del mondo.

TransactionStatus

Rappresenta lo stato di esecuzione di una transazione.

Rappresentazione JSON
{
  "code": integer,
  "message": string
}
Campi
code

integer

Solo output. Il codice di stato, un valore numerico il cui significato è definito dal codice di stato gRPC corrispondente.

message

string (bytes format)

Solo output. Il messaggio di errore, se presente. Impostato solo se il codice non è OK. Si tratta di una stringa codificata come byte UTF-8. Archiviati come byte per evitare problemi con il determinismo della codifica.

Una stringa con codifica in base64.

TransactionEffect

Rappresenta un aggiornamento dello stato globale da parte di una transazione.

Se ha un deltaVal, si presume che sia un delta (un offset intero) applicato al valore memorizzato in precedenza su una determinata chiave. In questo caso, newVal e oldVal devono essere vuoti.

In caso contrario, si presume che abbia almeno uno tra oldVal o newVal (o entrambi). Un oldVal vuoto indica che il valore è stato inserito. Un valore newVal vuoto indica che il valore è stato eliminato.

Rappresentazione JSON
{
  "key": string,
  "oldVal": string,
  "newVal": string,
  "deltaVal": string
}
Campi
key

string (bytes format)

Solo output. La chiave nello stato globale che è stata aggiornata.

Una stringa con codifica in base64.

oldVal

string (bytes format)

Solo output. Il valore della chiave prima dell'esecuzione della transazione.

Una stringa con codifica in base64.

newVal

string (bytes format)

Solo output. Il valore della chiave dopo l'esecuzione della transazione.

Una stringa con codifica in base64.

deltaVal

string (int64 format)

Solo output. Un offset intero applicato al valore memorizzato in precedenza.

TransactionEvent

Un evento generato da una transazione.

Rappresentazione JSON
{
  "type": string,
  "attributes": [
    {
      object (EventAttribute)
    }
  ]
}
Campi
type

string

Solo output. Il tipo di evento. Un evento speciale di tipo transaction_output contiene gli output prodotti dalla transazione, ad esempio l'ID account di un account appena creato.

attributes[]

object (EventAttribute)

Solo output. Gli attributi dell'evento come coppie chiave-valore arbitrarie.

EventAttribute

Un singolo attributo come coppia chiave-valore.

Rappresentazione JSON
{
  "key": string,
  "value": string
}
Campi
key

string

Solo output. La chiave dell'attributo.

value

string

Solo output. Il valore dell'attributo.

RoundCertificate

Certificato dell'esecuzione di un round da parte di un validatore specifico.

Rappresentazione JSON
{
  "roundId": string,
  "validatorId": string,
  "roundStateChecksumHex": string,
  "roundDeltaChecksumHex": string,
  "merkleTree": {
    object (MerkleTree)
  },
  "validatorSignatures": [
    string
  ],
  "isFinalized": boolean
}
Campi
roundId

string (int64 format)

Solo output. L'ID del round a cui si riferisce il certificato.

validatorId

string

Solo output. L'identificatore del validator leggibile. Viene utilizzato per cercare la chiave pubblica rispetto alla quale viene verificato validatorSignatures.

roundStateChecksumHex

string

Solo output. La rappresentazione esadecimale del digest omomorfico sullo stato globale dopo l'applicazione degli effetti di questo round.

roundDeltaChecksumHex

string

Solo output. La rappresentazione esadecimale del digest omomorfico sugli effetti delle transazioni aggregate di questo round.

merkleTree

object (MerkleTree)

Solo output. Albero di Merkle con questo round come nodo principale e i batch di transazioni (eseguiti nel round) come foglie.

validatorSignatures[]

string (bytes format)

Facoltativo. La firma del validator. Questo viene firmato sul digest del payload precedente di questo record.

Una stringa con codifica in base64.

isFinalized

boolean

Solo output. Valore booleano per indicare se il round è finalizzato, ovvero se un quorum sufficiente di validator ha certificato questo round con lo stesso certificato.

MerkleTree

Un albero di Merkle con un digest crittografico del nodo radice.

Rappresentazione JSON
{
  "rootDigestHex": string,
  "numTransactions": string
}
Campi
rootDigestHex

string

Solo output. La rappresentazione esadecimale del digest del nodo radice. Formato: una stringa esadecimale di 64 caratteri.

numTransactions

string (int64 format)

Solo output. Il numero di transazioni nell'albero.

MerkleTreeNode

Rappresenta un nodo in un percorso dell'albero di Merkle.

Rappresentazione JSON
{
  "leftChildDigestHex": string,
  "rightChildDigestHex": string
}
Campi
leftChildDigestHex

string

Solo output. La rappresentazione esadecimale del digest del nodo secondario sinistro di un nodo. Formato: una stringa esadecimale di 64 caratteri.

rightChildDigestHex

string

Solo output. La rappresentazione esadecimale del digest dell'elemento secondario destro di un nodo. Formato: una stringa esadecimale di 64 caratteri.

StatusEvent

Rappresenta un evento nell'elaborazione di una transazione osservato da un singolo validator.

Tutti i valori riportati sono dal punto di vista del validator che gestisce la richiesta e potrebbero differire dalla visualizzazione di altri validator.

Rappresentazione JSON
{
  "eventTime": string,
  "eventType": enum (EventType),
  "eventDetails": {
    object (EventDetails)
  }
}
Campi
eventTime

string (Timestamp format)

Solo output. L'ora in cui l'evento è stato registrato da questo validator.

Utilizza RFC 3339, in cui l'output generato è sempre con normalizzazione Z e utilizza 0, 3, 6 o 9 cifre frazionarie. Sono accettati anche offset diversi da "Z". Esempi: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

eventType

enum (EventType)

Solo output. Il tipo di evento.

eventDetails

object (EventDetails)

Solo output. Ulteriori dettagli associati all'evento.

EventType

Rappresenta il tipo di evento nell'elaborazione di una transazione, come osservato dal validator a cui è stata indirizzata la richiesta.

Enum
EVENT_TYPE_UNSPECIFIED Evento sconosciuto o non specificato.
EVENT_TYPE_RECEIVED La transazione è stata ricevuta da questo convalidatore direttamente da un client.
EVENT_TYPE_BROADCASTED La transazione è stata trasmessa da questo nodo ad altri validatori.
EVENT_TYPE_ORDERED La transazione è stata ordinata e pianificata per l'esecuzione da questo validator.
EVENT_TYPE_EXECUTION_STARTED L'esecuzione della transazione è iniziata.
EVENT_TYPE_EXECUTION_COMPLETED L'esecuzione della transazione è stata completata.
EVENT_TYPE_FINALIZED La transazione è stata finalizzata da questo validator.

EventDetails

Rappresenta i dettagli aggiuntivi di un evento di stato.

Rappresentazione 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.
}
Campi
I dettagli dell'evento. Di seguito è riportato un elenco di campi che si escludono a vicenda. In una risposta verrà impostato al massimo uno dei campi:
executionDetails

object (ExecutionDetails)

Solo output. Ulteriori dettagli per un evento di esecuzione.

Fine dei campi che si escludono a vicenda.

ExecutionDetails

Ulteriori dettagli per un evento di esecuzione.

Rappresentazione JSON
{
  "roundId": string
}
Campi
roundId

string (int64 format)

Solo output. L'ID del round in cui si è verificato l'evento di esecuzione.