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.networkprimary, далее fallback из других источников - Метрики:
DefiLlamaprimary, fallbackCoinGeckoпри наличии
Политика метрик
- Если метрик нет: запись сети сохраняется.
- Поля метрик в
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}'