- برای راهاندازی یک صرافی رمزارز چه الزامات فنی و عملیاتی باید تأمین شود؟
- معماری کلی و اصول طراحی
- سختافزار پیشنهادی بر اساس نقش
- انتخاب نرمافزار و پایگاه داده
- شبکه، لوکیشن و پینگ
- محافظت در برابر حملات (DDoS, SQLi, XSS, API abuse)
- کانفیگهای لینوکسی و شبکهای عملی
- رمزنگاری کلیدها و مدیریت والت
- پشتیبانگیری، بازیابی و DR
- CI/CD، تست و امنیت کد
- مانیتورینگ، لاگ و هشدار
- نمونه چکلیست عملیاتی (ready-to-deploy)
- نمونه دستورات و کانفیگ کوتاه
- نکات عملی برای کاهش خطا و بینقصی
- نتیجهگیری
- سؤالات متداول
برای راهاندازی یک صرافی رمزارز چه الزامات فنی و عملیاتی باید تأمین شود؟
این سؤال هستهای هر تیم فنی است که میخواهد یک صرافی امن، با تاخیر کم و پایدار بسازد. در این راهنما، بهصورت مرحلهبهمرحله معماری، سختافزار، نرمافزار، شبکه، امنیت، مانیتورینگ و پشتیبانگیری را بررسی میکنیم تا سیستم شما تحمل خطا داشته باشد، همیشه در دسترس بماند و در برابر حملات محافظت شود.
معماری کلی و اصول طراحی
معماری را لایهای طراحی کنید و هر لایه را از دیگری ایزوله نگه دارید تا خطاها محدود بمانند و مقیاسپذیری آسان شود.
- جداسازی لایهای: Gateway/API → Application (stateless) → Matching Engine (low-latency) → Order Book (in-memory + durable) → Database (persistent) → Wallet & Signing (HSM/cold) → Monitoring/Logging.
- اصل دسترسیپذیری: هر لایه حداقل در دو ناحیه جغرافیایی (active-active یا active-passive) مستقر شود.
- اصل بدون حالت در اپلیکیشنها: sessionها در Redis یا JWT ذخیره شوند تا سرورها قابلافزایش و جایگزینی باشند.
- ایزولهسازی شبکه: مدیریت، API، گرههای بلاکچین و سرورهای والت در VLAN یا VPC جدا نگهداری شوند.
سختافزار پیشنهادی بر اساس نقش
برای هر نقش سختافزاری حداقل مشخصات و نکات HA را رعایت کنید.
Matching Engine (بسیار latency-sensitive)
- CPU: 16–64 هسته با فرکانس بالا (Intel Xeon / AMD EPYC).
- RAM: 128–512 GB بسته به حجم دفتر سفارش.
- Storage: NVMe Enterprise با IOPS بالا؛ RAID1/10 برای WAL.
- Network: 10–40 Gbps با NICهای کمتاخیر (SR-IOV).
- پیشنهاد: سرور اختصاصی/Bare-metal در لوکیشن نزدیک LPs و بازارهای هدف.
Database (PostgreSQL / time-series)
- CPU: 16–64 هسته.
- RAM: 256–1024 GB.
- Storage: NVMe Enterprise + RAID10؛ جدا کردن WAL و data روی دیسکهای مختلف.
- Network: 10 Gbps.
- HA: Streaming replication + Patroni + etcd/consul.
Order Book / Cache (Redis / Aerospike)
- Redis Cluster با persistence AOF+RDB؛ نودها RAM بالا و NVMe برای نودهای ذخیرهسازی.
Wallet / Signing Servers
- Hot wallet: کمشمار، ایزوله، با HSM یا HSM as a Service.
- Cold wallet: air-gapped یا hardware wallets نگهداری آفلاین.
- HSM: FIPS 140-2 Level 3 توصیه میشود.
Gateway / API / Frontend
- CPU: 4–16 هسته.
- RAM: 16–64 GB.
- Auto-scaling روی کلود/VM یا container.
- Load balancer: HAProxy / Nginx / Envoy.
Monitoring / Logging / SIEM
- Clustered Prometheus + Alertmanager، Grafana، EFK/ELK (Elasticsearch/Filebeat/Kibana).
انتخاب نرمافزار و پایگاه داده
نرمافزارها را براساس عملکرد، تعیینپذیری و قابلیت بازیابی انتخاب کنید.
- Matching engine: زبانهای با عملکرد بالا (C++ / Rust / Go) و طراحی lock-free. حتما latency percentiles (p99/p999) را تست کنید.
- دیتابیس معاملاتی: PostgreSQL با replication و PITR؛ PostgreSQL برای ledger و Redis برای order book در ترکیب hybrid مناسب است.
- نُدهای بلاکچین: برای هر ارز یک نُد کامل، اجرا در شبکههای جدا و محدودیت RPC.
- خدمات کیف پول: کلیدها باید در HSM ذخیره و عملیات امضا در HSM انجام شود.
شبکه، لوکیشن و پینگ
لوکیشن و توپولوژی شبکه تأثیر مستقیم بر latency، دسترسی و مقاومت در برابر حملات دارد.
- لوکیشن: نزدیک به بازارهای نقدینگی (NY, London, Frankfurt, Amsterdam, Tokyo, Singapore, Chicago).
- BGP & Anycast: DNS Anycast و BGP برای توزیع بار و کاهش latency.
- Latency: هدف p99 < 5ms درون دیتاسنتر؛ بین ناحیهای زیر 1–10ms با colocations.
- CDN: برای محتوای استاتیک و محافظت DDoS در لایه 7؛ ترافیک API/WS معمولاً از CDN عبور نکند مگر proxy ایمن.
- شبکه داخلی امن: VLAN، ACL و firewall بین لایهها.
محافظت در برابر حملات (DDoS, SQLi, XSS, API abuse)
حملهها را در چند لایه دفع کنید: شبکه، اپلیکیشن و سرویسهای هویتی.
DDoS
- لایه شبکه: فایروال لایه 3/4، SYN cookies، سختافزار ضد-DDoS و Scrubbing Centers.
- لایه اپلیکیشن: WAF (ModSecurity یا managed) + rate limiting.
- محصول شرکت: سرور ضد-DDoS و PoPهای متصل برای جذب و دفع حملات.
WAF & Rate limiting
- پیادهسازی قوانین OWASP Top 10.
- محدودیت هر IP برای تعداد درخواست و socketها (مثال: limit req در Nginx/Envoy).
احراز هویت و امنیت API
- JWT با expiry کوتاه، OAuth2 برای مدیریت اپها، HMAC یا mutual TLS برای APIهای حساس.
- مثال: فعال کردن mutual TLS در Nginx برای endpointهای داخلی.
کانفیگهای لینوکسی و شبکهای عملی
تنظیمات کرنل، file descriptor و firewall برای تحمل بار بالا و جلوگیری از حملات ضروری است.
مثال nftables ساده:
nft add table inet filter
nft add chain inet filter input { type filter hook input priority 0 \; }
nft add rule inet filter input ct state established,related accept
nft add rule inet filter input tcp dport {22,443,80} ct state new accept
nft add rule inet filter input counter dropKernel tuning (در /etc/sysctl.conf):
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_local_port_range = 10240 65535File descriptors و systemd:
# /etc/security/limits.conf
appuser soft nofile 65536
appuser hard nofile 200000
# systemd service snippet
[Service]
LimitNOFILE=200000Nginx (TLS) snippet:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'HIGH:!aNULL:!MD5';
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload;';HAProxy health check مثال:
backend api-back
mode http
balance roundrobin
option httpchk GET /health
server app1 10.0.0.1:8080 check
رمزنگاری کلیدها و مدیریت والت
کلیدها و سیاستهای والت جزء حساسترین بخش سیستماند و باید با چندین لایه محافظت شوند.
- HSM یا Vault: استفاده از HSM برای امضای تراکنشها (مثل YubiHSM / AWS CloudHSM / Thales) و HashiCorp Vault برای مدیریت credentials.
- Hot vs Cold wallets: Hot بسیار محدود، Cold آفلاین و multi-sig با نگهداری فیزیکی امن.
- Policies: Threshold برای امضا، approval workflows و محدودیت برداشت روزانه.
پشتیبانگیری، بازیابی و DR
طرح پشتیبانگیری و برنامه بازیابی از فاجعه (DR) باید واضح و تستشده باشد.
- DB: Point-in-time recovery (PITR) با WAL archiving؛ base backups روزانه + WAL archiving هر چند دقیقه.
- فایلها و snapshots: snapshotهای منظم از VM/volume و نگهداری offsite در چند لوکیشن.
- RTO/RPO: تعریف کنید (مثلاً RTO = 5 دقیقه، RPO = 1 دقیقه برای matching engine).
- در صورت disaster: runbook و playbook اتوماتیک با Ansible/Terraform؛ تست DR حداقل هر سه ماه.
CI/CD، تست و امنیت کد
زیرساخت استقرار و تست باید امن و قابل برگشت باشد.
- IaC: Terraform برای محیطها، Ansible برای کانفیگ.
- GitLab برای CI با pipeline های SAST, DAST, dependency scanning, container scanning.
- Canary deployments و blue/green برای آپدیتهای بیوقفه.
- Pen tests و bug bounty منظم.
مانیتورینگ، لاگ و هشدار
مانیتورینگ باید چندبعدی و هشدارها قابل اقدام خودکار باشند.
- Metrics: Prometheus (system, app, DB exporters) + Grafana dashboards.
- Logging: Filebeat → Elasticsearch → Kibana؛ راهاندازی SIEM برای تحلیل رخدادها.
- Alerting: Alertmanager با پیام SMS/Email/Slack و playbook اتوماتیک برای failover.
- Health checks: liveness/readiness برای کانتینرها و external heartbeats.
نمونه چکلیست عملیاتی (ready-to-deploy)
- دو ناحیه جغرافیایی active-active.
- Bare-metal برای matching engine در لوکیشنهای کلیدی.
- PostgreSQL cluster با Patroni + replica در منطقه دوم.
- Redis cluster با persistence AOF و replicas.
- HSM برای امضای تراکنشها + Hot/Cold wallet policy.
- WAF + Anti-DDoS + Rate limiting.
- Monitoring + Alerting + SIEM.
- Daily snapshot + WAL archiving + Offsite encrypted backups.
- IaC + CI/CD + Canary + smoke tests.
نمونه دستورات و کانفیگ کوتاه
مثالهایی از دستورات راهاندازی و کانفیگ که در محیط واقعی کاربردیاند.
فعالسازی sysctl:
cat <<EOF | sudo tee /etc/sysctl.d/99-net.conf
net.core.somaxconn=65535
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_syncookies=1
EOF
sudo sysctl --systemsimple PostgreSQL streaming replication (مثال):
# On primary (postgresql.conf)
wal_level = replica
max_wal_senders = 10
archive_mode = on
archive_command = 'cp %p /var/lib/postgresql/wal_archive/%f'
# On replica (recovery.conf)
primary_conninfo = 'host=10.0.0.1 port=5432 user=replicator password=REPLICATOR_PASS'فعالسازی UFW حداقلی:
sudo ufw default deny incoming
sudo ufw allow 22/tcp proto tcp from <admin-ip>
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp
sudo ufw enable
نکات عملی برای کاهش خطا و بینقصی
- Monitoring latency percentiles (p50/p95/p99/p999) و تنظیم SLA.
- کانفیگ circuit breakers و backpressure برای جلوگیری از overload.
- تست بار منظم و تست حمله (DDoS simulation) در محیط staging.
- لاگ و audit هر عملیاتی که به کیف پول یا برداشت منجر میشود.
- استفاده از immutable infrastructure و rollout های قابل بازگشت.
نتیجهگیری
راهاندازی یک صرافی رمزارز نیاز به یک رویکرد چندلایه دارد: سختافزار کمتاخیر برای matching engine، دیتابیس با قابلیت بازیابی، معماری توزیعشده در چند لوکیشن، مدیریت کلید امن با HSM، محافظت شبکهای و لایهای در برابر حملات و فرآیندهای اتوماتیک CI/CD، مانیتورینگ و DR.
شرکت ما با 85+ لوکیشن جهانی، سرور اختصاصی و ابری پرکارایی، سرور مخصوص ترید، راهکارهای ضد-DDoS، CDN و خدمات BGP آماده است تا زیرساخت شما را پیادهسازی، کانفیگ و پشتیبانی کند. برای طراحی دقیقتر مبتنی بر حجم معامله، ارزهای پشتیبانیشده و نیازهای تجاری، امکان انجام assessment رایگان توسط تیم فنی وجود دارد.









