Dürli zynjyrlardan maglumatlary birleşdirmek
(Bölüm: Ekosistema we Tor)
1) Näme üçin birleşmek zerur?
Birleşmek (cross-chain merge) dürli zynjyrlardan, köprülerden we hyzmatlardan gelýän wakalary/baýlyklary maliýe hasabatlylygy, analitika, anti-frod, gözegçilik etmek we azyk ssenariýalary üçin maglumatlaryň bitewi yzygider modeline birleşdirýär. Maksatlar:- Dogrulygyň ýeke-täk çeşmesi (canonical facts).
- Reorglara we gijikdirmelere garşylygy: dogry gutarmak we gaýtadan hasaplamak.
- Torlar bilen aktiwleriň arasyndaky metrleriň deňeşdirilmegi.
- Audit we düzgünleşdirijiler üçin aç-açan çyzyk we hil gözegçiligi.
2) Maglumatlaryň çeşmeleri we synplary
1. Onçein: bloklar, amallar, şertnamalaryň ýazgylary, sözbaşylar, ýagdaýlar.
2. Köprüler/releýerler: arzalar, kwitansiýalar, subutnamalar, gutarnykly statuslar.
3. L2/DA gatlaklar: batçlar, neşirler, pruflar, jedelleşýän penjireler.
4. PSP/KYC/KYB/AML: töleg ýagdaýlary, barlaglar, sanksiýa hitleri.
5. Önüm hadysalary: onbording, goýumlar/tölegler, oýun we özüni alyp baryş wakalary.
6. Gollanmalar: torlar, aktiwler, decimals, chainId, salgylar, SDK wersiýalary.
Her bir çeşme üçin: eýesi, shema, täzelenme yzy, gutarnykly penjire, subutnama görnüşi we SLO ýazylýar.
3) Birleşmegiň paýlaýjynyň arhitekturasy
Ingest (agentler/indekserler/webhook) → Raw/Bronze (üýtgemeýän çig mal) → Clean/Silver (kadalaşma we deadup) → Merge/Core/Gold (kanoniki faktlar we baglanyşyklar) → Marts (maliýe/önüm/töwekgelçilik/operasiýa) → Serve (OLAP/API/gözleg).
Esasy häsiýetleri: idempotentlik, shemalaryň wersiýasy, replay/backfill, late data handling.
4) Kanoniki shemalar (ýönekeýleşdirilen)
4. 1 Wakalar (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 Geçirmeler we köprüler (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 Aktiwler/torlar gollanmasy (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) Gutarmak, reorglar we statuslar
Состояния: `observed → confirmed(K) → finalized → invalidated(reorg)` (+ `challenged` для optimistic).
Syýasatçylar:- Tor/aktiw/töwekgelçilik boýunça K-tassyklamalary.
- Uly möçberler üçin Delayed Finalization.
- Reorg handling: awtomatiki maýyplyk we replay.
- Proof coverage: maksatly SLO ≥ pruflar/ankerler bilen ýazgylaryň paýy.
6) Wagtyň we walýutalaryň kadalaşmagy
Wagt: ähli timestampts UTC-de, saklamak 'observed _ at' we 'event _ at'.
FX/aktiwleriň bahalary: "usd _ value" -ni "observed _ at" (ýa-da "event _ at" - hasabat bermek üçin, syýasat bilen kesgitlenendir) hümmeti boýunça gaýtadan hasaplamak.
Decimals/scale: deňeşdirmek üçin sanlaryň berk kanonizasiýasy.
Hasabatlardaky wagt zolaklary: saýlamakda (vitrin) jemlenýär, core däl.
7) Idempotentlik we duplikasiýa
Atamyň esasy açary:- `idempotency_key = chainId|block_height|tx_hash|log_index|type`
- Birnäçe indeksçiden gaýtalanmalar - upsert idempotency_key.
- Payload gapma-garşylygynda - hakykat policy (çeşmäniň ileri tutulýan ugry/wersiýasy/wagty) işleýär.
- Babanyň penjiresi "aýlanyp ýören" gaýtalamalar üçin 48-72 sagatdan ≥ saklanylýar.
8) Entity Resolution
Salgylar → aktýorlar: gapjyk/şertnama → ulanyjy/gurama/rol.
Kross-zynjyryň baglanyşyklary: hard-link (gol/kyc), soft-link (hereket/graf).
Lakamlaşdyrma: durnukly PID/ORG_ID; PII maglumat gözegçisinde saklanýar.
9) Birleşmegiň düzgünleri we ileri tutulýan ugurlary (Policy)
1. Terjime hakykaty boýunça hakykatyň çeşmesi - onchein waka 'finalized' + pruf.
2. Agregatlar boýunça hakykatyň çeşmesi - "çig mal" däl-de, "transfers 'bridge _ transfers" tablisasynyň özeni.
3. Wagt gapma-garşylygy (event_at vs observed_at) - hasabat syýasaty boýunça (maliýe - event_at; operasiýa - observed_at).
4. Jemleriň/aktiwleriň gapma-garşylygy - merjiň saklanmagy we aktiwleriň katalogy barlanýança karantin.
5. Köprü baglary - iki tarapyň kwitansiýalary (src/dst) + receipt pairing talap edilýär.
10) Galp haýyşlar we algoritmler
10. 1 Wakalary kanoniki "operasiýa" salmak
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 Köpri jübütleriniň oýny (maksat çeşmesi)
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 Reorglary gaýtadan işlemek
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) Shemalary we ewolýusiýany dolandyrmak
Wersiýalaşdyrmak: "schema _ version" maglumatlar toplumynyň şlýapasynda, göçmek žurnalda ýazylýar.
Gabat geliş syýasaty: Wakalar üçin 'BACKWARD' (diňe meýdan goşmak).
Çeşmeler bilen Data Contracts: CI-de şertnamalaryň synaglary, shemalaryň linterleri.
12) Maglumatlaryň hili: SLI/SLO
SLI (mysal):- Freshness p95: lag ingest → Gold (min).
- Completeness%: Penjiräniň içinde 'finalized' -e ýeten ýazgylaryň paýy.
- Korrectness%: tassyklanan shemalar/gollar/pruflar.
- Proof Coverage%: pruflar/ankerler bilen kanoniki ýazgylaryň paýy.
- Dedup Efficiency: idempotent siňdirilen dubllaryň paýy.
- Reorg Handling Success%: dogry maýyplyk we replays.
SLO (görkezijiler): Freshness ≤ 3 min (akym )/15 min (batch); Completeness ≥ 99. 7%; Correctness ≥ 99. 9%; Proof Coverage ≥ 99. 0%; Reorg Success ≥ 99. 9%; Merge MTTR (waka) ≤ 30 minut.
13) Daşbordlar (maketler)
Merge Ops (реал-тайм/час): Freshness, Queue lag, Dedup rate, Finalized %, Reorg spikes, Error-budget burn.
Proof & Finality: proof coverage, p95 finality per chain, challenge/reorg события.
Catalog Health: Aktiwler, decimals, SDK wersiýalary.
Quality & Drift: completeness/correctness, schema drift, late data.
Finance Lens: GTV, Net Flow, TVL zynjyrlar/köprüler boýunça (diňe 'finalized').
14) Konfigurasiýalar (YAML)
Jemleýji penjireler
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
Merj we ileri tutulýan syýasat
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"]
Idempotentlik/dedup
yaml dedup:
key_template: "${chain_id} ${block_height} ${tx_hash} ${log_index} ${type}"
ttl_hours: 72
15) Gizlinlik we gabat gelmek
PII-minimallaşdyrmak: PID/ORG_ID, PII-ni metriklerde/belliklerde gadagan etmek.
Data residency: sebitleri bölmek (EU/ROW), "ýeke/ýolda" şifrlemek.
Aýyrmak hukugy: Subut edilip bilinjek waka tombstone/redaction.
Audit: üýtgemeýän magazinesurnallar, eşleriň ankeringi, rollar boýunça elýeterliligi barlamak.
16) Operasiýa düzgünleri
Her gün: proof coverage barlagy, zynjyrlar boýunça finaly, köprüleriň sanawy we -dreýf.
Her hepde: aktiwler/decimals katalogynyň barlagy, FX-kadalaşmagyň dogrulygy.
Her aý: reorg/replay synaglary, SLO barlagy we stres öndürijilik synagy.
Change Management: merge-syýasaty üýtgetmek üçin timelock, çözgütler magazineurnaly.
17) Playbook hadysalary
A. Aktiwleriň rasinhrony/decimals
Degişli aktiwlere durmak, katalogy yzyna almak, penjireleri gaýtadan hasaplamak, hasabat ≤ 24 sagat.
B. "Proof Coverage" -iň ýykylmagy
Merklizirlemäni/ankeringi täzeden başlamak, logirlemegiň derejesini ýokarlandyrmak, 100 hadysany el bilen saýlamak, hasabat.
C. Reorg/Challenge
Jedeliň 'k '/penjiresini köpeltmek, uly mukdarda delayed finalizasiýasyny goşmak, gyzyklanýan adamlara habar bermek.
D. Goşa/gaýtalanýan partlama
TTL/açary berkitmek, "şowhunly" çeşmeleri çäklendirmek, karantin konturyny açmak.
E. Wagt süýşmesi
NTP/PTP senkronizasiýasy, penjireleri sanamak, syýasatyň wagtlaýyn üýtgemegi 'prefer: observed_at'.
18) Girizmegiň çek-sanawy
1. Çeşmeleri, gutarnykly penjireleri we subutnamalary belläň.
2. Wakalaryň kanoniki shemasyny we idempotentlik açaryny giriziň.
3. Kwarantine kontur bilen dedupy we merge syýasatyny sazlaň.
4. Aktiwleriň/torlaryň sanawyny we FX kadalaşmagyny ýokarlandyryň.
5. Replay/backfill we late data amalyny amala aşyryň.
6. SLI/SLO we dashbordlary kesgitläň.
7. Yzygiderli ankering we audit magazinesurnallaryny açyň.
8. Reorglaryň/köpri gijikdirmeleriniň simulýasiýalary bilen piloty geçiriň we MTTR ýazyň.
19) Sözlük
Finality - ýagdaýyň/wakanyň yzyna gaýtarylmazlygy.
Reorg - bloklaryň bir böleginiň ýatyrylmagy bilen zynjyryň gaýtadan ýygnalmagy.
Idempotency - gaýtadan eltmäge garşylygy.
Proof Coverage - tassyklanan subutnamalar bilen ýazgylaryň paýy.
Entity Resolution - ýeke-täk manynyň salgylaryny/hasaplaryny deňeşdirmek.
Delayed finalization - ýokary töwekgelçilikli summalar üçin agregatlara kabul edilmeginiň gijikdirilmegi.
Quarantine - gapma-garşy/şübheli ýazgylar üçin izolirlenen akym.
Netije: zynjyrara maglumatlaryň dogry birleşmegi - dolandyrylýan düzgün-nyzam: kanoniki shema, finalizasiýa we pruflar, berk idempotentlik, aç-açan birleşmek syýasaty we hil gözegçiligi. Bu freýmworka eýerip, ekosistema audit, seljerme we önümleri howpsuz masştablamak üçin ýeke-täk, barlanylýan we durnukly maglumat gatlagyny alýar.