Skip to content

Data Sources ​

Data sources - это источники blockchain/runtime данных, из которых Web3alert получает blocks, transactions, events, extrinsics, Solana instructions/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.

Solana ​

Solana source используется для Solana-compatible сетей и RPC endpoints.

Он подходит для Solana blocks, successful instructions/calls и program events, которые декодируются по IDL. Для Solana source важно, чтобы у программы был доступен IDL: wizard может попытаться загрузить его автоматически через Anchor IDL account или Program Metadata, но если это не получается, IDL JSON нужно вставить вручную.

Без IDL Web3alert не создает Solana event/call triggers, потому что невозможно надежно построить структуру аргументов, accounts и output schema.

Для Solana source обычно используется HTTP RPC URL. Source читает каждый slot/block через RPC, а matching events/calls извлекает из полного блока без отдельных getTransaction requests.

Список data sources ​

Раздел Data Sources показывает таблицу источников.

Источники группируются по типу или runtime category, например EVM, Substrate, Solana или другой 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 и Solana.

Endpoints ​

Список RPC endpoints, к которым будет подключаться runtime.

Можно указать один или несколько endpoints. Несколько endpoints полезны для резервирования: если один endpoint нестабилен, runtime может использовать другой.

Для EVM и Solana обычно используется 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 и Solana 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 может занять некоторое время.