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 global. Fornecido apenas se o status for FINALIZED.

statusEvents[]

object (StatusEvent)

Apenas saída. Os eventos de status do pedido 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 esse validador, mas ainda não foi finalizada.
FINALIZED A transação foi finalizada. Os efeitos dela 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 de execução da rodada.

pathToRoundRoot[]

object (MerkleTreeNode)

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

Ela é fornecida 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 esquerdo, filho direito), e o primeiro par é o filho esquerdo e direito do nó pai da folha em questão. 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, verificando 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 o certificado se refere.

roundId

string (int64 format)

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

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 as mudanças no estado do mundo. Os efeitos da transação no estado global.

TransactionStatus

Representa o status de uma execução de 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 do gRPC correspondente.

message

string (bytes format)

Apenas saída. A mensagem de erro, se houver. Defina 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 global.

Se tiver um deltaVal, ele 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 dos valores 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 global 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 do validador legível por humanos. Isso é usado para procurar a chave pública em que o validatorSignatures é verificado.

roundStateChecksumHex

string

Apenas saída. A representação hexadecimal do resumo homomórfico sobre o estado global 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 das transações desta rodada.

merkleTree

object (MerkleTree)

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

validatorSignatures[]

string (bytes format)

Opcional. A assinatura do validador. Isso é assinado sobre o resumo do payload anterior desse 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
{
  "rootDigestHex": string,
  "numTransactions": string
}
Campos
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 Merkle.

Representação JSON
{
  "leftChildDigestHex": string,
  "rightChildDigestHex": string
}
Campos
leftChildDigestHex

string

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

rightChildDigestHex

string

Apenas saída. A representação hexadecimal do resumo do filho direito 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 visualização de outros validadores.

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

string (Timestamp format)

Apenas saída. O horário em que o evento foi registrado por esse 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 por esse validador diretamente de um cliente.
EVENT_TYPE_BROADCASTED A transação foi transmitida por ele para outros validadores.
EVENT_TYPE_ORDERED A transação foi ordenada e programada para execução por esse 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
{

  // 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.
}
Campos
Os detalhes do evento. Confira a seguir uma lista de campos mutuamente exclusivos. No máximo um dos campos será definido em uma resposta:
executionDetails

object (ExecutionDetails)

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

Fim dos campos mutuamente exclusivos.

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.