Skip to content

Networks Catalog Pipeline

SyncNetworksCatalogWorkflow собирает и обновляет каталог сетей/чейнов.

Источники

  • CoinGecko: GET /api/v3/asset_platforms (primary по list/metadata)
  • chainid.network: GET /chains.json (fallback/обогащение chain id, RPC/explorer)
  • DefiLlama: GET /v2/chains (primary по метрикам)

Канонический ключ сети

  • EVM: evm:<chain_id>
  • non-EVM при наличии CoinGecko id: cg:<coingecko_platform_id>
  • иначе: llama:<defillama_slug>

Политика merge

  • Идентификация сети: chainid.network > CoinGecko > DefiLlama
  • Название сети: CoinGecko > chainid.network > DefiLlama
  • RPC/Explorer: chainid.network primary, далее fallback из других источников
  • Метрики: DefiLlama primary, fallback CoinGecko при наличии

Политика метрик

  • Если метрик нет: запись сети сохраняется.
  • Поля метрик в networks_catalog становятся NULL.
  • Ставится metrics_stale = true.
  • last_metrics_at не обновляется.

Soft-delete

  • На каждом sync найденные сети получают last_seen_at = now(), is_active = true.
  • Сети старше окна soft_delete_grace_days помечаются как is_active = false.
  • Физическое удаление не выполняется.

Manual запуск workflow

docker compose exec -T temporal temporal workflow start \
  --address temporal:7233 --namespace default --task-queue default \
  --type SyncNetworksCatalogWorkflow \
  --workflow-id sync-networks-catalog-manual-$(date +%s) \
  --input '{"force_full_refresh":false,"soft_delete_grace_days":30,"metrics_required":false}'