Data Sources
Data sources - это источники blockchain/runtime данных, из которых Web3alert получает blocks, transactions, events, extrinsics, calls и metadata.
Проще говоря, data source отвечает на вопрос “откуда читать данные”, а trigger отвечает на вопрос “какое событие из этих данных считать подходящим и как превратить его в output для subscription”.
Для чего нужны data sources
Data source используется в нескольких местах сервиса:
- в Add trigger / Edit trigger, когда trigger выбирает blockchain source;
- в Import triggers, когда wizard генерирует triggers из ABI, pallet metadata или другого описания;
- в runtime engine, который подключается к endpoint, читает новые блоки и передает source items в triggers;
- в мониторинге, где можно смотреть статус источника, lag и logs.
Один data source может использоваться несколькими projects и triggers, если им подходит одна и та же сеть или runtime.
System и custom sources
В списке могут отображаться два типа источников.
System sources
System sources - источники, уже поддерживаемые Web3alert. Они принадлежат платформе и обычно доступны как общие marketplace data sources.
Такие sources нельзя редактировать из workspace. В списке они нужны, чтобы видеть, какие runtime sources сейчас зарегистрированы и в каком состоянии они работают.
Custom sources
Custom sources - источники, созданные внутри workspace.
Их можно использовать для своих проектов, кастомных интеграций и тестирования новых сетей. Custom source можно сделать private или public, если он должен быть доступен шире.
Создание custom sources доступно не на всех тарифах. Free accounts не могут создавать свои data sources; для этого нужен платный тариф. У тарифа также может быть лимит на количество custom sources.
Типы custom sources
Сейчас wizard поддерживает два типа custom data sources.
EVM
EVM source используется для сетей и endpoints, совместимых с Ethereum JSON-RPC.
Он подходит для EVM events, transactions, blocks, contract logs и contract reads, которые потом используются в triggers и providers.
Для EVM source обычно достаточно указать один или несколько HTTP RPC endpoints.
Substrate
Substrate source используется для Polkadot/Substrate-compatible сетей.
Он подходит для runtime events, extrinsics, calls, blocks, storage reads и metadata-based trigger import.
Для Substrate source обычно используется WebSocket endpoint. Если сеть требует нестандартные signed extensions, runtime types или RPC definitions, их можно добавить на шаге Extensions.
Список data sources
Раздел Data Sources показывает таблицу источников.
Источники группируются по типу или runtime category, например EVM, Substrate или другой plugin/runtime type.
Name
Видимое название source и его короткое техническое имя.
Deployer
Workspace или platform owner, который создал source.
Для system sources обычно отображается common. Для custom sources отображается workspace, которому принадлежит источник.
Access
Уровень доступа source.
System означает платформенный источник. Private означает source текущего workspace. Public означает custom source, который опубликован для более широкого использования.
Created at
Дата создания custom source.
Для system/runtime-only sources дата может отсутствовать.
Lag
Отставание source от последнего увиденного блока.
Если source обработал все доступные блоки, отображается Up to date. Если есть backlog, показывается количество блоков lag.
Status
Текущее состояние runtime source.
Возможные состояния:
Running- source работает;Degraded- source работает, но есть проблемы или ошибки;Error- source находится в ошибке;Pending- custom source сохранен, но runtime registration еще не завершен;Registered- source зарегистрирован, но runtime status не отдает активное состояние.
Settings
Меню действий для source.
Доступные пункты зависят от прав пользователя и типа source.
Source actions
Logs
Открывает logs custom source.
Logs помогают понять, подключился ли runtime к endpoint, какие блоки обрабатываются и какие ошибки происходят.
System alerts
Открывает создание subscription для системных уведомлений по source.
Так можно получать alerts, если source переходит в ошибку, восстанавливается или начинает отставать.
Test system alerts
Отправляет тестовое системное событие для проверки alert flow.
Эта функция доступна не всем тарифам и обычно нужна владельцам/администраторам source.
Edit
Открывает source wizard для редактирования custom source.
System sources редактировать нельзя.
Restart source
Перезапускает runtime worker source.
Это полезно, если source выглядит зависшим, но нужно продолжить обработку с сохраненной позиции.
Reset lag
Сбрасывает backlog и продолжает обработку с текущей головы сети.
Пропущенные блоки после такого reset не будут обработаны. Это действие стоит использовать только если старый backlog больше не нужен или мешает source догнать актуальное состояние.
Delete
Удаляет custom source.
Перед удалением важно проверить, не используется ли source в triggers или imports. Если удалить source, связанные triggers и проекты могут потерять источник данных.
Add data source
Add new source открывает wizard создания custom source.
Wizard состоит из четырех шагов: Details, Extensions, Test deployment и Deploy.
Step 1. Details
На этом шаге задается базовая конфигурация source: название, доступ, тип сети, endpoints и runtime processing settings.
Title
Человекочитаемое название source.
Оно отображается в списках и помогает отличать источники друг от друга. Например: Ethereum archive node, Polkadot private RPC, Base mainnet.
Name
Стабильный slug source внутри workspace.
Name формируется из title, но его можно изменить до сохранения. Он может содержать только lowercase letters, numbers и dashes.
После создания source name становится частью fullname вида <workspace>.source.<name>.
Access level
Определяет доступность custom source.
Private подходит для источников текущего workspace и закрытых интеграций. Public используется, если source должен быть доступен шире и может использоваться другими проектами или пользователями, если у них есть соответствующие права.
Type
Тип blockchain/runtime source.
Сейчас доступны EVM и Substrate.
Endpoints
Список RPC endpoints, к которым будет подключаться runtime.
Можно указать один или несколько endpoints. Несколько endpoints полезны для резервирования: если один endpoint нестабилен, runtime может использовать другой.
Для EVM обычно используется HTTP RPC URL. Для Substrate обычно используется WebSocket URL.
Batch max count
Опциональная настройка для EVM source.
Она управляет максимальным количеством batch-запросов при чтении данных. Если не включать поле, используется значение по умолчанию.
Эта настройка относится к advanced runtime settings и нужна только если стандартное поведение не подходит.
Block processing concurrency
Опциональная настройка параллельности обработки блоков.
Большее значение может ускорить обработку, но увеличивает нагрузку на endpoint и runtime. Если не включать поле, используется значение по умолчанию.
Max queued blocks
Опциональный лимит очереди блоков.
Он ограничивает количество блоков, которые source может держать в очереди обработки. Если не включать поле, используется значение по умолчанию.
Step 2. Extensions
На этом шаге настраиваются дополнительные runtime extensions.
Для EVM sources этот шаг обычно ничего не требует: EVM data sources не используют signed extensions, custom runtime types или RPC extension definitions в этом flow.
Для Substrate sources extensions нужны только в тех сетях, где стандартной metadata недостаточно.
Extensions
Общий переключатель optional extensions.
Если endpoint обычный и metadata читается без дополнительных настроек, этот шаг можно оставить выключенным.
Preset
Готовый набор настроек для известных Substrate runtime cases.
Сейчас доступны:
No preset;Avail;Polkadot Asset Hub / Statemint;Kusama Asset Hub / Statemine.
Если выбран preset, wizard использует подготовленные настройки и не требует вручную заполнять signed extensions, types и RPC.
Signed extensions
JSON array с описанием custom signed extensions.
Это нужно для Substrate сетей, где extrinsics используют нестандартные extensions и runtime не может корректно декодировать их без дополнительного описания.
Types
JSON object с custom runtime types.
Это нужно, если metadata или RPC возвращают типы, которые runtime не может распознать автоматически.
RPC
JSON object с custom RPC methods.
Это нужно, если trigger/provider должен обращаться к нестандартным RPC секциям или методам Substrate node.
Step 3. Test deployment
Этот шаг проверяет, что runtime может подключиться к source до сохранения.
Deployment test
Показывает summary будущего source: workspace, fullname и type.
Кнопка Run test deployment запускает проверку endpoints и runtime-конфигурации.
Logs
Показывает результат test deployment.
Если test deployment завершается ошибкой, source лучше не сохранять до исправления endpoints или extensions.
Перейти дальше можно только после успешной проверки.
Step 4. Deploy
Финальный шаг сохраняет source и ждет runtime registration.
Deploy source
Показывает summary конфигурации, которая будет сохранена.
Для Substrate source дополнительно отображается summary extensions: preset, signed extensions, custom types и RPC methods.
Кнопка Create source создает новый source. При редактировании существующего source кнопка называется Update source.
Deploy logs
Показывает процесс сохранения и регистрации source в runtime.
После успешного сохранения source появляется в списке Data Sources. Если runtime registration еще не завершен, source может некоторое время оставаться в статусе Pending.
Edit data source
Редактирование custom source использует тот же wizard.
Можно менять title, access level, endpoints, extensions и runtime settings. Name при редактировании заблокирован, потому что он является частью стабильного fullname.
После обновления source runtime registration может занять некоторое время.