Տվյալների միաձուլումը տարբեր շղթաներից
(Բաժին ՝ Էկոհամակարգ և ցանց)
1) Ինչո՞ ւ է անհրաժեշտ միաձուլումը
Միաձուլումը (cross-chain merge) համախմբում է իրադարձություններ/վիճակներ տարբեր շղթաներից, կամուրջներից և ծառայություններից մեկ կոնսիստենտային տվյալների մոդելի մեջ ֆինանսական հաշվետվությունների, վերլուծաբանների, anti-froda, դիտարկման և սննդի օբյեկտների համար։ Նպատակները
Ճշմարտության միակ աղբյուրը (canonical facebook), երբ գոյություն ունի տարբեր լոգարաններ։
Ռեգորների և ձերբակալությունների դիմադրությունը ճիշտ վերջնական և փոխկապակցված է։
Համեմատությունը ցանցերի և ակտիվների միջև։
Թափանցիկ lineage և որակի վերահսկումը և կարգավորողների համար։
2) Աղբյուրներն ու տվյալների դասարանները
1. Onchein: բլոկներ, գործարքներ, լոգներ, վերնագրեր, վիճակներ։
2. Կամուրջներ/ռելեերներ ՝ 108, քվիտանիա, ապացույցներ, եզրափակիչ արձաններ։
3. L2/DA շերտերը 'բամբեր, հրատարակություններ, լճակներ, վիճարկման պատուհաններ։
4. PMS/KYC/KYB/AML 'հիբրիդային կարգավիճակներ, ստուգումներ, սանկցիոն հիթեր։
5. Սննդի իրադարձությունները 'ուռուցքաբանություն, դեպոզիտներ/վճարումներ, խաղային և վարքագծային իրադարձություններ։
6. Տեղեկատուներ ՝ ցանցեր, ակտիվներ, decimals, chainID, ռուսական, MSK տարբերակներ։
Յուրաքանչյուր աղբյուրի համար գրանցվում են սեփականատերը, սխեման, նորարարության լամը, վերջնական պատուհանը, ապացույցների ձևաչափը և SLO-ը։
3) Միաձուլման էքսպլեյնի ճարտարապետությունը
Ingest (Merge/webhook) www.R.R./Bultze (անփոփոխ հումք) ww.Clean/Silver (նորմալացում և dedup) www.Merge/Windows (կանոնական փաստեր և կապեր) Windows (ֆինանսներ/ռիսկ/ռիսկ/վիրահատություն) LAP/API/որոնում)։
Հիմնական հատկությունները 'idempotention, սխեմաների տարբերակումը, replay/backfill, late you handling։
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) Վերջնական, ռելորգներ և արձաններ
Состояния: `observed → confirmed(K) → finalized → invalidated(reorg)` (+ `challenged` для optimistic).
Քաղաքական գործիչները
K-ապացույցը ցանցի/ակտիվի/ռիսկի միջոցով։
Altayed Finalization-ը մեծ գումարների համար։
Reorg handling 'ավտոմատ հաշմանդամություն և replay։
Proof coverage: Պրուֆների/հարցերերի հետ ձայնագրությունների մասը sLO-ն է։
6) Ժամանակի և արժույթների նորմալացումը
Ժամանակը 'բոլոր Timestampions UTC-ում, պահել «observed _ at» և «event _ at»։
FX/ակտիվների գինը 'վերահաշվարկ' «usd _ value» փոխարժեքով '«observed _ at» (կամ «event _ at» - հաշվետվության համար, որոշվում է քաղաքականությամբ)։
Decimals/scale: Քանակությունների խիստ կանոնականացումը համեմատության համար։
Ժամային գոտիները զեկույցներում 'կտրում են ընտրելիս (վիտրինը), ոչ թե գրանցամատյանում։
7) Idempotenty և deduplication
Դեդուպի հիմնական բանալին
`idempotency_key = chainId|block_height|tx_hash|log_index|type`
Կանոնները
Մի քանի ինդեքսերներից կրկնությունները upsport-ն են idempotency _ key-ով։
Payload-ի հակամարտության ժամանակ աշխատում է policy of truth (աղբյուրի/տարբերակը/ժամանակը)։
Դեդուպի պատուհանը պահվում է 3848-72 ժամ «թափառող» խոհարարների համար։
8) Entity Resolution (էակների համեմատություն)
Ստանիսլավ ակտորները 'դրամապանակ/պայմանագիր ռուսական օգտագործողը/կազմակերպությունը/դերը։
Քրոս շղթայի կապերը ՝ hard-link (ստորագրություն/kyc), soft-link (վարք/գրաֆիկ)։
Կեղծանունացում 'կայուն PID/ORG _ ID; PII-ը պահպանվում է տվյալների բազայում։
9) Միաձուլման և գերակայությունների կանոնները (Policy)
1. Թարգմանության ճշմարտության աղբյուրը onchin իրադարձությունն է 'finalized' + pruf։
2. Ագրեգատների ճշմարտության աղբյուրը «transfers 'bridge _ transfers» աղյուսակի խմբագրությունն է, ոչ թե «հումքը»։
3. Ժամանակի հակամարտությունը (event _ at vs observed _ at) - հաշվետվության քաղաքականության վրա (ֆինանսներ - event _ at; վիրահատություն - observed _ at)։
4. Գումարների/ակտիվների հակամարտությունը մերջի և կարանտինի կանգնելն է մինչև ռուսական ակտիվների նվազեցումը։
5. Մոստային կապերը պահանջում են երկու կողմերի քվիտանտներ (www.c/dst) + receipt pairing։
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 Կամրջի զույգերի մատրչինգը (աղբյուրը նպատակն է)
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 Ռեորգների վերամշակում
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» իրադարձությունների համար (միայն դաշտերի ավելացումը)։
Medracom-ը աղբյուրների հետ 'CI-ի թեստեր, սխեմաների ոսպնյակներ։
12) Տվյալների որակը ՝ SLI/SLO
SLI (օրինակ)
Freshness p95: lag ingest no Gold (րոպե)։
Completeness%, ձայնագրությունների մասը, որոնք հասել են «finalized» պատուհանի սահմաններում։
Medrectness% ՝ վալիդային սխեմաներ/ստորագրություններ/պրուֆներ։
Proof Coverage%, կանոնական ձայնագրությունների մասը պրուֆների/հարցերներով։
Dedup Efficiency-ը դուբլների մասն է, որոնք կլանված են idempotent-ով։
Reorg Handling Success% 'ճիշտ հաշմանդամություն և replays։
SLO (կենտրոններ): Freshness 243 րոպե (հոսք )/15 րոպե (բատչ); Completeness ≥ 99. 7%; Correctness ≥ 99. 9%; Proof Coverage ≥ 99. 0%; Reorg Success ≥ 99. 9%; Merge MTTR (պատահականություն) 3830 ռուբլիներ
13) Դաշբորդները (մակետներ)
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 'ակտիվների, decimals-ի, MSK տարբերակների տարբերությունները։
Quality & Drift: completeness/correctness, schema drift, late data.
Finance Lens: GTV, Net Flow, TVL շղթաներով/կամուրջներով (միայն «finalized»)։
14) Կազմաձևում (YAML)
Finance պատուհանները
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"]
Idempotention/dedup
yaml dedup:
key_template: "${chain_id} ${block_height} ${tx_hash} ${log_index} ${type}"
ttl_hours: 72
15) Գաղտնիությունը և կոմպլենսը
PII-նվազեցումը 'PID/ORG _ ID, PII արգելքը մետրերում/պիտակներում։
Euresidency: Տարածաշրջանների սեգրեգացիան (EU/ROW), կոդավորումը «հանգստի/ճանապարհին»։
Հեռացման իրավունքը 'tombstone/redaction իրադարձությունները ապացուցված օգտագործման հետ։
Աուդիտ 'անփոփոխ ամսագրեր, անհեթեթություն, դերերի հասանելիության ստուգում։
16) Վիրահատական խորհրդատվություններ
Ամեն օր, proof coverage-ը, շղթաների, կամարների և www.g-draif-dreafe-ի վերջնական տեղայնացումը։
Ամեն շաբաթ, ռուսական ակտիվների/decimals-ի ստուգումը, FX-նորմալիզացիայի ճկունությունը։
Ամեն ամիս 'reorg/replay թեստեր, SLO ստուգում և սթրեսային արտադրողականության թեստ։
Change Live: Timelock-ը merge քաղաքականության փոփոխության վրա, լուծումների ամսագիրը։
17) Playbook 2019
A. Rassinhron ակտիվներ/decimals
Ստոպը համապատասխան ակտիվների, արձագանքների, վիտրինի վերահաշվարկի, թիվ 24 զեկույցի վերաբերյալ
B անկում Proof Coverage
Mercement/ancering-ը, լոգիստիկայի մակարդակի բարձրացումը, 100 կետերի ձեռքով ընտրությունը, զեկույցը։
Picki Reorg/Challenge/Challenge
Ավելացրեք 'k '/բանավեճի պատուհանը, միացրեք www.ayed finalization մեծ գումարների համար, տեղեկացրեք հետաքրքրներին։
Խստացնել TTL/բանալին, սահմանափակել «աղմկոտ» աղբյուրները, ներառել կարանտին-կոդերը։
E. Dreef Time (Time skew)
NTP/PTP-ի համաժամացումը, պատուհանների վերահաշվարկը, որը նախատեսում է «www.fer: observed _ at» քաղաքականության շարժումը։
18) Ներդրման թուղթ
1. Տեղադրեք աղբյուրները, պատուհանները և ապացույցները։
2. Ներդրեք իրադարձությունների կանոնական սխեմա և գաղափարախոսության բանալին։
3. Պարեք dedup և merge քաղաքականություն quarantine-կոնտուրի հետ։
4. Բարձրացրեք ակտիվների/ցանցերի և FX-նորմալիզացիան։
5. Իրականացրեք replay/backfill և late-ի վերամշակումը։
6. AlekSLI/SLO-ը և որակի դասերը։
7. Վերստուգիչ անկերինգը և աուդիտի ամսագրերը։
8. Անցկացրեք օդաչու 'ռելորգների/կամուրջների ուշացումների սիմուլյացիաներով և տեղադրեք MTTR-ը։
19) Գլոսարիա
Finality-ը պետության/իրադարձությունների անդառնալի է։
Reorg-ը շղթայի փոխպատվաստումն է բլոկների մի մասի վերացման հետ։
Idempotency-ը ֆինանսական առաքման դիմադրություն է։
Proof Coverage-ը վալիդային ապացույցներով ձայնագրությունների մասն է։
Entity Resolution-ը մեկ էության հասցեների/հաշիվների համեմատությունն է։
Altayed Finalization-ը բարձր ռիսկային գումարների համար կրճատված ընդունումն է։
Quarantine-ը հակամարտական/կասկածելի գրառումների համար մեկուսացված հոսք է։
Արդյունքն այն է, որ միջանձնային տվյալների ճիշտ միաձուլումը կառավարվող կարգապահությունն է 'կանոնական սխեմա, վերջնական և պրոֆիլիզացիա, խիստ կուռք, թափանցիկ միաձուլման քաղաքականություն և որակի դիտարկում։ Այս շրջանակին հետևելով ՝ էկոհամակարգը ստանում է միասնական, ստուգված և կայուն տվյալների շերտ, որը հիմք է հանդիսանում ապրանքների արտադրության, վերլուծության և անվտանգ մեծացման համար։