Esegue query sullo stato di una transazione. Questo metodo può essere chiamato per qualsiasi transazione inviata alla rete. I dettagli della transazione restituiti possono variare tra le chiamate, perché un endpoint può indirizzare le richieste a diversi validatori all'interno della rete e della regione e i validatori potrebbero non avere lo stesso ID round in un determinato momento.
Richiesta HTTP
GET https://universalledger.googleapis.com/v1/{endpoint=projects/*/locations/*/endpoints/*}:queryTransactionState Gli URL utilizzano la sintassi di transcodifica gRPC.
Parametri del percorso
| Parametri | |
|---|---|
endpoint |
Obbligatorio. L'endpoint per gestire la richiesta. Formato: |
Parametri di query
| Parametri | |
|---|---|
transactionDigestHex |
Obbligatorio. L'ID transazione di cui ottenere lo stato. |
Corpo della richiesta
Il corpo della richiesta deve essere vuoto.
Corpo della risposta
Messaggio di risposta per endpoints.queryTransactionState.
In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:
| Rappresentazione JSON |
|---|
{
"transactionAttempts": [
{
object ( |
| Campi | |
|---|---|
transactionAttempts[] |
Una voce per ogni invio noto della transazione al validatore che gestisce la richiesta. |
Ambiti di autorizzazione
Richiede il seguente ambito OAuth:
https://www.googleapis.com/auth/cloud-platform
Per saperne di più, consulta la Authentication Overview.
TransactionAttempt
Lo stato di un tentativo di invio della transazione.
| Rappresentazione JSON |
|---|
{ "status": enum ( |
| Campi | |
|---|---|
status |
Solo output. Lo stato attuale del tentativo di transazione. |
proofOfInclusion |
Solo output. Certificato dell'inclusione degli effetti della transazione nello stato del mondo. Fornito solo se lo stato è |
statusEvents[] |
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 validatore, ma non è ancora stata finalizzata. |
FINALIZED |
La transazione è finalizzata. I suoi effetti sono stati mantenuti sulla blockchain e non possono essere annullati. |
ProofOfInclusion
Certificato dell'inclusione degli effetti di una transazione nello stato mondiale.
| Rappresentazione JSON |
|---|
{ "transactionCertificate": { object ( |
| Campi | |
|---|---|
transactionCertificate |
Solo output. Certificato dell'inclusione degli effetti della transazione in un round specifico. |
roundCertificate |
Solo output. Certificato di esecuzione del round. |
pathToRoundRoot[] |
Solo output. Prova crittografica dell'inclusione degli effetti della transazione nel round di esecuzione. Viene fornito come percorso da una determinata foglia (un digest della transazione) alla radice del round di esecuzione. Il percorso è rappresentato come un elenco di coppie (figlio sinistro, figlio destro) e la prima coppia è costituita dai figli sinistro e destro del nodo padre della foglia specificata. Ad esempio, supponendo che l'albero Merkle sia stato creato con otto hash foglia Qui, È possibile calcolare consecutivamente i digest SHA-256 di ogni nodo del percorso per verificare che il digest del percorso produca lo stesso valore di |
TransactionCertificate
Certificato dell'esecuzione di una transazione specifica in un round.
| Rappresentazione JSON |
|---|
{ "transactionDigestHex": string, "roundId": string, "transactionEffects": { object ( |
| Campi | |
|---|---|
transactionDigestHex |
Solo output. L'ID della transazione a cui si riferisce questo certificato. |
roundId |
Solo output. L'ID del round di esecuzione in cui è stata eseguita questa transazione. |
transactionEffects |
Solo output. Gli effetti della transazione nello stato del mondo. |
events[] |
Solo output. Eventi generati dalla transazione. |
transactionEffectsStateChecksumHex |
Solo output. Checksum omomorfico degli effetti. Un valore di 2048 byte codificato come stringa esadecimale. |
certificationResultsDigestHex |
Solo output. Il digest crittografico di tutti i campi precedenti in sequenza. Utilizzato per creare un albero Merkle per la prova di inclusione. |
TransactionEffects
Effetti dell'esecuzione di una transazione nello stato del mondo.
| Rappresentazione JSON |
|---|
{ "status": { object ( |
| Campi | |
|---|---|
status |
Solo output. Lo stato risultante dell'esecuzione della transazione. |
effects[] |
Solo output. 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 |
Solo output. Il codice di stato, un valore numerico il cui significato è definito dal codice di stato gRPC corrispondente. |
message |
Solo output. Il messaggio di errore, se presente. Imposta solo se il codice non è Una stringa con codifica in base64. |
TransactionEffect
Rappresenta un aggiornamento di alcune transazioni allo stato del mondo.
Se ha un deltaVal, si presume che sia un delta (un offset intero) applicato al valore memorizzato in precedenza per una determinata chiave. In questo caso, newVal e oldVal devono essere vuoti.
In caso contrario, si presume che abbia almeno uno tra oldVal e newVal (o entrambi). Un oldVal vuoto indica che il valore è stato inserito. Un newVal vuoto indica che il valore è stato eliminato.
| Rappresentazione JSON |
|---|
{ "key": string, "oldVal": string, "newVal": string, "deltaVal": string } |
| Campi | |
|---|---|
key |
Solo output. La chiave nello stato del mondo che è stata aggiornata. Una stringa con codifica in base64. |
oldVal |
Solo output. Il valore della chiave prima dell'esecuzione della transazione. Una stringa con codifica in base64. |
newVal |
Solo output. Il valore della chiave dopo l'esecuzione della transazione. Una stringa con codifica in base64. |
deltaVal |
Solo output. Un offset intero applicato al valore memorizzato in precedenza. |
TransactionEvent
Un evento prodotto da una transazione.
| Rappresentazione JSON |
|---|
{
"type": string,
"attributes": [
{
object ( |
| Campi | |
|---|---|
type |
Solo output. Il tipo di evento. Un evento speciale di tipo |
attributes[] |
Solo output. Gli attributi dell'evento come coppie chiave-valore arbitrarie. |
EventAttribute
Un attributo individuale come coppia chiave-valore.
| Rappresentazione JSON |
|---|
{ "key": string, "value": string } |
| Campi | |
|---|---|
key |
Solo output. La chiave dell'attributo. |
value |
Solo output. Il valore dell'attributo. |
RoundCertificate
Certificato dell'esecuzione di un round da parte di uno strumento di convalida specifico.
| Rappresentazione JSON |
|---|
{
"roundId": string,
"validatorId": string,
"roundStateChecksumHex": string,
"roundDeltaChecksumHex": string,
"merkleTree": {
object ( |
| Campi | |
|---|---|
roundId |
Solo output. L'ID del round a cui si riferisce il certificato. |
validatorId |
Solo output. L'identificatore dello strumento di convalida leggibile. Viene utilizzato per cercare la chiave pubblica rispetto alla quale viene verificato |
roundStateChecksumHex |
Solo output. La rappresentazione esadecimale del digest omomorfico sullo stato del mondo dopo l'applicazione degli effetti di questo round. |
roundDeltaChecksumHex |
Solo output. La rappresentazione esadecimale del digest omomorfico sugli effetti aggregati delle transazioni di questo round. |
merkleTree |
Solo output. Albero Merkle con questo round come nodo radice e batch di transazioni (eseguiti nel round) come foglie. |
validatorSignatures[] |
Facoltativo. La firma del validatore. Questa firma viene applicata all'hash del payload precedente di questo record. Una stringa con codifica in base64. |
isFinalized |
Solo output. Valore booleano che indica se il round è finalizzato, ovvero se un quorum sufficiente di validatori ha certificato questo round con lo stesso certificato. |
MerkleTree
Un albero Merkle con un digest crittografico del nodo radice.
| Rappresentazione JSON |
|---|
{ "rootHashHex": string, "rootDigestHex": string, "numTransactions": string } |
| Campi | |
|---|---|
rootHashHex |
Solo output. Il digest crittografico del nodo principale. Deprecato: utilizza |
rootDigestHex |
Solo output. La rappresentazione esadecimale del digest del nodo radice. Formato: una stringa esadecimale di 64 caratteri. |
numTransactions |
Solo output. Il numero di transazioni nell'albero. |
MerkleTreeNode
Rappresenta un nodo in un percorso dell'albero Merkle.
| Rappresentazione JSON |
|---|
{ "leftChildHashHex": string, "rightChildHashHex": string, "leftChildDigestHex": string, "rightChildDigestHex": string } |
| Campi | |
|---|---|
leftChildHashHex |
Solo output. La rappresentazione esadecimale del digest del nodo secondario sinistro di un nodo. Deprecato: utilizza |
rightChildHashHex |
Solo output. La rappresentazione esadecimale del digest del figlio destro di un nodo. Deprecato: utilizza |
leftChildDigestHex |
Solo output. La rappresentazione esadecimale del digest del nodo secondario sinistro di un nodo. Formato: una stringa esadecimale di 64 caratteri. |
rightChildDigestHex |
Solo output. La rappresentazione esadecimale del digest del figlio destro di un nodo. Formato: una stringa esadecimale di 64 caratteri. |
StatusEvent
Rappresenta un evento nell'elaborazione di una transazione osservato da un singolo validatore.
Tutti i valori riportati sono dal punto di vista del validatore che gestisce la richiesta e potrebbero differire dalla visualizzazione di altri validatori.
| Rappresentazione JSON |
|---|
{ "eventTime": string, "eventType": enum ( |
| Campi | |
|---|---|
eventTime |
Solo output. L'ora in cui l'evento è stato registrato da questo validatore. 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: |
eventType |
Solo output. Il tipo di evento. |
eventDetails |
Solo output. Ulteriori dettagli associati all'evento. |
EventType
Rappresenta il tipo di evento nell'elaborazione di una transazione, come osservato dallo strumento di convalida a cui è stata indirizzata la richiesta.
| Enum | |
|---|---|
EVENT_TYPE_UNSPECIFIED |
Evento sconosciuto o non specificato. |
EVENT_TYPE_RECEIVED |
La transazione è stata ricevuta da questo validatore direttamente da un client. |
EVENT_TYPE_BROADCASTED |
La transazione è stata trasmessa da questo ad altri validatori. |
EVENT_TYPE_ORDERED |
La transazione è stata ordinata e pianificata per l'esecuzione da questo validatore. |
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 validatore. |
EventDetails
Rappresenta i dettagli aggiuntivi di un evento di stato.
| Rappresentazione JSON |
|---|
{ // Union field |
| Campi | |
|---|---|
Campo unione event_details. I dettagli dell'evento. event_details può essere solo uno dei seguenti tipi: |
|
executionDetails |
Solo output. Dettagli aggiuntivi per un evento di esecuzione. |
ExecutionDetails
Dettagli aggiuntivi per un evento di esecuzione.
| Rappresentazione JSON |
|---|
{ "roundId": string } |
| Campi | |
|---|---|
roundId |
Solo output. L'ID round in cui si è verificato l'evento di esecuzione. |