getSlot возвращает текущий слот, который, по мнению узла RPC, достиг определенного уровня подтверждения. Это основной метод для понимания текущего состояния блокчейна с точки зрения узла.
Распространенные сценарии использования
- Получение текущего состояния сети: Определите последний слот, обработанный или подтвержденный узлом.
- Проверка синхронизации узлов: Сравнение слотов разных узлов позволяет оценить состояние их синхронизации.
- Временная привязка операций: Используйте текущий слот как точку отсчета для операций или определения давности определенных данных.
- Входные данные для других вызовов RPC: Некоторые методы RPC могут использовать номер слота как точку отсчета.
Параметры запроса
Этот метод принимает необязательный объект конфигурации в качестве первого параметра:options(object, необязательный): Необязательный объект конфигурации со следующими полями:commitment(string, необязательный): Задает уровень подтверждения для запроса. Поддерживаемые значения:finalized,confirmedилиprocessed. Если параметр не указан, используется уровень подтверждения узла RPC по умолчанию (обычноfinalized).processed: Узел запросит свой последний слот. Обратите внимание, что этот слот может быть еще не подтвержден кластером и потенциально может быть пропущен.confirmed: Узел запросит последний слот, за который проголосовало квалифицированное большинство кластера.finalized: Узел запросит последний слот, для которого квалифицированное большинство кластера подтвердило достижение максимальной блокировки (его нельзя откатить).
minContextSlot(number, необязательный): Минимальный слот, на котором может быть обработан запрос. Этот параметр задает минимальный слот для контекста узла. Если состояние узла старше этого слота, узел может вернуть ошибку или номер слота, отражающий его текущее, более старое состояние относительно указанного минимума.
Структура ответа
Полеresult ответа JSON-RPC содержит одно значение u64 (64-битное целое число без знака), представляющее номер текущего слота в соответствии с указанным уровнем подтверждения.
Пример ответа:
Примеры
1. Получение текущего слота (уровень подтверждения по умолчанию)
В этом примере текущий слот запрашивается с уровнем подтверждения узла по умолчанию (обычноfinalized).
2. Получение текущего слота с определенным уровнем подтверждения
В этом примере запрашивается текущий слот, достигший уровня подтвержденияconfirmed.
Рекомендации разработчикам
- Уровень подтверждения имеет значение: Возвращаемый номер слота существенно зависит от указанного уровня
commitment. Подробную информацию см. в статье «Уровни подтверждения Solana».processedбудет самым высоким (последним) слотом, известным узлу, аfinalized— более старым слотом, подтвержденным всей сетью. Выберите уровень подтверждения, соответствующий требованиям вашего сценария к окончательности данных. - Различия между узлами: Из-за задержек распространения данных по сети или текущего состояния обработки разные узлы RPC могут возвращать немного отличающиеся номера слотов для одного уровня подтверждения. Это особенно актуально для уровней
processedиconfirmed. minContextSlot: Этот параметр гарантирует, что узел, обрабатывающий запрос, достиг как минимум слотаminContextSlot. Если узел отстает от этого слота, его поведение может различаться: например, он может вернуть ошибку или текущий самый высокий слот узла, который меньшеminContextSlot. Обычно этот параметр используется в сложных сценариях, когда необходимо убедиться, что запрос выполняется для достаточно актуального состояния.
getSlot — простой, но важный метод для взаимодействия с блокчейном Solana и понимания его текущего состояния.