TransactionAttempt

尝试提交交易的状态。

JSON 表示法
{
  "status": enum (TransactionStatus),
  "proofOfInclusion": {
    object (ProofOfInclusion)
  },
  "statusEvents": [
    {
      object (StatusEvent)
    }
  ]
}
字段
status

enum (TransactionStatus)

仅限输出。交易尝试的当前状态。

proofOfInclusion

object (ProofOfInclusion)

仅限输出。证明交易效果已纳入世界状态的证书。仅在状态为 FINALIZED 时提供。

statusEvents[]

object (StatusEvent)

仅限输出。为交易尝试记录的有序状态事件。

TransactionStatus

交易尝试的状态。

枚举
TRANSACTION_STATUS_UNSPECIFIED 未知或未初始化状态。
PENDING 此验证器已知晓该交易,但尚未最终确定。
FINALIZED 交易已完成。其影响已在区块链上持久化,无法撤消。

ProofOfInclusion

证明交易的影响已纳入世界状态的证书。

JSON 表示法
{
  "transactionCertificate": {
    object (TransactionCertificate)
  },
  "roundCertificate": {
    object (RoundCertificate)
  },
  "pathToRoundRoot": [
    {
      object (MerkleTreeNode)
    }
  ]
}
字段
transactionCertificate

object (TransactionCertificate)

仅限输出。交易效果包含在特定轮次中的证书。

roundCertificate

object (RoundCertificate)

仅限输出。轮次执行证书。

pathToRoundRoot[]

object (MerkleTreeNode)

仅限输出。执行轮次中包含事务效果的加密证明。

它以从给定叶(交易摘要)到执行轮次根的路径形式给出。该路径表示为(左子节点、右子节点)对的列表,其中第一对是给定叶节点的父节点的左子节点和右子节点。例如,假设 Merkle 树是使用 8 个叶摘要 [t0, t1, t2, t3, t4, t5, t6, t7] 构建的,其结构如下:

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

在这里,t0 的 pathToRoundRoot 将包含:[(t0, t1), (h10, h11), (h20, h21)]。

您可以连续计算每个路径节点的 SHA-256 摘要,以验证路径的摘要是否会生成与 roundCertificate.merkle_tree.root_digest_hex 相同的值。从而验证该叶是否包含在相应轮次的 Merkle 树中。

TransactionCertificate

一轮中特定交易执行的证书。

JSON 表示法
{
  "transactionDigestHex": string,
  "roundId": string,
  "transactionEffects": {
    object (TransactionEffects)
  },
  "events": [
    {
      object (TransactionEvent)
    }
  ],
  "transactionEffectsStateChecksumHex": string,
  "certificationResultsDigestHex": string
}
字段
transactionDigestHex

string

仅限输出。此证书对应的交易的 ID。

roundId

string (int64 format)

仅限输出。执行此交易的执行轮次的 ID。

transactionEffects

object (TransactionEffects)

仅限输出。事务执行的影响。

events[]

object (TransactionEvent)

仅限输出。事务生成的事件。

transactionEffectsStateChecksumHex

string

仅限输出。效果的同态校验和。编码为十六进制字符串的 2048 字节值。

certificationResultsDigestHex

string

仅限输出。按顺序排列的所有先前字段的加密摘要。用于为包含证明构建 Merkle 树。

TransactionEffects

执行事务的影响。

JSON 表示法
{
  "status": {
    object (TransactionStatus)
  },
  "effects": [
    {
      object (TransactionEffect)
    }
  ]
}
字段
status

object (TransactionStatus)

仅限输出。事务执行的结果状态。

effects[]
(deprecated)

object (TransactionEffect)

仅限输出。已弃用:请改为查询网络状态,以确定世界状态是否发生任何变化。交易在世界状态中的影响。

TransactionStatus

表示事务执行的状态。

JSON 表示法
{
  "code": integer,
  "message": string
}
字段
code

integer

仅限输出。状态代码,一个数值,其含义由相应的 gRPC 状态代码定义。

message

string (bytes format)

仅限输出。出错提示(如果有)。仅在代码不为 OK 时设置。这是一个编码为 utf-8 字节的字符串。以字节形式存储,以防止编码的确定性出现任何问题。

使用 base64 编码的字符串。

TransactionEffect

表示某项交易对世界状态的更新。

如果它具有 deltaVal,则假定它是应用于给定键上先前存储的值的增量(整数偏移量)。在这种情况下,newVal 和 oldVal 应为空。

否则,系统会假定它至少具有 oldVal 或 newVal(或两者兼有)。oldVal 为空表示值已插入。newVal 为空表示值已被删除。

JSON 表示法
{
  "key": string,
  "oldVal": string,
  "newVal": string,
  "deltaVal": string
}
字段
key

string (bytes format)

仅限输出。世界状态中已更新的键。

使用 base64 编码的字符串。

oldVal

string (bytes format)

仅限输出。事务执行前键的值。

使用 base64 编码的字符串。

newVal

string (bytes format)

仅限输出。事务执行后键的值。

使用 base64 编码的字符串。

deltaVal

string (int64 format)

仅限输出。应用于先前存储的值的整数偏移量。

TransactionEvent

由交易产生的事件。

JSON 表示法
{
  "type": string,
  "attributes": [
    {
      object (EventAttribute)
    }
  ]
}
字段
type

string

仅限输出。事件的类型。类型为 transaction_output 的特殊事件包含事务生成的输出,例如新创建账号的账号 ID。

attributes[]

object (EventAttribute)

仅限输出。采用任意键值对形式的事件属性。

EventAttribute

采用键值对形式的单个属性。

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

仅限输出。该属性的键。

value

string

仅限输出。属性的值。

RoundCertificate

特定验证者执行一轮验证的证书。

JSON 表示法
{
  "roundId": string,
  "validatorId": string,
  "roundStateChecksumHex": string,
  "roundDeltaChecksumHex": string,
  "merkleTree": {
    object (MerkleTree)
  },
  "validatorSignatures": [
    string
  ],
  "isFinalized": boolean
}
字段
roundId

string (int64 format)

仅限输出。证书所对应的轮次 ID。

validatorId

string

仅限输出。人类可读的验证器标识符。这用于查找验证 validatorSignatures 所依据的公钥。

roundStateChecksumHex

string

仅限输出。应用此轮的影响后,世界状态的同态摘要的十六进制表示。

roundDeltaChecksumHex

string

仅限输出。此轮汇总交易效果的同态摘要的十六进制表示。

merkleTree

object (MerkleTree)

仅限输出。Merkle 树,以本轮作为根节点,以交易批次(在本轮中执行)作为叶节点。

validatorSignatures[]

string (bytes format)

可选。验证者的签名。此签名基于此记录的前一个载荷的摘要。

使用 base64 编码的字符串。

isFinalized

boolean

仅限输出。布尔值,用于指示轮次是否已完成,即是否有足够数量的验证者使用相同的证书对该轮次进行了认证。

MerkleTree

具有根节点加密摘要的 Merkle 树。

JSON 表示法
{
  "rootDigestHex": string,
  "numTransactions": string
}
字段
rootDigestHex

string

仅限输出。根节点摘要的十六进制表示。格式:64 个字符的十六进制字符串。

numTransactions

string (int64 format)

仅限输出。树中的事务数量。

MerkleTreeNode

表示 Merkle 树路径中的节点。

JSON 表示法
{
  "leftChildDigestHex": string,
  "rightChildDigestHex": string
}
字段
leftChildDigestHex

string

仅限输出。节点左侧子节点的摘要的十六进制表示。格式:64 个字符的十六进制字符串。

rightChildDigestHex

string

仅限输出。节点右子级摘要的十六进制表示。格式:64 个字符的十六进制字符串。

StatusEvent

表示单个验证者观察到的交易处理过程中的事件。

报告的所有值均来自处理请求的验证器,可能与其他验证器的视图不同。

JSON 表示法
{
  "eventTime": string,
  "eventType": enum (EventType),
  "eventDetails": {
    object (EventDetails)
  }
}
字段
eventTime

string (Timestamp format)

仅限输出。此验证器记录事件的时间。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z"、"2014-10-02T15:01:23.045123456Z" 或 "2014-10-02T15:01:23+05:30"。

eventType

enum (EventType)

仅限输出。事件的类型。

eventDetails

object (EventDetails)

仅限输出。与事件相关的其他详细信息。

EventType

表示交易处理过程中的事件类型,由请求路由到的验证器观察。

枚举
EVENT_TYPE_UNSPECIFIED 未知或未指定的事件。
EVENT_TYPE_RECEIVED 此验证者直接从客户端收到了交易。
EVENT_TYPE_BROADCASTED 该交易由其广播给其他验证者。
EVENT_TYPE_ORDERED 此验证器已对交易进行排序并安排执行。
EVENT_TYPE_EXECUTION_STARTED 事务已开始执行。
EVENT_TYPE_EXECUTION_COMPLETED 事务执行已完成。
EVENT_TYPE_FINALIZED 此验证者已完成交易。

EventDetails

表示状态事件的其他详细信息。

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.
}
字段
事件的详细信息。以下是互斥字段的列表。在响应中,最多只能设置以下字段之一:
executionDetails

object (ExecutionDetails)

仅限输出。执行事件的其他详细信息。

互斥字段结束。

ExecutionDetails

执行事件的其他详细信息。

JSON 表示法
{
  "roundId": string
}
字段
roundId

string (int64 format)

仅限输出。发生执行事件的回合 ID。