معماری C4
سیستم، از نمای کلی تا کانتینرها و اجزا.
سطح ۱: نمای کلی سیستم
flowchart TB cust["مشتری"] -->|"کیف پول"| dara staff["کارکنان دارا"] -->|"پنل مدیریت"| dara signer["امضاکننده انسانی"] -->|"فقط امضا"| dara pub["عموم و حسابرس"] -->|"دارا اسکن"| dara dara["پلتفرم دارا"] -->|"نودهای خودمان"| stellar["شبکه استلار"] staff -.->|"ثبت واریز و پرداخت"| bank["بانک"] att["گواهیدهنده طلا"] -.->|"ثبت توسط کارکنان"| dara eco["کیف پولها و کاوشگرها"] -->|"خواندن شناسنامه توکن"| dara
هیچ سرویس میزبانیشدهای در مسیر اصلی نیست. جابهجاییهای بانکی، گواهیها و قیمتها را کارکنان با تأیید ثبت میکنند.
سطح ۲: کانتینرها
flowchart TB
subgraph web["اپلیکیشنهای وب"]
landing["سایت و شناسنامه توکن"]
wallet["کیف پول"]
admin["پنل مدیریت"]
scan["دارا اسکن"]
docs["مستندات"]
end
subgraph go["بکاند Go"]
api["API مشتری"]
apiadm["API مدیریت"]
worker["موتور تراکنش، پایش، تطبیق، دروازه معاملات"]
scanapi["API اسکن: فقطخواندنی"]
end
pg[("پایگاه داده")]
vault["گاوصندوق کلیدها: Vault"]
rpc["دو نود استلار"]
lake[("آرشیو دفترها")]
net(("شبکه استلار"))
wallet --> api
admin --> apiadm
scan --> scanapi
landing --> scanapi
api --> pg
apiadm --> pg
scanapi --> pg
worker --> pg
worker -->|امضا| vault
worker --> rpc
worker -.-> lake
rpc --> net
APIها درخواستها را در پایگاه داده ثبت میکنند. فقط موتور تراکنش امضا میگیرد و با شبکه استلار کار میکند.
سطح ۳: اجزای بکاند
نمودار و جدول سطح ۳ در نسخه انگلیسی است، چون نام اجزا همان نام بستههای کد است.