Files
dev-procfile/گزارش-زیرساخت-توکنسازی-دارانو.md

328 lines
16 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# گزارش فنی زیرساخت سامانه توکن‌سازی دارانو
**تهیه‌کننده:** شرکت توسعه راه‌کارهای نامتمرکز سنا
**تاریخ انتشار:** مرداد ۱۴۰۴
**نسخه:** ۱.۰
---
## ۱. معرفی پروژه
### ۱.۱ درباره شرکت
شرکت **توسعه راه‌کارهای نامتمرکز سنا** فعال در حوزه فناوری بلاکچین و توکن‌سازی دارایی‌های واقعی (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 و دسترسی بازرس بانکی