TransactionAttempt

O estado de uma tentativa de envio de transação.

Representação JSON
{
  "status": enum (TransactionStatus),
  "proofOfInclusion": {
    object (ProofOfInclusion)
  },
  "statusEvents": [
    {
      object (StatusEvent)
    }
  ]
}
Campos
status

enum (TransactionStatus)

Apenas saída. O status atual da tentativa de transação.

proofOfInclusion

object (ProofOfInclusion)

Apenas saída. Certificado da inclusão dos efeitos da transação no estado do mundo. Só é fornecido se o status for FINALIZED.

statusEvents[]

object (StatusEvent)

Apenas saída. Os eventos de status ordenados registrados para a tentativa de transação.

TransactionStatus

O status da tentativa de transação.

Tipos enumerados
TRANSACTION_STATUS_UNSPECIFIED Estado desconhecido ou não inicializado.
PENDING A transação é conhecida por este validador, mas ainda não foi finalizada.
FINALIZED A transação é finalizada. Os efeitos foram mantidos no blockchain e não podem ser revertidos.

ProofOfInclusion

Certificado da inclusão dos efeitos de uma transação no estado mundial.

Representação JSON
{
  "transactionCertificate": {
    object (TransactionCertificate)
  },
  "roundCertificate": {
    object (RoundCertificate)
  },
  "pathToRoundRoot": [
    {
      object (MerkleTreeNode)
    }
  ]
}
Campos
transactionCertificate

object (TransactionCertificate)

Apenas saída. Certificado da inclusão dos efeitos da transação em uma rodada específica.

roundCertificate

object (RoundCertificate)

Apenas saída. Certificado da execução da rodada.

pathToRoundRoot[]

object (MerkleTreeNode)

Apenas saída. Prova criptográfica da inclusão dos efeitos da transação na rodada de execução.

Ele é fornecido como um caminho de uma determinada folha (um resumo de transação) até a raiz da rodada de execução. O caminho é representado como uma lista de pares (filho à esquerda, filho à direita), e o primeiro par são os filhos à esquerda e à direita do nó pai da determinada folha. Por exemplo, supondo que a árvore de Merkle tenha sido criada com oito resumos de folhas [t0, t1, t2, t3, t4, t5, t6, t7], com a seguinte estrutura:

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

Aqui, pathToRoundRoot para t0 vai conter: [(t0, t1), (h10, h11), (h20, h21)].

É possível calcular consecutivamente os resumos SHA-256 de cada nó do caminho para verificar se o resumo do caminho produz o mesmo valor que o roundCertificate.merkle_tree.root_digest_hex. Assim, é possível verificar se a folha foi incluída na árvore de Merkle da rodada.

TransactionCertificate

Certificado da execução de uma transação específica em uma rodada.

Representação JSON
{
  "transactionDigestHex": string,
  "roundId": string,
  "transactionEffects": {
    object (TransactionEffects)
  },
  "events": [
    {
      object (TransactionEvent)
    }
  ],
  "transactionEffectsStateChecksumHex": string,
  "certificationResultsDigestHex": string
}
Campos
transactionDigestHex

string

Apenas saída. O ID da transação a que este certificado se refere.

roundId

string (int64 format)

Apenas saída. O ID da rodada de execução em que essa transação foi executada.

transactionEffects

object (TransactionEffects)

Apenas saída. Os efeitos da execução da transação.

events[]

object (TransactionEvent)

Apenas saída. Eventos produzidos pela transação.

transactionEffectsStateChecksumHex

string

Apenas saída. Checksum homomórfico dos efeitos. Um valor de 2.048 bytes codificado como uma string hexadecimal.

certificationResultsDigestHex

string

Apenas saída. O resumo criptográfico de todos os campos anteriores em sequência. Usado para criar uma árvore de Merkle para a prova de inclusão.

TransactionEffects

Efeitos da execução de uma transação.

Representação JSON
{
  "status": {
    object (TransactionStatus)
  },
  "effects": [
    {
      object (TransactionEffect)
    }
  ]
}
Campos
status

object (TransactionStatus)

Apenas saída. O status resultante da execução da transação.

effects[]
(deprecated)

object (TransactionEffect)

Apenas saída. Descontinuado: consulte o estado da rede para determinar mudanças no estado do mundo. Os efeitos da transação no estado mundial.

TransactionStatus

Representa o status da execução de uma transação.

Representação JSON
{
  "code": integer,
  "message": string
}
Campos
code

integer

Apenas saída. O código de status, um valor numérico cujo significado é definido pelo código de status gRPC correspondente.

message

string (bytes format)

Apenas saída. A mensagem de erro, se houver. Definido apenas se o código não for OK. É uma string codificada como bytes utf-8. Armazenado como bytes para evitar problemas com o determinismo da codificação.

Uma string codificada em base64.

TransactionEffect

Representa uma atualização feita por alguma transação no estado mundial.

Se ele tiver um deltaVal, será considerado um delta (um deslocamento de número inteiro) aplicado ao valor armazenado anteriormente em uma determinada chave. Nesse caso, newVal e oldVal precisam estar vazios.

Caso contrário, presume-se que ele tenha pelo menos um de oldVal ou newVal (ou ambos). Um oldVal vazio indica que o valor foi inserido. Um newVal vazio indica que o valor foi excluído.

Representação JSON
{
  "key": string,
  "oldVal": string,
  "newVal": string,
  "deltaVal": string
}
Campos
key

string (bytes format)

Apenas saída. A chave no estado do mundo que foi atualizada.

Uma string codificada em base64.

oldVal

string (bytes format)

Apenas saída. O valor da chave antes da execução da transação.

Uma string codificada em base64.

newVal

string (bytes format)

Apenas saída. O valor da chave após a execução da transação.

Uma string codificada em base64.

deltaVal

string (int64 format)

Apenas saída. Um deslocamento de número inteiro que foi aplicado ao valor armazenado anteriormente.

TransactionEvent

Um evento produzido por uma transação.

Representação JSON
{
  "type": string,
  "attributes": [
    {
      object (EventAttribute)
    }
  ]
}
Campos
type

string

Apenas saída. O tipo de evento. Um evento especial do tipo transaction_output contém as saídas produzidas pela transação, por exemplo, o ID de uma conta recém-criada.

attributes[]

object (EventAttribute)

Apenas saída. Os atributos do evento como pares de chave-valor arbitrários.

EventAttribute

Um atributo individual como um par de chave-valor.

Representação JSON
{
  "key": string,
  "value": string
}
Campos
key

string

Apenas saída. A chave do atributo.

value

string

Apenas saída. O valor do atributo.

RoundCertificate

Certificado da execução de uma rodada por um validador específico.

Representação JSON
{
  "roundId": string,
  "validatorId": string,
  "roundStateChecksumHex": string,
  "roundDeltaChecksumHex": string,
  "merkleTree": {
    object (MerkleTree)
  },
  "validatorSignatures": [
    string
  ],
  "isFinalized": boolean
}
Campos
roundId

string (int64 format)

Apenas saída. O ID da rodada a que o certificado se refere.

validatorId

string

Apenas saída. O identificador legível do validador. Usado para pesquisar a chave pública em relação à qual o validatorSignatures é verificado.

roundStateChecksumHex

string

Apenas saída. A representação hexadecimal do resumo homomórfico no estado mundial após a aplicação dos efeitos desta rodada.

roundDeltaChecksumHex

string

Apenas saída. A representação hexadecimal do resumo homomórfico sobre os efeitos agregados da transação desta rodada.

merkleTree

object (MerkleTree)

Apenas saída. A árvore de Merkle tem essa rodada como nó raiz e lotes de transações (executados na rodada) como folhas.

validatorSignatures[]

string (bytes format)

Opcional. A assinatura do validador. Assinado sobre o resumo do payload anterior deste registro.

Uma string codificada em base64.

isFinalized

boolean

Apenas saída. Booleano para indicar se a rodada foi finalizada, ou seja, se um quórum suficiente de validadores certificou essa rodada com o mesmo certificado.

MerkleTree

Uma árvore de Merkle com um resumo criptográfico do nó raiz.

Representação JSON
{
  "rootHashHex": string,
  "rootDigestHex": string,
  "numTransactions": string
}
Campos
rootHashHex
(deprecated)

string

Apenas saída. O resumo criptográfico do nó raiz. Descontinuado: use rootDigestHex.

rootDigestHex

string

Apenas saída. A representação hexadecimal do resumo do nó raiz. Formato: uma string hexadecimal de 64 caracteres.

numTransactions

string (int64 format)

Apenas saída. O número de transações na árvore.

MerkleTreeNode

Representa um nó em um caminho de árvore de Merkle.

Representação JSON
{
  "leftChildHashHex": string,
  "rightChildHashHex": string,
  "leftChildDigestHex": string,
  "rightChildDigestHex": string
}
Campos
leftChildHashHex
(deprecated)

string

Apenas saída. A representação hexadecimal do resumo do filho à esquerda de um nó. Descontinuado: use leftChildDigestHex.

rightChildHashHex
(deprecated)

string

Apenas saída. A representação hexadecimal do resumo do filho à direita de um nó. Descontinuado: use rightChildDigestHex.

leftChildDigestHex

string

Apenas saída. A representação hexadecimal do resumo do filho à esquerda de um nó. Formato: uma string hexadecimal de 64 caracteres.

rightChildDigestHex

string

Apenas saída. A representação hexadecimal do resumo do filho à direita de um nó. Formato: uma string hexadecimal de 64 caracteres.

StatusEvent

Representa um evento no processamento de uma transação, conforme observado por um único validador.

Todos os valores informados são da perspectiva do validador que processa a solicitação e podem ser diferentes da visão de outros validadores.

Representação JSON
{
  "eventTime": string,
  "eventType": enum (EventType),
  "eventDetails": {
    object (EventDetails)
  }
}
Campos
eventTime

string (Timestamp format)

Apenas saída. O momento em que o evento foi registrado por este validador.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de Z, outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

eventType

enum (EventType)

Apenas saída. O tipo do evento.

eventDetails

object (EventDetails)

Apenas saída. Outros detalhes associados ao evento.

EventType

Representa o tipo de um evento no processamento de uma transação, conforme observado pelo validador para o qual a solicitação foi encaminhada.

Tipos enumerados
EVENT_TYPE_UNSPECIFIED Evento desconhecido ou não especificado.
EVENT_TYPE_RECEIVED A transação foi recebida diretamente de um cliente por este validador.
EVENT_TYPE_BROADCASTED A transação foi transmitida por ele para outros validadores.
EVENT_TYPE_ORDERED A transação foi solicitada e programada para execução por este validador.
EVENT_TYPE_EXECUTION_STARTED A execução da transação foi iniciada.
EVENT_TYPE_EXECUTION_COMPLETED A execução da transação foi concluída.
EVENT_TYPE_FINALIZED A transação foi finalizada por este validador.

EventDetails

Representa detalhes adicionais de um evento de status.

Representação 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.
}
Campos
Campo de união event_details. Os detalhes do evento. event_details pode ser apenas de um dos tipos a seguir:
executionDetails

object (ExecutionDetails)

Apenas saída. Detalhes adicionais de um evento de execução.

ExecutionDetails

Detalhes adicionais de um evento de execução.

Representação JSON
{
  "roundId": string
}
Campos
roundId

string (int64 format)

Apenas saída. O ID da rodada em que o evento de execução ocorreu.