Solana 查询 Epoch 接口

Solana 区块链中,EpochSlot 是两个重要的概念:

Epoch 时代

  • Epoch 是 Solana 区块链中的一个时间单位,它代表了一段时间内的区块产生周期。
  • 每个 Epoch 可以包含多个 Slot,而每个 Slot 可以包含一个或多个交易。
  • Epoch 的长度是由网络参数决定的,一般情况下为一个特定数量的 Slot,例如 432,000 个 Slot。
  • Epoch 的变化可以触发一些网络机制的改变,比如节点验证权重的更新等。

Slot 槽位

  • Slot 是 Solana 区块链中的一个时间片段,它表示了网络中的一个固定时间点。
  • Solana 区块链是一个单独的链条,而每个区块的产生都由一个 Slot 触发,这样可以保证整个网络的同步和一致性。
  • 每个 Slot 有一个唯一的编号,可以用来标识和查询特定的时间点或区块。

总体来说,Epoch 是对时间的一种抽象单位,代表了区块链中的一个周期,而 Slot 则是具体的时间片段,用来精确表示某个时间点或区块的产生。

通过 EpochSlot 的概念,可以更好地理解 Solana 区块链的时间和区块的结构,以及相关的时间和区块查询接口。

1. 获取当前 Epoch 信息

使用 getEpochInfo 方法可以获取当前 Epoch 的信息,包括当前绝对 Slot 数、区块高度、Epoch 数、Slot 索引、Epoch 中的 Slot 数、以及交易数等。

我们在命令行中,通过 curl 命令发送 POST 请求到 SolanaRPC 接口。

curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
{"jsonrpc":"2.0","id":1, "method":"getEpochInfo"}
'

返回结果:

{
  "jsonrpc": "2.0",
  "result": {
    "absoluteSlot": 207170348,
    "blockHeight": 174478875,
    "epoch": 492,
    "slotIndex": 150092,
    "slotsInEpoch": 432000,
    "transactionCount": 258177341740
  },
  "id": 1
}

里面有当前周期的区块高度,Slot 数目,以及 Transaction 的数目。

2. 获取 Epoch 调度信息

使用 getEpochSchedule 方法可以获取 Epoch 的调度信息。

我们在命令行中,通过 curl 命令发送 POST 请求到 SolanaRPC 接口。

curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
  {
      "jsonrpc":"2.0","id":1,
      "method":"getEpochSchedule"
  }
  '

返回结果:

{
  "jsonrpc": "2.0",
  "result": {
    "firstNormalEpoch": 14,
    "firstNormalSlot": 524256,
    "leaderScheduleSlotOffset": 432000,
    "slotsPerEpoch": 432000,
    "warmup": true
  },
  "id": 1
}

结果中包含 EpochSlot 的数目,起始值等信息。

3. 获取最新Slot

使用 getSlot 方法可以直接获取当前最新的 Slot 值。

我们在命令行中,通过 curl 命令发送 POST 请求到 SolanaRPC 接口。

curl https://api.devnet.solana.com -X POST -H "Content-Type: application/json" -d '
  {"jsonrpc":"2.0","id":1, "method":"getSlot"}
'

返回结果:

{"jsonrpc":"2.0","result":209119756,"id":1}


通过这些接口,您可以获取到 Solana 区块链中与 SlotEpoch 相关的重要信息,包括当前 Epoch 信息、Epoch 调度信息以及最新的 Slot 值。