TransactionAttempt

Der Status einer versuchten Transaktionseinreichung.

JSON-Darstellung
{
  "status": enum (TransactionStatus),
  "proofOfInclusion": {
    object (ProofOfInclusion)
  },
  "statusEvents": [
    {
      object (StatusEvent)
    }
  ]
}
Felder
status

enum (TransactionStatus)

Nur Ausgabe. Der aktuelle Status des Transaktionsversuchs.

proofOfInclusion

object (ProofOfInclusion)

Nur Ausgabe. Zertifikat über die Einbeziehung der Transaktionseffekte in den Weltstatus. Wird nur angegeben, wenn der Status FINALIZED ist.

statusEvents[]

object (StatusEvent)

Nur Ausgabe. Die für den Transaktionsversuch aufgezeichneten Statusereignisse in der richtigen Reihenfolge.

TransactionStatus

Der Status des Transaktionsversuchs.

Enums
TRANSACTION_STATUS_UNSPECIFIED Unbekannter oder nicht initialisierter Status.
PENDING Die Transaktion ist diesem Validator bekannt, aber noch nicht abgeschlossen.
FINALIZED Die Transaktion wird abgeschlossen. Die Auswirkungen wurden in der Blockchain gespeichert und können nicht rückgängig gemacht werden.

ProofOfInclusion

Zertifikat über die Einbeziehung der Auswirkungen einer Transaktion in den Weltstatus.

JSON-Darstellung
{
  "transactionCertificate": {
    object (TransactionCertificate)
  },
  "roundCertificate": {
    object (RoundCertificate)
  },
  "pathToRoundRoot": [
    {
      object (MerkleTreeNode)
    }
  ]
}
Felder
transactionCertificate

object (TransactionCertificate)

Nur Ausgabe. Zertifikat über die Einbeziehung der Transaktionseffekte in eine bestimmte Runde.

roundCertificate

object (RoundCertificate)

Nur Ausgabe. Zertifikat über die Ausführung der Runde.

pathToRoundRoot[]

object (MerkleTreeNode)

Nur Ausgabe. Kryptografischer Nachweis der Einbeziehung der Transaktionseffekte in die Ausführungsrunde.

Er wird als Pfad von einem bestimmten Blatt (einem Transaktions-Digest) zum Stamm der Ausführungsrunde angegeben. Der Pfad wird als Liste von (linkes untergeordnetes Element, rechtes untergeordnetes Element) Paaren dargestellt. Das erste Paar sind die linken und rechten untergeordneten Elemente des übergeordneten Knotens des angegebenen Blatts. Angenommen, der Merkle-Baum wurde mit acht Blatt-Digests [t0, t1, t2, t3, t4, t5, t6, t7] mit der folgenden Struktur erstellt:

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

Hier enthält pathToRoundRoot für t0 Folgendes: [(t0, t1), (h10, h11), (h20, h21)].

Sie können nacheinander SHA-256-Digests für jeden Pfadknoten berechnen, um zu prüfen, ob der Digest des Pfads denselben Wert wie der roundCertificate.merkle_tree.root_digest_hex ergibt. So wird überprüft, ob das Blatt im Merkle-Baum der Runde enthalten war.

TransactionCertificate

Zertifikat für die Ausführung einer bestimmten Transaktion in einer Runde.

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

string

Nur Ausgabe. Die ID der Transaktion, für die dieses Zertifikat gilt.

roundId

string (int64 format)

Nur Ausgabe. Die ID der Ausführungsrunde, in der diese Transaktion ausgeführt wurde.

transactionEffects

object (TransactionEffects)

Nur Ausgabe. Die Auswirkungen der Transaktionsausführung.

events[]

object (TransactionEvent)

Nur Ausgabe. Ereignisse, die durch die Transaktion erzeugt wurden.

transactionEffectsStateChecksumHex

string

Nur Ausgabe. Homomorphe Prüfsumme der Effekte. Ein 2.048-Byte-Wert, der als Hexadezimalstring codiert ist.

certificationResultsDigestHex

string

Nur Ausgabe. Der kryptografische Digest aller vorherigen Felder in der Reihenfolge. Wird verwendet, um einen Merkle-Baum für den Einschlussnachweis zu erstellen.

TransactionEffects

Auswirkungen der Ausführung einer Transaktion.

JSON-Darstellung
{
  "status": {
    object (TransactionStatus)
  },
  "effects": [
    {
      object (TransactionEffect)
    }
  ]
}
Felder
status

object (TransactionStatus)

Nur Ausgabe. Der resultierende Status der Transaktionsausführung.

effects[]
(deprecated)

object (TransactionEffect)

Nur Ausgabe. Verworfen: Fragen Sie stattdessen den Netzwerkstatus ab, um Änderungen am Weltstatus zu ermitteln. Die Auswirkungen der Transaktion auf den Weltstatus.

TransactionStatus

Stellt den Status einer Transaktionsausführung dar.

JSON-Darstellung
{
  "code": integer,
  "message": string
}
Felder
code

integer

Nur Ausgabe. Der Statuscode, ein numerischer Wert, dessen Bedeutung durch den entsprechenden gRPC-Statuscode definiert wird.

message

string (bytes format)

Nur Ausgabe. Die Fehlermeldung, falls vorhanden. Wird nur festgelegt, wenn der Code nicht OK ist. Dies ist ein String, der als UTF-8-Byte codiert ist. Wird als Byte gespeichert, um Probleme mit dem Determinismus der Codierung zu vermeiden.

Ein base64-codierter String.

TransactionEffect

Stellt eine Aktualisierung des Weltstatus durch eine Transaktion dar.

Wenn ein deltaVal vorhanden ist, wird davon ausgegangen, dass es sich um ein Delta (einen ganzzahligen Offset) handelt, das auf den zuvor gespeicherten Wert für einen bestimmten Schlüssel angewendet wird. In diesem Fall sollten newVal und oldVal leer sein.

Andernfalls wird davon ausgegangen, dass mindestens oldVal oder newVal (oder beide) vorhanden sind. Ein leerer oldVal gibt an, dass der Wert eingefügt wurde. Ein leerer newVal gibt an, dass der Wert gelöscht wurde.

JSON-Darstellung
{
  "key": string,
  "oldVal": string,
  "newVal": string,
  "deltaVal": string
}
Felder
key

string (bytes format)

Nur Ausgabe. Der Schlüssel im Weltstatus, der aktualisiert wurde.

Ein base64-codierter String.

oldVal

string (bytes format)

Nur Ausgabe. Der Wert des Schlüssels vor der Ausführung der Transaktion.

Ein base64-codierter String.

newVal

string (bytes format)

Nur Ausgabe. Der Wert des Schlüssels nach der Ausführung der Transaktion.

Ein base64-codierter String.

deltaVal

string (int64 format)

Nur Ausgabe. Ein Ganzzahl-Offset, der auf den zuvor gespeicherten Wert angewendet wurde.

TransactionEvent

Ein Ereignis, das durch eine Transaktion erzeugt wird.

JSON-Darstellung
{
  "type": string,
  "attributes": [
    {
      object (EventAttribute)
    }
  ]
}
Felder
type

string

Nur Ausgabe. Art des Ereignisses. Ein besonderes Ereignis vom Typ transaction_output enthält die von der Transaktion erzeugten Ausgaben, z. B. die Konto-ID eines neu erstellten Kontos.

attributes[]

object (EventAttribute)

Nur Ausgabe. Die Ereignisattribute als beliebige Schlüssel/Wert-Paare.

EventAttribute

Ein einzelnes Attribut als Schlüssel/Wert-Paar.

JSON-Darstellung
{
  "key": string,
  "value": string
}
Felder
key

string

Nur Ausgabe. Der Schlüssel des Attributs.

value

string

Nur Ausgabe. Der Wert des Attributs.

RoundCertificate

Zertifikat für die Ausführung einer Runde durch einen bestimmten Validator.

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

string (int64 format)

Nur Ausgabe. Die ID der Runde, für die das Zertifikat gilt.

validatorId

string

Nur Ausgabe. Die menschenlesbare Validator-ID. Damit wird der öffentliche Schlüssel gesucht, mit dem die validatorSignatures verifiziert wird.

roundStateChecksumHex

string

Nur Ausgabe. Die Hex-Darstellung des homomorphen Digests über den Weltstatus, nachdem die Auswirkungen dieser Runde angewendet wurden.

roundDeltaChecksumHex

string

Nur Ausgabe. Die hexadezimale Darstellung des homomorphen Digests über die aggregierten Transaktionseffekte dieser Runde.

merkleTree

object (MerkleTree)

Nur Ausgabe. Merkle-Baum mit dieser Runde als Stammknoten und Transaktions-Batches (in der Runde ausgeführt) als Blätter.

validatorSignatures[]

string (bytes format)

Optional. Die Signatur des Validators. Dies wird über den Digest der vorherigen Nutzlast dieses Datensatzes signiert.

Ein base64-codierter String.

isFinalized

boolean

Nur Ausgabe. Boolescher Wert, der angibt, ob die Runde abgeschlossen ist, d.h., ob ein ausreichendes Quorum von Validatoren diese Runde mit demselben Zertifikat zertifiziert hat.

MerkleTree

Ein Merkle-Baum mit einem kryptografischen Digest des Stammknotens.

JSON-Darstellung
{
  "rootDigestHex": string,
  "numTransactions": string
}
Felder
rootDigestHex

string

Nur Ausgabe. Die hexadezimale Darstellung des Digests des Stammknotens. Format: Ein hexadezimaler String mit 64 Zeichen.

numTransactions

string (int64 format)

Nur Ausgabe. Die Anzahl der Transaktionen im Baum.

MerkleTreeNode

Stellt einen Knoten in einem Merkle-Baumpfad dar.

JSON-Darstellung
{
  "leftChildDigestHex": string,
  "rightChildDigestHex": string
}
Felder
leftChildDigestHex

string

Nur Ausgabe. Die hexadezimale Darstellung des Digests des linken untergeordneten Knotens eines Knotens. Format: Ein hexadezimaler String mit 64 Zeichen.

rightChildDigestHex

string

Nur Ausgabe. Die hexadezimale Darstellung des Digests des rechten untergeordneten Knotens eines Knotens. Format: Ein hexadezimaler String mit 64 Zeichen.

StatusEvent

Stellt ein Ereignis bei der Verarbeitung einer Transaktion dar, das von einem einzelnen Validator beobachtet wurde.

Alle gemeldeten Werte stammen aus der Perspektive des Validators, der die Anfrage verarbeitet, und können von der Ansicht anderer Validatoren abweichen.

JSON-Darstellung
{
  "eventTime": string,
  "eventType": enum (EventType),
  "eventDetails": {
    object (EventDetails)
  }
}
Felder
eventTime

string (Timestamp format)

Nur Ausgabe. Der Zeitpunkt, zu dem das Ereignis von diesem Validator aufgezeichnet wurde.

Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" oder "2014-10-02T15:01:23+05:30"

eventType

enum (EventType)

Nur Ausgabe. Der Typ des Ereignisses.

eventDetails

object (EventDetails)

Nur Ausgabe. Zusätzliche Details zum Ereignis.

EventType

Stellt den Typ eines Ereignisses bei der Verarbeitung einer Transaktion dar, wie er vom Validator beobachtet wurde, an den die Anfrage weitergeleitet wurde.

Enums
EVENT_TYPE_UNSPECIFIED Unbekanntes oder nicht angegebenes Ereignis.
EVENT_TYPE_RECEIVED Die Transaktion wurde von diesem Validator direkt von einem Client empfangen.
EVENT_TYPE_BROADCASTED Die Transaktion wurde von diesem an andere Validatoren übertragen.
EVENT_TYPE_ORDERED Die Transaktion wurde von diesem Validator bestellt und für die Ausführung geplant.
EVENT_TYPE_EXECUTION_STARTED Die Ausführung der Transaktion hat begonnen.
EVENT_TYPE_EXECUTION_COMPLETED Die Ausführung der Transaktion ist abgeschlossen.
EVENT_TYPE_FINALIZED Die Transaktion wurde von diesem Validator abgeschlossen.

EventDetails

Stellt zusätzliche Details eines Statusereignisses dar.

JSON-Darstellung
{

  // 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.
}
Felder
Die Details des Ereignisses. Im Folgenden finden Sie eine Liste von Feldern, die sich gegenseitig ausschließen. In einer Antwort wird höchstens eines der Felder festgelegt:
executionDetails

object (ExecutionDetails)

Nur Ausgabe. Zusätzliche Details zu einem Ausführungsereignis.

Ende der sich gegenseitig ausschließenden Felder.

ExecutionDetails

Zusätzliche Details zu einem Ausführungsereignis.

JSON-Darstellung
{
  "roundId": string
}
Felder
roundId

string (int64 format)

Nur Ausgabe. Die Runde-ID, bei der das Ausführungsereignis aufgetreten ist.