getBlockTime RPC メソッドは、スロット番号で識別された特定のブロックの推定生成時間を提供します。時間は Unix タイムスタンプ(Unix エポックからの秒数)として返されます。
このメソッドは、ブロック生成と実世界の時間を関連付ける必要がある場合に便利です。
一般的なユースケース
- イベントのタイムスタンプ: 特定のブロックが生成された時刻を決定してオンチェーンのイベントにタイムスタンプを付ける。
- ブロック生成間隔の分析: ブロック間の時間差を計算します(詳細な分析には他の方法と組み合わせることができます)。
- オフチェーンデータの相関: ブロック生成時刻を一致させてオフチェーンのイベントやデータをオンチェーンの活動と一致させる。
リクエストパラメータ
getBlockTime メソッドは 1 つのパラメータを取ります。
slot(u64, 必須): 推定生成時間を取得するブロックのスロット番号。
応答構造
JSON-RPC 応答のresult フィールドは次のいずれかになります。
timestamp(i64): Unix タイムスタンプとしての推定生成時間(Unix エポックからの秒数)。null: 指定されたブロックのタイムスタンプが利用できない場合(例:非常に古いブロックでありデータが削除されている場合、またはブロックがスキップされ関連するタイムスタンプがない場合)。
例
1. 特定ブロックの推定時間を取得
この例では、特定のスロットの推定生成時間を取得します。あなたが対象としているネットワーク(例:Mainnet Beta または Devnet)で最新の確認されたスロットとSLOT_NUMBER_TO_QUERY を置き換えてください。
開発者向けヒント
- タイムスタンプの可用性: 特に非常に古いブロックやスキップされたスロットでは、すべてのブロックにタイムスタンプが利用できるわけではありません。その場合、メソッドは
nullを返します。 - 推定: 時間は 推定値 です。これは、バリデーターからの投票タイムスタンプのステーク加重平均から導出されます。一般的には正確ですが、ブロックハッシュのようにすべてのブロックに対して暗号学的に保証されたタイムスタンプではありません。
- ノード依存: 可用性と精度は、特に非常に最近の(まだ最終決定されていない)ブロックに関して、問い合わせた RPC ノードによってわずかに異なる場合があります。
getBlockTime の使用方法を説明します。