跳转到主要内容
RPC 方法返回当前 RPC 节点认为已达到特定承诺级别的插槽。这是理解节点感知的区块链当前状态的基本方法。

常见用例

  • 获取当前网络进度: 确定节点处理或确认的最新槽。
  • 节点同步检查: 比较不同节点的槽可以指示它们的同步状态。
  • 操作时间戳: 使用当前槽作为操作的参考点或理解某些数据的年龄。
  • 其他 RPC 调用的输入: 一些 RPC 方法可能使用槽号作为参考点。

请求参数

此方法将一个可选的配置对象作为其第一个参数:
  1. 配置对象(可选):一个可选的配置对象,包含以下字段:
    • 承诺级别(可选):为查询指定承诺级别。支持的值包括,或者。如果省略,则使用 RPC 节点的默认承诺(通常为)。
      • :节点将查询其最近的插槽。请注意,该插槽可能尚未得到集群确认,并可能会被跳过。
      • :节点将查询集群中超级多数投票的最近插槽。
      • :节点将查询集群超级多数确认的最近插槽,该插槽已达到最大锁定状态(无法回滚)。
    • 最小插槽(可选):请求可以评估的最小插槽。这设置了节点上下文的最小插槽。如果节点的状态早于此插槽,它可能会返回一个错误或一个反映其相对于此最小值的当前(较旧)状态的插槽号。

响应结构

JSON-RPC 响应的字段是一个单一的(无符号 64 位整数),代表根据指定承诺级别的当前插槽号。 示例响应:
{
  "jsonrpc": "2.0",
  "result": 123456789,
  "id": 1
}

示例

1. 获取当前槽(默认承诺)

此示例使用节点的默认承诺级别(通常为 finalized)获取当前槽。
# Replace <api-key> with your Helius API key
curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
  '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getSlot"
  }'

2. 获取具有特定承诺的当前槽

此示例获取已达到 confirmed 承诺的当前槽。
# Replace <api-key> with your Helius API key
curl https://mainnet.helius-rpc.com/?api-key=<api-key> -X POST -H "Content-Type: application/json" -d \
  '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "getSlot",
    "params": [
      {
        "commitment": "confirmed"
      }
    ]
  }'

开发者提示

  • 承诺很重要: 返回的槽号在很大程度上取决于指定的 commitment 级别。有关详细信息,请参阅 Solana 承诺级别processed 将是节点知道的最高(最新)槽,而 finalized 将是整个网络确认的旧槽。根据您的用例对数据最终性的需求选择适当的承诺级别。
  • 节点差异性: 由于网络传播延迟或节点自身处理状态的不同,不同的 RPC 节点可能会为相同的承诺级别返回略有不同的槽号。这在 processedconfirmed 级别时尤其如此。
  • minContextSlot: 此参数确保处理您请求的节点至少已达到 minContextSlot。如果节点落后于此槽,行为可能会有所不同(例如,错误或节点当前最高槽小于 minContextSlot)。它通常用于高级场景,在这些场景中,您需要确保查询针对的是一个足够最近的状态。
getSlot 是一个简单但必不可少的方法,用于与 Solana 区块链交互并了解其当前进展。