跳转至

查询区块链

原文:https://docs.elrond.com/integrators/querying-the-blockchain

## 查询广播交易

为了查询交易并检查其状态,请遵循:

查询最近广播的交易可能不会在响应中返回超级块坐标(超级块随机数和超级块散列)。然而,一旦交易被完全执行——根据status字段(无论成功还是失败),超块坐标将被设置并出现在响应中。

交易状态

对于常规转账交易,交易status含义如下:

状态 意义
成功执行 交易已经完全执行——关于Elrond的分片架构,它已经在源分片和目的分片中执行。
无效 交易处理失败(发送方余额不足)。
未决收到部分执行 交易已经在内存池中被接受,或者被接受并部分执行(在源碎片中)。
失败未执行 常规转账交易不能达到此状态。
警告

状态(广义地说)是直接从观察节点本身获取的。节点 v1.1.6 返回与以前版本不同的状态。例如,状态已执行已更名为成功,而状态已接收部分执行已合并到状态待处理下。

目前,HTTP API 没有实现版本控制方案(这方面的工作正在进行中),因此还没有提供抽象状态重命名的层。因此,的 API 消费者——为了恰当地处理来自两个版本节点的数据(在v1.1.6之前和v1.1.6之后)——被推荐给:

✔把成功执行作为同义词

✔处理待处理已接收部分执行为同义词

✔把失败未执行作为同义词。

对于智能合约交易,交易状态具有以下含义:

状态 意义
成功执行 智能合约交易已经执行,但不一定有 成功 -有错误执行的交易如user error(合约引发)或out of gas也有这种状态-错误的场景将在未来版本中处理。
无效 交易已在发送方失败的情况下处理(例如,余额不足),但实际上并未到达智能合约以供执行。
未决收到部分执行 交易已经在内存池中被接受,或者被接受并部分执行(在源碎片中)。
失败 尚不适用。保留供将来使用-用于与user error的交易。
重要

本小节中的文档(关于智能合约交易)是初步的,可能会有所更改。

查询超级块和完全执行的交易

要查询已执行的交易,请遵循:

查询终结信息

为了获取最新的最终(超级)块的随机数(高度),需要对本地代理实例执行以下请求:

curl http://myProxy:8079/network/status/4294967295 

上面,4294967295是一个特殊的数字——元链的 ID。

根据响应,人们应该对字段erd_highest_final_nonce感兴趣,该字段将指向最新的最终超级块。

 "data": {
    "status": {
      "erd_highest_final_nonce": 54321
      ...
    }
  },
  ...
} 


回到顶部