getSlot
RPC 方法返回 RPC 节点认为已达到特定承诺级别的当前槽。这是理解节点感知的区块链当前状态的基本方法。
常见用例
- 获取当前网络进度: 确定节点处理或确认的最新槽。
- 节点同步检查: 比较不同节点的槽可以指示它们的同步状态。
- 操作时间戳: 使用当前槽作为操作的参考点或理解某些数据的年龄。
- 其他 RPC 调用的输入: 一些 RPC 方法可能使用槽号作为参考点。
请求参数
此方法将一个可选的配置对象作为其第一个参数:options
(object
, 可选):一个可选的配置对象,具有以下字段:commitment
(string
, 可选):指定查询的承诺级别。支持的值为finalized
,confirmed
, 或processed
。如果省略,将使用 RPC 节点的默认承诺(通常为finalized
)。processed
: 节点将查询其最新的槽。注意,此槽可能尚未被集群确认,并可能被跳过。confirmed
: 节点将查询集群中超级多数投票的最新槽。finalized
: 节点将查询集群超级多数确认已达到最大锁定(不能回滚)的最新槽。
minContextSlot
(number
, 可选):请求可以评估的最小槽。这设置了节点上下文的最小槽。如果节点的状态比此槽旧,可能会返回错误或反映其当前(较旧)状态相对于此最小槽的槽号。
响应结构
JSON-RPC 响应的result
字段是一个单一的 u64
(无符号 64 位整数),表示根据指定的承诺级别的当前槽号。
示例响应:
示例
1. 获取当前槽(默认承诺)
此示例使用节点的默认承诺级别(通常为finalized
)获取当前槽。
2. 获取具有特定承诺的当前槽
此示例获取已达到confirmed
承诺的当前槽。
开发者提示
- 承诺很重要: 返回的槽号在很大程度上取决于指定的
commitment
级别。有关详细信息,请参阅 Solana 承诺级别。processed
将是节点已知的最高(最新)槽,而finalized
将是整个网络确认的较旧槽。根据您的用例对数据最终性的需求选择合适的承诺级别。 - 节点可变性: 由于网络传播延迟或其自身的处理状态,不同的 RPC 节点可能会为相同的承诺级别返回略有不同的槽号。对于
processed
和confirmed
级别尤其如此。 minContextSlot
: 此参数确保处理您请求的节点至少已达到minContextSlot
。如果节点落后于此槽,行为可能会有所不同(例如,错误或节点当前的最高槽小于minContextSlot
)。它通常用于需要确保查询针对足够最新状态的高级场景中。
getSlot
是与 Solana 区块链交互并了解其当前进展的简单但重要的方法。