GH GambleHub

Îmbinarea datelor din diferite circuite

(Secțiunea: Ecosistem și rețea)

1) De ce aveți nevoie de o fuziune

Fuziunea între lanțuri combină evenimente/state din diferite lanțuri, punți și servicii într-un singur model de date coerent pentru raportarea financiară, analiză, antifraudă, observabilitate și scenarii de produse. Obiective:
  • O singură sursă de adevăr (fapte canonice) în prezența buștenilor pestriței.
  • Rezistența la reorg și întârzieri: finalizarea corectă și recalcularea.
  • Comparabilitatea măsurătorilor între rețele și active.
  • Descendență transparentă și control al calității pentru audituri și autoritățile de reglementare.

2) Surse de date și clase

1. Onchain: blocuri, tranzacții, jurnale de contract, antete, state.
2. Poduri/remorci: aplicații, chitanțe, dovezi, statusuri de finalizare.
3. straturi L2/DA: loturi, publicații, dovezi, ferestre provocare.
4. PSP/KYC/KYB/AML: statusuri de plată, controale, sancțiuni.
5. Evenimente de produs: onboarding, depozite/plăți, jocuri de noroc și evenimente comportamentale.
6. Directoare: rețele, active, zecimale, chainId, adrese, versiuni SDK.

Pentru fiecare sursă, proprietarul, schema, jurnalul de actualizare, fereastra de finalizare, formatul probelor și SLO sunt înregistrate.

3) Arhitectura conductei de fuziune

Ingerează (agenți/indexatori/webhook) Raw/Bronze (materii prime neschimbabile) Clean/Silver (normalizare și dedup) Merge/Core/Gold (fapte și conexiuni canonice) Marts (finanțe/produs/risc/sistem de operare).
Proprietăți cheie: idempotență, versioning schema, reluare/rambursare, manipulare întârziată a datelor.

4) Scheme canonice (simplificate)

4. 1 Evenimente (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 Traduceri și poduri (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 Active/Director de rețea (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) Finalizare, reorgs și statusuri

Состояния: „observat → confirmat (K) → finalizat → invalidat (reorg)” (+ „contestat” для optimist).

Politicieni:
  • K-confirmări prin rețea/activ/risc.
  • Finalizare întârziată pentru sume mari.
  • Reorg manipulare: handicap automat și reluare.
  • Dovada de acoperire: procentul de înregistrări cu tije/ancore ≥ țintă SLO.

6) Normalizarea timpului și a valutelor

Timp: toate marcajele de timp din UTC, stocați 'observed _ at' și' event _ at'.
Prețuri FX/active: conversia „usd _ value” la rata de „observed _ at' (sau” event _ at' - pentru raportare, definită prin politică).
Zecimale/scară: canonizarea strictă a cantităților pentru comparabilitate.
Fusuri orare în rapoarte: rezolvate în timpul selecției (vitrină), nu în miez.

7) Identitate și eliminare a duplicatelor

Cheie de bază pentru eliminare a duplicatelor:
  • 'idempotency _ key = chainId' block _ height' tx _ hash' log _ index 'type'
Reguli:
  • Duplicate de la mai mulți indexatori - upsert de idempotency_key.
  • În cazul unui conflict de sarcină utilă, se declanșează politica adevărului (prioritate sursă/versiune/timp).
  • Fereastra de eliminare a duplicatelor este stocată ≥ 48-72 de ore pentru repetări „rătăcitoare”.

8) Rezoluția entității

Adrese → actori: portofel/contract → utilizator/organizare/rol.
Legături încrucișate: hard-link (semnătură/kyc), soft-link (comportament/grafic).
Pseudonimizare: PID/ORG_ID stabilă; PII este stocat de operatorul de date.

9) Regulile și prioritățile concentrărilor economice (Politică)

1. Sursa adevărului pe faptul traducerii este evenimentul online „finalizat” + dovada.
2. Sursa adevărului pentru agregate este nucleul tabelului 'transfers' bridge _ transfers', nu „materia primă”.
3. Conflictul temporal (event_at vs observed_at) - prin politica raportului (finanțe - event_at; sistem de operare - observed_at).
4. Suma/Conflictul activelor - Oprirea reținerii și carantinei până la reconcilierea catalogului de active.
5. Pachete de punte - sunt necesare ambele chitanțe laterale (src/dst) + asocierea chitanțelor.

10) interogări pseudo și algoritmi

10. 1 Rularea evenimentelor într-o „operație” canonică

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 Meci de perechi de poduri (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 procesare

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) Managementul circuitelor și al evoluției

Versioning: 'schema _ version' în antetul setului de date, migrațiile sunt înregistrate.
Politica de compatibilitate este 'BACKWARD' pentru evenimente (adăugați doar câmpuri).
Contracte de date cu surse: teste de contracte în CI, lintere de scheme.

12) Calitatea datelor: SLI/SLO

SLI (exemplu):
  • Prospețime p95: lag ingest→Gold (min).
  • Finalizarea% este procentul de înregistrări care au atins 'Finalizat' în fereastra.
  • Corecție%: scheme/semnături/dovezi valabile.
  • Dovada Acoperire%: ponderea înregistrărilor canonice cu dovezi/ancore.
  • Dedup Eficiență: Proporția de ia absorbit idempotent.
  • Reorg de manipulare de succes%: corect dezactivat și reluări.

SLO (repere): Prospețime ≤ 3 min (flux )/15 min (lot); Integralitatea ≥ 99. 7%; Corectitudinea ≥ 99. 9%; Dovada acoperirii ≥ 99. 0%; Succesul Reorg ≥ 99. 9%; Fuzionează MTTR (incident) ≤ 30 min.

13) Tablouri de bord (machete)

Merge Ops (реал - тайм/час): prospețime, coadă lag, rata Dedup,% finalizat, piroane Reorg, Error-buget arde.
Dovada & Finalitate: acoperire dovada, finalitate p95 pe lanț, provocare/reorg события.
Catalog Sănătate: discrepanțe între cartografieri de active, zecimale, versiuni SDK.
Calitate și derivă: completitudine/corectitudine, derivă schemă, date târzii.
Finance Lens: GTV, Net Flow, TVL de circuit/pod („finalizat” numai).

14) Configurații (YAML)

Ferestre de finalizare

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

Fuziunea și politica prioritară

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) Confidențialitate și conformitate

Minimizare PII: PID/ORG_ID, interdicție PII în metrică/etichete.
Rezidența datelor: segregarea regiunii (EU/ROW), criptarea „în repaus/pe drum”.
Dreptul de a șterge: evenimente de piatră funerară/redactare cu aplicație dovedibilă.
Audit: jurnale imuabile, ancorare hash, verificarea accesului la rol.

16) Regulamentele de funcționare

Zilnic: dovada reconcilierii acoperirii, finalizarea lanțului, registrul de punți și deriva de configurare.
Săptămânal: revizuirea catalogului de active/zecimale, corectitudinea normalizării FX.
Lunar: teste de reorg/reluare, verificare SLO și test de stres de performanță.
Change Management: timelock pentru modificări de politică fuzionare, jurnal de decizii.

17) Incidente Playbook

A. Active/zecimale Desynchron

Opriți-vă la activele corespunzătoare, întoarceți catalogul, recalculați ferestrele, raportați ≤ 24 de ore.

B. Căderea acoperirii dovezii

Relansarea Merclization/Ancorare, Log Up, eșantionare manuală a 100 de cazuri, Raport.

C. Reorg/Challenge Peaks

Extindeți 'k '/fereastra de litigii, permiteți finalizarea întârziată pentru sume mari, notificați părțile interesate.

D. Explozia takes/repetă

Strângeți TTL dedup/cheie, limitați sursele „zgomotoase”, activați circuitul de carantină.

E. Înclinarea timpului

Sincronizarea NTP/PTP, recalcularea ferestrei, temporar 'prefer: schimbare politică observed_at'.

18) Lista de verificare a implementării

1. Captura surse, ferestre de finalizare și dovezi.
2. Implementați schema de evenimente canonice și cheia de idempotență.
3. Configurați politica de eliminare și îmbinare cu conturul de carantină.
4. Ridicați registrul de active/rețea și normalizarea FX.
5. Implementați reluarea/rambursarea și procesarea târzie a datelor.
6. Definiți tablourile de bord SLI/SLO și de calitate.
7. Rulați jurnalele regulate de ancorare și audit.
8. Efectuați un pilot cu simulări de întârziere reorg/pod și capturați MTTR.

19) Glosar

Finalitatea - ireversibilitatea statului/evenimentului.
Reorg - reasamblarea lanțului cu anularea unei părți a blocurilor.
Idempotența - rezistența la redelivery.
Dovada acoperirii - proporția de înregistrări cu dovezi valabile.
Entity Resolution - adresă unică entitate/cartografiere cont.
Finalizare întârziată - acceptarea amânată în agregate pentru sume cu risc ridicat.
Carantina este un flux izolat pentru conflicte/înregistrări suspecte.

Linia de fund: fuzionarea corectă a datelor între lanțuri este o disciplină care poate fi gestionată: schema canonică, finalizarea și dovada, idempotența strictă, politica de fuzionare transparentă și calitatea observabilă. Urmând acest cadru, ecosistemul primește un singur strat de date, verificabil și durabil - baza pentru auditarea, analiza și scalarea în condiții de siguranță a produselor.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Telegram
@Gamble_GC
Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.