GH GambleHub

ادغام داده ها از مدارهای مختلف

(بخش: اکوسیستم و شبکه)

1) چرا شما نیاز به یک ادغام

ادغام زنجیره ای ترکیبی از رویدادها/دولت ها از زنجیره های مختلف، پل ها و خدمات را به یک مدل داده سازگار تنها برای گزارشگری مالی، تجزیه و تحلیل، ضد تقلب، مشاهده و سناریوهای محصول. اهداف:
  • یک منبع واحد از حقیقت (حقایق متعارف) در حضور سیاهههای مربوط رنگارنگ.
  • مقاومت در برابر سازماندهی مجدد و تاخیر: نهایی سازی صحیح و محاسبه مجدد.
  • مقایسه معیارهای بین شبکه ها و دارایی ها.
  • اصل و نسب شفاف و کنترل کیفیت برای ممیزی و تنظیم کننده.

2) منابع داده و کلاس ها

1. Onchain: بلوک ها، معاملات، سیاهههای مربوط به قرارداد، هدر ها، ایالت ها.
2. پل/تریلر: برنامه های کاربردی، رسید، شواهد، وضعیت نهایی.
3. لایه های L2/DA: دسته ها، نشریات، اثبات ها، پنجره های چالش.
4. PSP/KYC/KYB/AML: وضعیت پرداخت، چک، بازدید تحریم.
5. رویدادهای محصول: onboarding، سپرده/پرداخت، بازی و رویدادهای رفتاری.
6. دایرکتوری ها: شبکه ها، دارایی ها، اعشار، chainId، آدرس ها، نسخه های SDK.

برای هر منبع، مالک، طرح، ورود به روز رسانی، پنجره نهایی، فرمت شواهد و SLO ثبت می شود.

3) معماری خط لوله فیوژن

Ingest (agents/indexers/webhook) → Raw/Bronze (unchangeable raw materials) → Clean/Silver (normalization and dedup) → Merge/Core/Gold (canonical facts and connections) → Marts (finance/product/risk/operating system) → Serve (OLAP/API/search).
ویژگی های کلیدی: idempotency، versioning طرح، پخش/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 توسط شبکه/دارایی/ریسک.
  • نهایی سازی تاخیر برای مقادیر زیاد.
  • مدیریت مجدد: ناتوانی خودکار و پخش مجدد.
  • پوشش اثبات: درصد سوابق با میله/لنگر ≥ SLO را هدف قرار می دهند.

6) عادی سازی زمان و ارزها

زمان: تمام برچسب های زمانی در UTC، فروشگاه 'مشاهده _ at' و 'event _ at'.
قیمت FX/دارایی: تبدیل «usd _ value» به نرخ «مشاهده شده» (یا «رویداد _ at» - برای گزارش، تعریف شده توسط سیاست).
Decimals/scale: مقادیر دقیق مقادیر برای مقایسه.
مناطق زمانی در گزارش: حل و فصل در طول انتخاب (ویترین)، نه در هسته.

7) هویت و تقسیم بندی

کلید پایه تقسیم بندی:
  • 'idempotency _ key = chainId' block _ height 'tx _ hash' log _ index 'type'
قوانین و مقررات:
  • تکراری از شاخص های متعدد - upsert توسط idempotency_key.
  • در صورت درگیری payload، سیاست حقیقت (اولویت منبع/نسخه/زمان) باعث شده است.
  • پنجره deduplication ≥ 48-72 ساعت برای تکرار «سرگردان» ذخیره می شود.

8) قطعنامه نهاد

آدرس → بازیگران: کیف پول/قرارداد → کاربر/سازمان/نقش.
لینک های زنجیره ای: hard-link (signature/kyc), soft-link (behavior/graph).
Pseudonymization: PID/ORG_ID پایدار ؛ PII توسط کنترل کننده داده ذخیره می شود.

9) قوانین و اولویت های ادغام (سیاست)

1. منبع حقیقت در مورد واقعیت ترجمه، رویداد آنلاین «نهایی» + اثبات است.
2. منبع حقیقت برای aggregates هسته جدول "انتقال دهنده ها" 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 پردازش مجدد

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) مدیریت مدار و تکامل

Versioning: 'schema _ version' در هدر مجموعه داده، مهاجرت ها ثبت می شوند.
سیاست سازگاری «BACKWARD» برای رویدادها است (فقط فیلدهای اضافه).
قراردادهای داده با منابع: تست قراردادها در CI، خطوط طرح.

12) کیفیت داده: SLI/SLO

SLI (مثال):
  • طراوت p95: تاخیر مصرف → طلا (دقیقه).
  • تکمیل% درصد رکوردهایی است که در پنجره به 'Finished' رسیده اند.
  • تصحیح%: طرحها/امضاها/اثباتهای معتبر.
  • پوشش اثبات٪: سهم سوابق متعارف با اثبات/لنگر.
  • کارایی Dedup: نسبت طول می کشد idempotently جذب می شود.
  • Reorg Handling Success%: به درستی غیرفعال و تکرار می شود.

SLO (نشانه ها): طراوت ≤ 3 دقیقه (جریان )/15 دقیقه (دسته ای) ؛ کامل ≥ 99 7%; صحت ≥ 99 9%; مدرک تحصیلی ≥ 99 0%; موفقیت ≥ 99 9%; ادغام MTTR (حادثه) ≤ 30 دقیقه.

13) داشبورد (طرح بندی)

Merge Ops (реал - тайм/час): طراوت، تاخیر صف، نرخ Dedup،٪ نهایی، خوشه های Reorg، سوزاندن خطا بودجه.
اثبات و نهایی: پوشش اثبات، p95 نهایی در هر زنجیره، چالش/سازماندهی مجدد события.
سلامت کاتالوگ: اختلاف بین نقشه های دارایی، اعشار، نسخه های SDK.
کیفیت و رانش: کامل بودن/صحت، رانش طرح، داده های دیرهنگام.
لنز مالی: GTV، جریان خالص، TVL توسط مدار/پل (فقط «نهایی»).

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. سقوط پوشش اثبات

راه اندازی مجدد Merclization/Anchoring، Log Up، نمونه برداری دستی از موارد 100، گزارش.

C. reorg/چالش قله

بزرگ "K/پنجره اختلاف، فعال کردن نهایی تاخیر برای مقادیر زیادی، اطلاع احزاب علاقه مند است.

D. انفجار طول می کشد/تکرار می کند

TTL dedup/key را محکم کنید، منابع «پر سر و صدا» را محدود کنید، مدار قرنطینه را فعال کنید.

E. زمان انحراف

هماهنگ سازی NTP/PTP، محاسبه پنجره، prefer موقت: تغییر سیاست observed_at'.

18) چک لیست پیاده سازی

1. منابع، پنجره های نهایی و شواهد را ضبط کنید.
2. پیاده سازی برنامه رویداد کانونی و کلید idempotency.
3. پیکربندی dedup و ادغام سیاست با کانتور قرنطینه.
4. افزایش دارایی/ثبت نام شبکه و عادی سازی FX.
5. پیاده سازی replay/backfill و پردازش داده ها در اواخر.
6. داشبورد SLI/SLO و کیفیت را تعریف کنید.
7. اجرای لنگر انداختن و حسابرسی سیاهههای مربوط به طور منظم.
8. یک خلبان را با شبیه سازی تاخیر مجدد/پل انجام دهید و MTTR را ضبط کنید.

19) واژه نامه

نهایی - برگشت ناپذیری دولت/رویداد.
Reorg - مونتاژ مجدد زنجیره با لغو بخشی از بلوک ها.
Idempotency - مقاومت در برابر تحویل مجدد.
پوشش اثبات - نسبت سوابق با شواهد معتبر.
قطعنامه موجودیت - آدرس واحد/نقشه برداری حساب.
Finalization تاخیر - پذیرش معوق به aggregates برای مقادیر پر خطر.
قرنطینه یک جریان جداگانه برای سوابق درگیری/مشکوک است.

خط پایین: ادغام صحیح داده های بین زنجیره ای یک رشته قابل کنترل است: طرح متعارف، نهایی سازی و اثبات، idempotence دقیق، سیاست ادغام شفاف و کیفیت قابل مشاهده. با پیروی از این چارچوب، اکوسیستم یک لایه واحد، قابل تأیید و پایدار از داده ها را دریافت می کند - مبنایی برای حسابرسی، تجزیه و تحلیل و مقیاس ایمن محصولات.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

Telegram
@Gamble_GC
شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.