getBlockProduction предоставляет информацию о создании блоков в текущей эпохе или в указанном диапазоне слотов. Его можно использовать для получения данных обо всех валидаторах или о конкретном идентификаторе валидатора. Это полезно для мониторинга производительности валидаторов и анализа закономерностей создания блоков в сети.
Распространенные сценарии использования
- Мониторинг производительности валидатора: Отслеживайте количество созданных блоков и слоты лидера для конкретного валидатора.
- Анализ производительности за эпоху: Получайте общую картину создания блоков всеми валидаторами в текущей или прошлой эпохе.
- Выявление пропущенных слотов: Проверяйте, пропускают ли валидаторы назначенные им слоты лидера.
- Проверка состояния сети: Собирайте данные об общей эффективности создания блоков.
Параметры запроса
МетодgetBlockProduction принимает необязательный объект конфигурации со следующими параметрами:
commitment(строка, необязательно): Задает уровень подтверждения для запроса. Если параметр не указан, используется уровень подтверждения узла по умолчанию.range(объект, необязательно): Определяет диапазон слотов для запроса.firstSlot(u64): Первый слот, для которого нужно получить информацию о создании блоков (включительно).lastSlot(u64, необязательно): Последний слот, для которого нужно получить информацию о создании блоков (включительно). Если параметр не указан, возвращаются данные о создании блоков в текущей эпохе до текущего слота.
identity(строка, необязательно): Публичный ключ идентификатора валидатора в кодировке base58. Если он указан, ответ будет содержать информацию о создании блоков только для этого валидатора. Если параметр не указан, возвращается информация обо всех валидаторах в указанном диапазоне или текущей эпохе.
identity или range.firstSlot. Если identity не указан, параметр range обязателен.
Структура ответа
Полеresult ответа JSON-RPC содержит объект со следующими полями:
context(объект):slot(u64): Слот, на котором была получена информация.
value(объект):byIdentity(объект): Объект, ключами которого являются строки идентификаторов валидаторов — публичные ключи в кодировке base58, а значениями — объекты со следующими полями:leaderSlots(u64): Количество слотов лидера, назначенных этому валидатору в запрошенном диапазоне или эпохе.blocksProduced(u64): Количество блоков, созданных этим валидатором в запрошенном диапазоне или эпохе.
range(объект):firstSlot(u64): Первый слот запрошенного диапазона.lastSlot(u64): Последний слот запрошенного диапазона.
Рекомендации разработчикам
- Учитывайте границы эпох: При запросе по
identityбезrangeвозвращаются данные за текущую эпоху до последнего слота, обработанного узлом. Если вам нужны данные за полную прошлую эпоху для конкретного валидатора, определитеfirstSlotиlastSlotдля этой эпохи. - Доступность данных на узле: Диапазон доступных исторических данных о создании блоков может различаться между узлами RPC. Очень старые диапазоны слотов могут быть доступны не на всех узлах.
- Мониторинг производительности:
getBlockProductionнеобходим для создания панелей мониторинга и оповещений, связанных с доступностью валидаторов и долей успешно созданных блоков. - Сочетание с
getLeaderSchedule: Для более глубокого анализа сопоставьте данныеgetBlockProductionс результатамиgetLeaderSchedule, чтобы определить, какие именно слоты лидера были использованы или пропущены. - Идентификатор или все валидаторы: Запрос без
identityможет вернуть большой объем данных, особенно если параметрrangeне указан или задает широкий диапазон. Учитывайте размер ответа и требования к его обработке.
Примеры
1. Получение данных о создании блоков в текущей эпохе для всех валидаторов
В этом примере запрашиваются данные о создании блоков всеми валидаторами в текущей эпохе.2. Получение данных о создании блоков конкретным валидатором в текущей эпохе
В этом примере запрашиваются данные о создании блоков для конкретного идентификатора валидатора в текущей эпохе.3. Получение данных о создании блоков конкретным валидатором в заданном диапазоне слотов
В этом примере запрашиваются данные о создании блоков конкретным валидатором в заданном диапазоне слотов.getBlockProduction для анализа создания блоков в Solana.
Связанные методы
getLeaderSchedule
Получите полное расписание лидеров для сопоставления с данными о создании блоков
getVoteAccounts
Получите информацию обо всех голосующих валидаторах