328 lines
16 KiB
Markdown
328 lines
16 KiB
Markdown
# گزارش فنی زیرساخت سامانه توکنسازی دارانو
|
||
|
||
**تهیهکننده:** شرکت توسعه راهکارهای نامتمرکز سنا
|
||
**تاریخ انتشار:** مرداد ۱۴۰۴
|
||
**نسخه:** ۱.۰
|
||
|
||
---
|
||
|
||
## ۱. معرفی پروژه
|
||
|
||
### ۱.۱ درباره شرکت
|
||
|
||
شرکت **توسعه راهکارهای نامتمرکز سنا** فعال در حوزه فناوری بلاکچین و توکنسازی داراییهای واقعی (RWA — Real World Assets) است. مأموریت اصلی این شرکت، ایجاد زیرساختهای لازم برای تبدیل داراییهای فیزیکی و حقوقی به توکنهای قابل معامله در بازارهای دیجیتال، با رعایت کامل الزامات رگولاتوری و قوانین بانک مرکزی جمهوری اسلامی ایران است.
|
||
|
||
### ۱.۲ معرفی سامانه دارانو
|
||
|
||
سامانه **دارانو** پلتفرمی برای **توکنسازی داراییهای واقعی** است. این سامانه داراییهای فیزیکی (مانند املاک و مستغلات) را پس از طی فرآیندهای احراز مالکیت، ارزیابی و تکمیل تشریفات حقوقی، به توکنهای دیجیتال تبدیل میکند. هر توکن نماینده بخشی از مالکیت دارایی پایه بوده و امکان خرید، فروش و معامله در بازار اولیه و ثانویه را فراهم میسازد.
|
||
|
||
در فاز پایلوت، تمرکز سامانه بر روی **املاک** است و یک واحد ملکی با نام **«مژگان»** بهعنوان نمونه اولیه توکنسازی انتخاب شده است.
|
||
|
||
### ۱.۳ اصول حاکم بر سامانه
|
||
|
||
| اصل | توضیح |
|
||
|-----|--------|
|
||
| **رعایت رگولاتوری** | کلیه فرآیندها منطبق بر قوانین بانک مرکزی و مقررات مرتبط طراحی شدهاند |
|
||
| **بلاکچین به عنوان Source of Truth** | مالکیت توکنها فقط و فقط روی شبکه ققنوس ثبت میشود |
|
||
| **تفکیک نقشها** | ناشر، میزبان، سرمایهگذار، بازارگردان و ناظر هر کدام نقش مشخصی دارند |
|
||
| **امنیت چندلایه** | لایههای امنیتی از Cloudflare تا مدیریت کلیدها |
|
||
| **شفافیت کامل** | تمامی تراکنشها و وضعیت داراییها شفاف و قابل ردیابی است |
|
||
|
||
---
|
||
|
||
## ۲. شرح پروژه
|
||
|
||
### ۲.۱ فرآیند توکنسازی
|
||
|
||
فرآیند توکنسازی در دارانو شامل مراحل زیر است:
|
||
|
||
```mermaid
|
||
flowchart LR
|
||
A[۱. شناسایی و ارزیابی دارایی] --> B[۲. بررسی حقوقی و مالکیت]
|
||
B --> C[۳. قرارداد میزبانی و امانت]
|
||
C --> D[۴. انتشار توکن روی ققنوس]
|
||
D --> E[۵. عرضه در بازار اولیه]
|
||
E --> F[۶. معامله در بازار ثانویه]
|
||
F --> G[۷. توزیع درآمد دورهای]
|
||
```
|
||
|
||
### ۲.۲ جریان درآمدی دارایی
|
||
|
||
درآمدهای حاصل از دارایی پایه (مانند اجارهبها) از طریق مکانیزمهای مختلف میان دارندگان توکن توزیع میشود:
|
||
|
||
- **توزیع مستقیم ریالی:** محاسبه ضریب توزیع بر اساس نسبت توکنهای فروختهشده به کل توکنها
|
||
- **بازخرید توکن از طریق بازارگردان:** ایجاد فشار خرید و رشد قیمت توکن
|
||
- **سبدگردانی و اثر مرکب:** امکان سرمایهگذاری مجدد سود برای دارندگان توکن
|
||
|
||
---
|
||
|
||
## ۳. کاربران هدف
|
||
|
||
سیستم دارانو شامل نقشهای زیر میباشد:
|
||
|
||
| نقش | شرح | دسترسی |
|
||
|-----|-----|--------|
|
||
| **سرمایهگذار (خریدار)** | کاربران عادی که توکنها را خریداری و نگهداری میکنند | خرید توکن، معامله در بازار ثانویه، مشاهده پورتفولیو |
|
||
| **ناشر** | مالک اصلی دارایی (یا صاحب سببی مانند صلحنامه/وکالتنامه) | ایجاد پروژه توکنسازی، ثبت اطلاعات دارایی |
|
||
| **میزبان (امین دارایی)** | نهاد مسئول نگهداری فیزیکی و حقوقی دارایی | تأیید وضعیت دارایی، همکاری حقوقی |
|
||
| **تیم بازارگردان** | یک یا چند نفر مسئول تنظیم و مدیریت بازار ثانویه | مدیریت نقدینگی، تسهیل معاملات |
|
||
| **پلتفرم (ادمین)** | تیم سنا مستقر در سامانه — شامل تیم فنی، پشتیبانی و مدیر سامانه | مدیریت کاربران، صدور توکن، پیکربندی سیستم |
|
||
| **بازرس بانکی** | کارشناس منتخب بانک برای نظارت امنیتی و بازرسی دفتری | مشاهده تراکنشها، تیک امنیتی، نظارت بر حسابوکتاب |
|
||
|
||
> **نکته:** سامانه اپراتور عمومی ندارد و تنها چند ادمین اصلی با دسترسیهای مجزا فعالیت میکنند. مدیر سامانه دسترسی به ایجاد توکن جدید و تغییرات سایت دارد. تیم توسعه به کدها و اجرای آنها روی سرور تست و سندباکس دسترسی دارد، اما استقرار در محیط عملیاتی (Production) نیازمند تأیید مدیر سامانه و کمیته اجرایی است.
|
||
|
||
---
|
||
|
||
## ۴. ارتباط سامانه با بیرون
|
||
|
||
### ۴.۱ معماری ارتباطی
|
||
|
||
```mermaid
|
||
flowchart LR
|
||
subgraph External
|
||
CDN[CDN / Cloudflare]
|
||
Firewall[فایروال لینوکس]
|
||
end
|
||
subgraph Darano
|
||
Traefik[Traefik<br/>Reverse Proxy]
|
||
API[API Gateway]
|
||
Services[سرویسهای داخلی]
|
||
end
|
||
Internet[(اینترنت)] --> CDN --> Firewall --> Traefik --> API --> Services
|
||
|
||
style CDN fill:#e1f5fe
|
||
style Firewall fill:#fff3e0
|
||
style Traefik fill:#e8f5e9
|
||
```
|
||
|
||
- **لایه CDN:** ترافیک ورودی ابتدا از CDN عبور میکند (پشتیبانی از DDoS Protection و TLS/SSL)
|
||
- **فایروال:** در حال حاضر از فایروال لینوکس (Firewalld) استفاده میشود؛ در آینده قرار است سرورها پشت CDN اصلی قرار گیرند
|
||
- **Traefik:** نقش Reverse Proxy و مدیریت ترافیک داخلی
|
||
- **API Gateway:** نقطه ورود واحد برای تمام درخواستهای API
|
||
|
||
### ۴.۲ ارتباط با شبکه ققنوس
|
||
|
||
سامانه برای ثبت تراکنشهای توکنی از **شبکه ققنوس** (بر پایه استلار) استفاده میکند. بانک ملت نیز یکی از میزبانهای این شبکه است. ارتباط از طریق Horizon API انجام شده و یک سرویس **Wallet Streamer** بهصورت مداوم تراکنشهای شبکه را رصد و با سیستم داخلی همگامسازی میکند.
|
||
|
||
---
|
||
|
||
## ۵. دیاگرام موارد استفاده (Use Case Diagram)
|
||
|
||
```mermaid
|
||
graph TB
|
||
Investor[سرمایهگذار]
|
||
Issuer[ناشر]
|
||
Custodian[میزبان/امین دارایی]
|
||
MarketMaker[بازارگردان]
|
||
PlatformAdmin[ادمین پلتفرم]
|
||
BankInspector[بازرس بانکی]
|
||
|
||
Investor --> UC1[ثبتنام و ورود]
|
||
Investor --> UC2[احراز هویت KYC]
|
||
Investor --> UC3[خرید توکن در بازار اولیه]
|
||
Investor --> UC4[معامله در بازار ثانویه]
|
||
Investor --> UC5[مشاهده پورتفولیو و تاریخچه]
|
||
Investor --> UC6[واریز و برداشت ریال]
|
||
Investor --> UC7[واریز و برداشت توکن]
|
||
|
||
Issuer --> UC8[ایجاد پروژه توکنسازی]
|
||
Issuer --> UC9[ثبت اطلاعات دارایی]
|
||
|
||
Custodian --> UC10[تأیید وضعیت دارایی]
|
||
Custodian --> UC11[همکاری حقوقی]
|
||
|
||
MarketMaker --> UC12[مدیریت نقدینگی بازار]
|
||
MarketMaker --> UC13[سفارشگذاری در بازار ثانویه]
|
||
|
||
PlatformAdmin --> UC14[مدیریت کاربران]
|
||
PlatformAdmin --> UC15[صدور و مدیریت توکن]
|
||
PlatformAdmin --> UC16[مدیریت سفارشها و بازار]
|
||
PlatformAdmin --> UC17[مدیریت بازخرید]
|
||
PlatformAdmin --> UC18[پیکربندی و پایش سامانه]
|
||
|
||
BankInspector --> UC19[مشاهده تراکنشها]
|
||
BankInspector --> UC20[تیک امنیتی و نظارت]
|
||
|
||
style Investor fill:#e3f2fd
|
||
style Issuer fill:#f3e5f5
|
||
style Custodian fill:#e8f5e9
|
||
style MarketMaker fill:#fff3e0
|
||
style PlatformAdmin fill:#fce4ec
|
||
style BankInspector fill:#efebe9
|
||
```
|
||
|
||
---
|
||
|
||
## ۶. سرویسهای شخص ثالث (3rd Party)
|
||
|
||
### ۶.۱ خدمات احراز هویت و بانکی
|
||
|
||
| سرویس | نقش | توضیح |
|
||
|-------|------|--------|
|
||
| **سامانه شاهکار** | احراز مالکیت سیمکارت و مطابقت کدملی با شماره تماس | استعلام از پایگاه داده پست |
|
||
| **سامانه احراز هویت** | تأیید اطلاعات هویتی (کدملی، تاریخ تولد، تصویر) | سرویسهای شخص ثالث مشابه (مانند زحل، احراز، جیبیت) |
|
||
| **استعلامات بانکی** | تأیید مالکیت حساب بانکی و شماره شبا | سرویسهای مشابه |
|
||
|
||
### ۶.۲ خدمات ارتباطی
|
||
|
||
| سرویس | نقش | توضیح |
|
||
|-------|------|--------|
|
||
| **پنل ایمیل سازمانی** | ارسال ایمیلهای خدماتی (خوشآمدگویی، تأیید تراکنش و …) | سرویسهایی مشابه لیموهاست |
|
||
| **پنل پیامک** | ارسال OTP و پیامهای خدماتی | سرویسهایی مشابه کاوهنگار |
|
||
|
||
### ۶.۳ زیرساخت و مانیتورینگ
|
||
|
||
| سرویس | نقش | توضیح |
|
||
|-------|------|--------|
|
||
| **Prometheus** | جمعآوری متریکها | استاندارد CNCF |
|
||
| **Grafana** | داشبورد و تجسم دادهها | استاندارد CNCF |
|
||
| **OpenTelemetry** | Observability یکپارچه | استاندارد CNCF |
|
||
| **Node Exporter / cAdvisor** | مانیتورینگ سیستمعامل و کانتینرها | استاندارد CNCF |
|
||
| **S3 / Object Storage** | ذخیرهسازی فایلها و بکآپ | سرویس ابری |
|
||
| **Traefik** | Reverse Proxy و Load Balancer | استاندارد CNCF |
|
||
| **مرورگر شبکه (Stellar Horizon)** | ارتباط با شبکه ققنوس | سرویس بلاکچین |
|
||
|
||
---
|
||
|
||
## ۷. زیرساخت پلتفرم
|
||
|
||
### ۷.۱ زیرساخت فعلی
|
||
|
||
```mermaid
|
||
flowchart TB
|
||
subgraph InternetLayer
|
||
CDN[CDN / Cloudflare]
|
||
Firewall[Firewalld]
|
||
end
|
||
|
||
subgraph VPSLayer["زیرساخت ابری مورد تایید بانک"]
|
||
Docker[Docker + Docker Compose]
|
||
|
||
subgraph Services
|
||
Traefik[Traefik<br/>Reverse Proxy]
|
||
UI[UI - Next.js]
|
||
Admin[Django Admin]
|
||
API[API Gateway - Go]
|
||
Auth[Auth Service - Go]
|
||
Wallet[Wallet Service - Go]
|
||
Market[Market Service - Go]
|
||
Streamer[Wallet Streamer - Go]
|
||
end
|
||
|
||
subgraph Data
|
||
DB[(PostgreSQL)]
|
||
Cache[(Redis)]
|
||
MQ[(RabbitMQ)]
|
||
end
|
||
end
|
||
|
||
subgraph BlockchainLayer
|
||
Ghoghnos[(شبکه ققنوس<br/>بر پایه استلار)]
|
||
end
|
||
|
||
subgraph Monitoring
|
||
Prometheus[Prometheus<br/>سرور جداگانه]
|
||
Grafana[Grafana]
|
||
Alertmanager[Alertmanager]
|
||
end
|
||
|
||
CDN --> Firewall --> Traefik
|
||
Traefik --> UI
|
||
Traefik --> Admin
|
||
Traefik --> API
|
||
|
||
API --> Auth
|
||
API --> Wallet
|
||
API --> Market
|
||
|
||
Auth --> DB
|
||
Auth --> Cache
|
||
Wallet --> DB
|
||
Wallet --> Cache
|
||
Market --> DB
|
||
Market --> Cache
|
||
Market --> MQ
|
||
Streamer --> DB
|
||
Streamer --> MQ
|
||
|
||
Wallet --> Ghoghnos
|
||
Streamer --> Ghoghnos
|
||
|
||
Prometheus --> API
|
||
Prometheus --> Auth
|
||
Prometheus --> Wallet
|
||
Prometheus --> Market
|
||
Prometheus --> DB
|
||
Grafana --> Prometheus
|
||
Alertmanager --> Prometheus
|
||
```
|
||
|
||
**مشخصات فنی زیرساخت فعلی:**
|
||
|
||
| لایه | فناوری | توضیح |
|
||
|------|--------|--------|
|
||
| میزبانی | سرویس ابری مورد تایید بانک | VPS با گواهی امنیتی بانکی |
|
||
| کانتینریسازی | Docker + Docker Compose | ایزولاسیون کامل سرویسها |
|
||
| Reverse Proxy | Traefik v2.10 | مدیریت TLS و Routing |
|
||
| API Gateway | Go + Gin Router | مسیریابی، احراز هویت، Rate Limiting |
|
||
| سرویسهای بیزینس | Go (GORM, Stellar SDK) | Auth, Wallet, Market |
|
||
| پنل مدیریت | Python + Django | Server-Side Rendering |
|
||
| رابط کاربری | Next.js + React | SSR + Client Rendering |
|
||
| پایگاه داده | PostgreSQL 15 | دادههای رابطهای اصلی |
|
||
| کش / Session | Redis 7 | Session، Rate Limit، Cache |
|
||
| صف پیام | RabbitMQ 3.12 | Event-Driven آینده |
|
||
| مانیتورینگ | Prometheus + Grafana + OpenTelemetry | سرور مانیتورینگ جداگانه |
|
||
|
||
### ۷.۲ زیرساخت آینده (Roadmap)
|
||
|
||
```mermaid
|
||
flowchart LR
|
||
subgraph Current["زیرساخت فعلی (Sync)"]
|
||
API --> Auth
|
||
API --> Wallet
|
||
API --> Market
|
||
Market --> Wallet
|
||
end
|
||
|
||
subgraph Future["زیرساخت آینده (Event-Driven)"]
|
||
API --> Auth
|
||
API --> Wallet
|
||
API --> Market
|
||
|
||
EventBus[(Event Bus<br/>Kafka / RabbitMQ)]
|
||
Auth -.->|Events| EventBus
|
||
Wallet -.->|Events| EventBus
|
||
Market -.->|Events| EventBus
|
||
Streamer -.->|Events| EventBus
|
||
|
||
EventBus --> Notification[Notification Service]
|
||
EventBus --> Analytics[Analytics Service]
|
||
EventBus --> Audit[Audit Service]
|
||
end
|
||
|
||
style Current fill:#e3f2fd
|
||
style Future fill:#e8f5e9
|
||
```
|
||
|
||
| ویژگی | وضعیت فعلی | هدف آینده |
|
||
|-------|-----------|-----------|
|
||
| الگوی ارتباطی | Synchronous (REST/gRPC) | Event-Driven (Kafka/RabbitMQ) |
|
||
| مقیاسپذیری | Docker Compose + Horizontal Scaling | Kubernetes (K8s) |
|
||
| Event Bus | محدود (فقط RabbitMQ در Wallet) | Event Bus مرکزی با Kafka |
|
||
| مدیریت کلیدها | Secret Manager در Git | HashiCorp Vault / AWS KMS |
|
||
| CI/CD | GitHub Actions | Pipeline خودکار با تأیید دو مرحلهای |
|
||
| Service Mesh | ندارد | Istio یا Linkerd |
|
||
| Database | PostgreSQL Single | Master-Slave + Read Replicas |
|
||
|
||
---
|
||
|
||
## ۸. خلاصه و جمعبندی
|
||
|
||
سامانه دارانو، توسعهیافته توسط شرکت توسعه راهکارهای نامتمرکز سنا، یک پلتفرم توکنسازی داراییهای واقعی است که با رعایت کامل ضوابط رگولاتوری و قوانین بانک مرکزی طراحی و پیادهسازی شده است. معماری سامانه بر پایه **میکروسرویس**، **بلاکچین ققنوس به عنوان Source of Truth** و **زیرساخت ابری مورد تایید بانک** بنا شده و از خدمات شخص ثالث معتبر برای احراز هویت، ارتباطات و مانیتورینگ بهره میبرد.
|
||
|
||
نقاط قوت کلیدی سامانه:
|
||
- **امنیت بالا:** مدیریت کلیدها با Secret Manager، احراز هویت چندمرحلهای، فایروال و CDN
|
||
- **شفافیت:** مالکیت توکنها فقط روی بلاکچین، ردیابی کامل تراکنشها
|
||
- **مقیاسپذیری:** معماری میکروسرویس با امکان مهاجرت به Event-Driven و Kubernetes
|
||
- **نظارت:** مانیتورینگ ۲۴/۷ با ابزارهای استاندارد CNCF و دسترسی بازرس بانکی
|