Якҷоя кардани маълумот аз схемаҳои гуногун
(Қисмат: Экосистема ва шабака)
1) Чаро ба шумо якҷояшавӣ лозим аст
Якҷоякунии занҷирҳо ҳодисаҳо/ҳолатҳоро аз занҷирҳо, пулҳо ва хидматҳои гуногун ба як модели ягонаи муттасили маълумот барои ҳисоботи молиявӣ, таҳлил, зидди қаллобӣ, мушоҳида ва сенарияи маҳсулот муттаҳид мекунад. Вазифаҳо:- Манбаи ягонаи ҳақиқат (далелҳои каноникӣ) дар ҳузури гузоришҳои мотли.
- Муқовимат ба бозсозӣ ва таъхирҳо: дуруст анҷом додан ва ҳисобкунии дубора.
- Муқоисаи ченакҳо байни шабакаҳо ва дороиҳо.
- Назорати шаффофи насл ва сифат барои аудитҳо ва танзимгарон.
2) Манбаъҳои маълумот ва синфҳо
1. Ончайн: блокҳо, транзаксияҳо, гузоришҳои шартномавӣ, сарлавҳаҳо, давлатҳо.
2. Пулҳо/трейлерҳо: аризаҳо, квитансияҳо, далелҳо, ҳолати ниҳоӣ.
3. Қабатҳои L2/DA: маҷмӯаҳо, нашрияҳо, далелҳо, тирезаҳои мушкил.
4. PSP/KYC/KYB/AML: ҳолати пардохт, чекҳо, хитҳо.
5. Чорабиниҳои маҳсулот: боркашонӣ, пасандозҳо/пардохтҳо, чорабиниҳои бозӣ ва рафтор.
6. Феҳристҳо: шабакаҳо, дороиҳо, даҳҳо, chain-Id, суроғаҳо, версияҳои SDK.
Барои ҳар як манбаъ соҳиби схема, сабти навсозӣ, равзанаи ниҳоӣ, формати далелҳо ва SLO сабт карда мешаванд.
3) Меъмории лӯлаи Fusion
Воридшавӣ (агентҳо/индексатсияҳо/вебҳук) → хом/биринҷӣ (ашёи хоми ивазнашаванда) → Тоза/Нуқра (нормализатсия ва тарҳ) → Merge/Core/Gold (далелҳо ва пайвастҳои каноникӣ) → Марсҳо (молия/маҳсулот/хавф/системаи амалиётӣ) → Хизмат (OLAP/API/ҷустуҷӯ).
Хусусиятҳои асосӣ: idempotency, version schema, repay/backfill, коркарди деринаи маълумот.
4) Схемаҳои каноникӣ (соддакардашуда)
4. 1 Ҳодисаҳо (YAML)
yaml event:
id: uuid observed_at: timestamp # when saw event_at: timestamp # when happened (by source)
chain_id: string # 'eth-mainnet' 'polygon'...
block_height: long tx_hash: string log_index: int type: string # transfer bridge. lock bridge. mint...
status: string # observed confirmed finalized invalid src: string # address/peer-id/org _ id dst: string asset: string # canonical character (USDC)
amount: decimal usd_value: decimal # normalization at the rate on the meta observed_at: object # gas, fee, contract, sdk_version...
idempotency_key: string # chainId block tx logIndex type proof_ref: string # proof/anchor reference
4. 2 Тарҷумаҳо ва пулҳо (SQL)
sql
CREATE TABLE bridge_transfers (
id TEXT PRIMARY KEY,
src_chain TEXT, dst_chain TEXT,
asset TEXT, amount NUMERIC,
created_at TIMESTAMPTZ,
finalized_at TIMESTAMPTZ,
status TEXT, -- requested inflight finalized failed reversed src_tx TEXT, dst_tx TEXT,
proof_ref TEXT, meta JSONB
);
4. 3 Феҳристи дороиҳо/шабака (YAML)
yaml catalog:
assets:
- symbol: USDC decimals: { eth-mainnet: 6, polygon: 6 }
contracts: { eth-mainnet: "0xA0b8...", polygon: "0x2791..." }
networks:
- id: eth-mainnet k_confirmations: 12
- id: polygon k_confirmations: 256
5) Финализатсия, азнавсозӣ ва статусҳо
Состояния: 'мушоҳидашаванда → тасдиқшуда (K) → ниҳоӣ → беэътибор (reorg)' (+ 'мавриди баҳс' для оптимист).
Сиёсатмадорон:- K-тасдиқи шабака/дороиҳо/хатар.
- Ба таъхир афтодани миқдори калон.
- Коркарди Reorg: маъюбии худкор ва такрорӣ.
- Фарогирии исбот: фоизи сабтҳо бо асоҳо/лангарҳо ≥ ҳадафи SLO.
6) Меъёри вақт ва асъор
Вақт: ҳама мӯҳлатҳо дар UTC, 'мушоҳида _ at' ва 'event _ at' нигоҳ доред.
Нархҳои FX/дороиҳо: табдили 'usd _ value' бо меъёри 'мушоҳида _ at' (ё 'event _ at' - барои ҳисобот, ки бо сиёсат муайян карда шудааст).
Даҳҳо/миқёс: Канонизатсияи қатъии миқдор барои муқоиса.
Минтақаҳои вақт дар ҳисоботҳо: ҳангоми интихоб (намоиш) ҳал карда мешаванд, на дар асл.
7) Шиносоӣ ва такрорӣ
Калиди пойгоҳи такрорӣ:- 'idempotency _ key = chain' Id 'block _ height' tx _ hash 'log _ index' type '
- Нусхабардорӣ аз индексатсияҳои сершумор - боло рафтани idempotency_key.
- Дар сурати ихтилофи сарборӣ, сиёсати ҳақиқат (афзалияти манбаъ/версия/вақт) оғоз карда мешавад.
- Равзанаи такрорӣ ≥ 48-72 соат барои такрори "саргардон" нигоҳ дошта мешавад.
8) Қарори субъект
Суроғаҳо → фаъолон: ҳамён/шартнома → корбар/ташкил/нақш.
Истинодҳои байнисоҳавӣ: пайванди сахт (имзо/kyc), мулоим-пайванд (рафтор/график).
Псевдонимизатсия: PID/ORG_ID устувор; PII аз ҷониби нозири маълумот нигоҳ дошта мешавад.
9) Қоидаҳо ва афзалиятҳои якҷояшавӣ (Сиёсат)
1. Манбаи ҳақиқат дар бораи тарҷума чорабинии онлайн 'ниҳоӣ' + далел мебошад.
2. Манбаи ҳақиқат барои агрегатҳо асоси ҷадвали 'transfers' bridge _ transfers 'аст, на "ашёи хом".
3. Ихтилофи вақт (event_at против observed_at) - аз рӯи сиёсати ҳисоботӣ (молия - event_at; системаи амалиётӣ - observed_at).
4. Маблағ/Ихтилофи дороиҳо - Нигоҳ доштани карантин ва карантинро то оштӣ шудани феҳристи дороиҳо нигоҳ доред.
5. Бастаҳои пулӣ - ҳарду квитансияҳои тарафӣ (src/dst) + ҷуфткунии квитансия талаб карда мешаванд.
10) дархостҳо ва алгоритмҳои псевдо
10. 1 Гузаронидани рӯйдодҳо ба "амалиёт" -и каноникӣ
sql
WITH base AS (
SELECT e.,
CONCAT(e. chain_id,' ',e. block_height,' ',e. tx_hash,' ',e. log_index,' ',e. type) AS idem
FROM raw_events e
)
INSERT INTO core_events AS c (id, observed_at, event_at, chain_id, block_height,
tx_hash, log_index, type, status, src, dst, asset, amount, usd_value, meta, idempotency_key, proof_ref)
SELECT gen_random_uuid(), observed_at, event_at, chain_id, block_height,
tx_hash, log_index, type, status, src, dst, asset, amount, usd_value, meta, idem, proof_ref
FROM base
ON CONFLICT (idempotency_key) DO UPDATE
SET status = EXCLUDED. status,
usd_value = COALESCE(EXCLUDED. usd_value, core_events. usd_value),
proof_ref = COALESCE(EXCLUDED. proof_ref, core_events. proof_ref),
meta = core_events. meta EXCLUDED. meta;
10. 2 Бозии ҷуфтҳои купрук (istochnik↔tsel)
sql
INSERT INTO bridge_transfers (id, src_chain, dst_chain, asset, amount, created_at, status, src_tx, proof_ref)
SELECT
CONCAT('br:', e. tx_hash) AS id,
e. chain_id, b. dst_chain, e. asset, e. amount, e. event_at, 'inflight', e. tx_hash, e. proof_ref
FROM core_events e
JOIN bridge_book b ON e. type='bridge. lock' AND e. asset=b. asset AND e. chain_id=b. src_chain
ON CONFLICT (id) DO NOTHING;
UPDATE bridge_transfers bt
SET finalized_at = e. event_at,
dst_tx = e. tx_hash,
status = 'finalized'
FROM core_events e
WHERE e. type='bridge. mint'
AND bt. status='inflight'
AND bt. asset=e. asset
AND bt. src_chain=bridge_book. src_chain
AND bt. dst_chain=bridge_book. dst_chain
AND abs(e. amount - bt. amount) < 1e-9;
10. 3 Коркарди Reorg
sql
UPDATE core_events
SET status='invalidated'
WHERE chain_id=$1 AND block_height BETWEEN $2 AND $3
AND status IN ('observed','confirmed','finalized');
-- Reassembly of aggregates (example)
CALL recompute_materialized_views($1, $2, $3);
11) Идоракунии гардиш ва эволютсия
Версия: 'schema _ version' дар сарлавҳаи маҷмӯа, муҳоҷират ба қайд гирифта шудааст.
Сиёсати мутобиқат барои рӯйдодҳо 'BACKWARD' аст (танҳо майдонҳоро илова кунед).
Шартномаҳои маълумот бо манбаъҳо: санҷишҳои шартномаҳо дар CI, линтерҳои схемаҳо.
12) Сифати маълумот: SLI/SLO
SLI (мисол):- Тару тоза p95: lag inest → Тилло (дақиқа).
- Анҷоми% ин фоизи сабтҳоест, ки дар дохили тиреза ба 'ниҳоӣ' расидаанд.
- Ислоҳ%: схемаҳо/имзоҳо/исботҳои дуруст.
- Фарогирии исботи%: ҳиссаи сабтҳои каноникӣ бо исбот/лангар.
- Самаранокии Dedup: Таносуби он бемасъулиятона ҷаббида мешавад.
- Муваффақияти коркарди Reorg%: дуруст ғайрифаъол ва дубора.
SLO (нишонаҳо): Тару тоза ≤ 3 дақиқа (ҷараён )/15 дақ (партия); Пуррагӣ ≥ 99. 7%; Дурустии ≥ 99. 9%; Фарогирии исботшуда ≥ 99. 0%; Муваффақияти Reorg ≥ 99. 9%; Якҷоя кардани MTTR (ҳодиса) ≤ 30 дақ.
13) Панели панелҳо (тарҳҳо)
Merge Ops (real-taym/chas): Тару тоза, ақибмонии навбатӣ, сатҳи Dedup,% ниҳоӣ, хӯшаҳои Reorg, сӯхтани хатогӣ.
Исбот ва ниҳоӣ: фарогирии исбот, p95 ниҳоӣ дар як занҷир, даъват/reorg события.
Каталоги саломатӣ: номувофиқатӣ байни харитасозии дороиҳо, даҳҳо, версияҳои SDK.
Сифат ва кашолакунӣ: пуррагӣ/дурустӣ, кашиши схема, маълумоти дер.
Линзаҳои молиявӣ: GTV, Flow Net, TVL by circuit/bridge (танҳо 'ниҳоӣ').
14) Конфигуратсияҳо (YAML)
Тирезаҳои ниҳоӣ
yaml finality:
eth-mainnet: { k: 12, delayed_for_usd_gt: 100000 }
polygon: { k: 256 }
optimistic-L2:
k: 0 challenge_minutes: 20 delayed_for_usd_gt: 50000
Сиёсати якҷояшавӣ ва афзалият
yaml merge_policy:
source_priority: [onchain, bridge, psp, product]
conflict:
time: { prefer: "event_at" }
amount: { action: "quarantine" }
proof_required_for: ["bridge_transfers", "payouts"]
quarantine_topics: ["asset_mismatch", "decimals_mismatch", "time_skew_gt_5m"]
Idempotence/dedup
yaml dedup:
key_template: "${chain_id} ${block_height} ${tx_hash} ${log_index} ${type}"
ttl_hours: 72
15) Махфият ва риояи он
Кам кардани PII: PID/ORG_ID, манъи PII дар ченакҳо/тамғакоғазҳо.
Ҷойгиркунии маълумот: сегрегатсияи минтақа (EU/ROW), рамзгузорӣ "ҳангоми истироҳат/дар роҳ".
Ҳуқуқи нест кардан: чорабиниҳои қабр/redaction бо истифодаи исботшаванда.
Аудит: гузоришҳои тағйирнопазир, лангари ҳаш, санҷиши дастрасӣ ба нақш.
16) Қоидаҳои амалиётӣ
Ҳамарӯза: мусолиҳаи фарогирии далелҳо, ба итмом расонидани занҷир, бақайдгирии пулҳо ва кашидани конфигуратсия.
Ҳафта: аз нав дида баромадани каталоги дороиҳо/даҳҳо, дурустии муқарраркунии FX.
Ҳар моҳ: санҷишҳои такрорӣ/такрорӣ, санҷиши SLO ва санҷиши стресс.
Идоракунии тағирот: мӯҳлат барои тағир додани сиёсат, сабти қарор.
17) Ҳодисаҳои китоби бозӣ
Дороиҳои A. Desynchron/даҳӣ
Дар дороиҳои мувофиқ истед, каталогро баргардонед, тирезаҳоро ҳисоб кунед, 24 соат гузориш диҳед.
B. афтодани фарогирии исботшуда
Аз нав оғоз кардани мерклизатсия/лангар, сабти ном, интихоби дастӣ аз 100 ҳолат, ҳисобот.
Қуллаҳои C. Reorg/Challenge
Равзанаи Enlarge 'k '/баҳс, имкон медиҳад, ки ба таъхир андохтани миқдори калон, ба ҷонибҳои манфиатдор огоҳ карда шавад.
D. таркиш мегирад/такрор мекунад
Тарҳ/калиди TTL-ро мустаҳкам кунед, манбаъҳои "ғавғо" -ро маҳдуд кунед, гардиши карантинро фаъол созед.
E. вақти skew
Синхронизатсияи NTP/PTP, ҳисобкунии тиреза, муваққатӣ 'афзалият: observed_at' гузариши сиёсат.
18) Рӯйхати назорати амалисозӣ
1. Гирифтани манбаъҳо, тирезаҳои ниҳоӣ ва далелҳо.
2. Татбиқи схемаи чорабиниҳои каноникӣ ва калиди idempotency.
3. Танзими тарҳкунӣ ва якҷоя кардани сиёсат бо контури карантин.
4. Баланд бардоштани бақайдгирии дороиҳо/шабака ва нормализатсияи FX.
5. Иҷрои такрорӣ/backfill ва коркарди деринаи маълумот.
6. SLI/SLO ва панелҳои сифатиро муайян кунед.
7. Гузоришҳои мунтазами лангар ва аудитро иҷро кунед.
8. Гузаронидани пилот бо моделиронии таъхири reorg/bridge ва гирифтани MTTR.
19) Луғат
Ниҳоӣ - бебозгашт будани давлат/ҳодиса.
Reorg - аз нав насб кардани занҷир бо бекор кардани як қисми блокҳо.
Idempotency - муқовимат ба redelivery.
Фарогирии исботшуда - таносуби сабтҳо бо далелҳои асоснок.
Қарори субъект - суроғаи як шахс/харитасозии ҳисоб.
Финализатсияи таъхиршуда - қабули таъхиршуда ба агрегатҳо барои миқдори хавфи баланд.
Карантин ҷараёни ҷудогона барои сабтҳои муноқишавӣ/шубҳанок мебошад.
Сатри поён: муттаҳидсозии дурусти маълумоти байниминтақавӣ як интизоми идорашаванда аст: схемаи каноникӣ, ниҳоӣ ва исбот, idempotence қатъӣ, сиёсати шаффофи якҷояшавӣ ва сифати мушоҳидашаванда. Бо пайравӣ аз ин чаҳорчӯба, экосистема як қабати ягонаи санҷидашаванда ва устувори маълумотро мегирад - асоси аудит, таҳлил ва миқёси бехатари маҳсулот.