رفتن به محتوای اصلی
آریا گستران

سرور مورد نیاز صرافی ارز دیجیتال: معماری، مشخصات و امنیت

مدیر سایت۷ دقیقه مطالعه
a2 cover

صرافی ارز دیجیتال یک سایت معمولی نیست که روی یک هاست اجرا شود و تمام. پشت هر سفارش خرید، یک موتور تطبیق، یک پایگاه داده‌ی مالی، چند نود بلاکچین و یک کیف پول کار می‌کنند و هر کدام نیاز متفاوتی دارند. در این راهنما سرور مورد نیاز صرافی ارز دیجیتال را لایه‌به‌لایه بررسی می‌کنیم: چه اجزایی باید از هم جدا شوند، هر لایه چه منابعی می‌خواهد، امنیت را کجا باید سخت گرفت و سرور ایران یا خارج، کدام برای کدام بخش مناسب‌تر است.

چرا سرور صرافی با سرور یک سایت معمولی فرق دارد؟

در یک فروشگاه اینترنتی، کندی چندثانیه‌ای فقط تجربه‌ی کاربر را بد می‌کند. در صرافی، همین کندی می‌تواند به اجرای سفارش با قیمت اشتباه، اختلاف موجودی یا برداشت تکراری منجر شود. سه ویژگی، صرافی را از سایت معمولی جدا می‌کند:

  • داده‌ی مالی: هر رکورد موجودی، پول واقعی کاربر است و از دست رفتنش قابل جبران نیست.

  • کار لحظه‌ای: قیمت‌ها، دفتر سفارش و معاملات باید در لحظه به‌روز شوند و اتصال‌های WebSocket زیادی همزمان باز می‌مانند.

  • هدف جذاب برای حمله: سروری که به کیف پول رمزارز دسترسی دارد، از هر سرور دیگری بیشتر مورد حمله قرار می‌گیرد.

به همین دلیل، اولین قاعده‌ی زیرساخت صرافی این است: همه‌چیز را روی یک سرور نگذارید. وقتی وب، پایگاه داده، نود و کیف پول روی یک ماشین باشند، نفوذ به ضعیف‌ترین بخش (معمولاً لایه‌ی وب) یعنی دسترسی به همه‌چیز، و پر شدن دیسک توسط نود یعنی از کار افتادن کل صرافی. جداسازی، هم امنیت را بالا می‌برد و هم عیب‌یابی و ارتقا را ساده می‌کند.

پس وقتی از سرور مورد نیاز صرافی ارز دیجیتال حرف می‌زنیم، منظور مجموعه‌ای از سرورهای هماهنگ است، نه یک سرور قدرتمند. ادامه‌ی مقاله همین مجموعه را معرفی می‌کند.

اجزای زیرساخت صرافی و نقش هر کدام

یک صرافی متمرکز، صرف‌نظر از این‌که با چه اسکریپتی ساخته شده باشد، معمولاً این لایه‌ها را دارد:

لایه‌ی وب و API

سایت، پنل کاربری، اپلیکیشن و API عمومی از این لایه سرویس می‌گیرند. این بخش بیشترین تماس را با اینترنت دارد و باید پشت فایروال و در صورت امکان CDN قرار بگیرد. چون بدون حالت (Stateless) است، می‌توان آن را با افزودن سرور، افقی بزرگ کرد.

موتور تطبیق سفارش

قلب صرافی است و سفارش‌های خرید و فروش را با هم جفت می‌کند. به پردازنده‌ی سریع و رم کافی نیاز دارد و حساس به تأخیر است، پس بهتر است روی سرور اختصاصی و نزدیک به پایگاه داده اجرا شود.

پایگاه داده، صف و کش

پایگاه داده‌ی رابطه‌ای (مثل PostgreSQL) دفترکل موجودی‌ها و معاملات را نگه می‌دارد. کنار آن معمولاً یک کش (مثل Redis) و یک صف پیام برای کارهای ناهمزمان قرار می‌گیرد. دیسک NVMe و رم کافی برای این لایه حیاتی است.

نودهای بلاکچین

برای رصد واریزها و ارسال برداشت‌ها، صرافی یا نود اختصاصی اجرا می‌کند یا به سرویس بیرونی وصل می‌شود. تفاوت این دو را در مقاله‌ی اسکریپت صرافی فول نود توضیح داده‌ایم. نودها پرمصرف‌ترین بخش از نظر دیسک و پهنای باندند.

سرویس کیف پول (کیف پول گرم)

بخشی که تراکنش‌های برداشت را امضا می‌کند. این سرویس باید از اینترنت عمومی جدا باشد و فقط از داخل شبکه‌ی خصوصی قابل دسترسی باشد. بخش اصلی دارایی هم در کیف پول سرد و بیرون از هر سرور آنلاین می‌ماند.

مشخصات پیشنهادی سرور در سه مقیاس

اعداد زیر نقطه‌ی شروع تجربی برای برنامه‌ریزی است، نه استاندارد قطعی. نیاز واقعی به تعداد کاربر همزمان، تعداد جفت‌ارزها و معماری اسکریپت بستگی دارد. نودهای بلاکچین در این جدول نیامده‌اند و جداگانه حساب می‌شوند.

مقیاس

چیدمان پیشنهادی

منابع تقریبی

مناسب برای

شروع / آزمایشی

یک سرور برای وب و موتور، یک سرور برای پایگاه داده

هر کدام ۴ هسته، ۸ گیگابایت رم، NVMe

تست بازار، تعداد کاربر کم

متوسط

وب و API، موتور تطبیق، پایگاه داده‌ی اصلی و پشتیبان، کیف پول جدا

۸ هسته و ۱۶ گیگابایت رم برای موتور و پایگاه داده

صرافی فعال با چند هزار کاربر

بزرگ

چند سرور وب پشت لودبالانسر، پایگاه داده با رپلیکا، صف و کش مستقل

بر اساس پایش واقعی بار

حجم معاملات بالا و اپلیکیشن پرکاربر

در برآورد سرور مورد نیاز صرافی ارز دیجیتال، دو اشتباه رایج را تکرار نکنید: خرید سرور خیلی بزرگ از روز اول که ماه‌ها بیکار می‌ماند، و خرید سرور خیلی کوچک بدون برنامه‌ی ارتقا. راه بهتر این است که از چیدمان جداشده‌ی کوچک شروع کنید، بار واقعی را چند هفته پایش کنید و بعد هر لایه را به‌اندازه‌ی نیازش بزرگ کنید.

برای شروع، سرور مجازی ایران یا اروپا با دیسک NVMe کافی است. مهم‌تر از قدرت سرور، جدا بودن لایه‌ها از روز اول است تا بعداً بتوانید هر لایه را مستقل بزرگ کنید.

لایه‌های زیرساخت صرافی ارز دیجیتال از وب تا کیف پول سرد

نودهای بلاکچین را کجا و با چه منابعی اجرا کنیم؟

هر شبکه نیاز خودش را دارد و نباید نودها را روی سرور وب یا پایگاه داده اجرا کرد. دو نمونه:

  • بیت‌کوین: طبق bitcoin.org، Bitcoin Core در اولین اجرا حدود ۷۴۰ گیگابایت داده دانلود می‌کند و ماهانه ده‌ها گیگابایت دانلود و صدها گیگابایت آپلود دارد.

  • اتریوم: طبق ethereum.org، حداقل ۱۶ گیگابایت رم و دو ترابایت NVMe و پیکربندی پیشنهادی ۳۲ گیگابایت رم و چهار ترابایت NVMe لازم است.

چون نودها ترافیک بین‌المللی سنگینی دارند و باید با نودهای دیگر دنیا همتا شوند، معمولاً روی سرور مجازی اروپا پایدارتر اجرا می‌شوند. ارتباط نود با سرویس کیف پول هم باید از مسیر رمزگذاری‌شده و محدود به IP مشخص باشد.

پایگاه داده و پشتیبان‌گیری

پایگاه داده، حافظه‌ی مالی صرافی است. سه اصل را رعایت کنید:

  1. رپلیکای آماده‌به‌کار: مستندات PostgreSQL توضیح می‌دهد که با آرشیو پیوسته و انتقال لاگ، می‌توان سرور آماده‌به‌کار (Standby) ساخت که اگر سرور اصلی از کار بیفتد، کار را به دست بگیرد. برای صرافی، این حداقل لازم است.

  2. پشتیبان خارج از سرور: رپلیکا جای بکاپ را نمی‌گیرد؛ اگر داده‌ای اشتباهی پاک شود، روی رپلیکا هم پاک می‌شود. بکاپ زمان‌بندی‌شده و رمزگذاری‌شده را در لوکیشن دیگری نگه دارید.

  3. تست بازیابی: بکاپی که بازیابی‌اش تست نشده، فقط یک فایل است. هر ماه یک بار بازیابی کامل را روی سرور آزمایشی امتحان کنید.

امنیت سرور صرافی: از کجا شروع کنیم؟

آمار نشان می‌دهد نقطه‌ی ضعف اصلی کجاست. به گزارش The Block از گزارش Chainalysis، در سال ۲۰۲۵ بیش از ۳٫۴ میلیارد دلار رمزارز سرقت شد و هک یک صرافی بزرگ به‌تنهایی حدود ۴۴٪ این رقم بود. همین گزارش می‌گوید در سه‌ماهه‌ی اول ۲۰۲۵، نفوذ به کلیدهای خصوصی ۸۸٪ از مبالغ سرقت‌شده از سرویس‌های متمرکز را تشکیل می‌داد. یعنی امنیت سرور صرافی بیش از هر چیز، امنیت کلیدهاست.

حداقل‌های امنیتی:

  • شبکه‌ی خصوصی بین سرورها؛ فقط لایه‌ی وب به اینترنت باز باشد.

  • ورود SSH فقط با کلید، از IPهای مشخص، و غیرفعال‌بودن ورود رمزی.

  • جداسازی کامل سرویس امضای تراکنش و سقف خودکار برای برداشت از کیف پول گرم.

  • به‌روزرسانی منظم سیستم‌عامل و نرم‌افزارها و پایش لاگ‌ها.

  • محافظت در برابر حملات DDoS در لایه‌ی وب.

فهرست کامل‌تر را در چک‌لیست امنیت صرافی ارز دیجیتال ببینید.

سرور ایران یا خارج؟

این سؤال جواب واحد ندارد، چون لایه‌های مختلف نیازهای متفاوت دارند. جدول زیر منطق تصمیم را نشان می‌دهد:

لایه

سرور ایران

سرور خارج (اروپا)

وب، پنل و API کاربران ایرانی

تأخیر کمتر برای کاربر داخلی و ارتباط ساده‌تر با درگاه و سرویس‌های ریالی

در اختلال ارتباط بین‌الملل، دسترسی کاربر داخلی کند یا قطع می‌شود

نودهای بلاکچین

ارتباط با شبکه‌ی جهانی ممکن است ناپایدار باشد

همتایابی پایدار و پهنای باند بین‌المللی بهتر

داده‌ی قیمت از بازارهای جهانی

وابسته به کیفیت ارتباط بین‌الملل

دسترسی مستقیم‌تر

جدا از مسائل فنی، الزامات قانونی را هم در نظر بگیرید. تنظیم‌گری صرافی‌های رمزارزی در ایران با بانک مرکزی است و طبق گزارش دیجیاتو، دستورالعمل فعالیت کارگزاران رمزپول در مهر ۱۴۰۴ نهایی شد. پیش از قطعی‌کردن محل میزبانی داده‌ها، آخرین الزامات را با مشاور حقوقی بررسی کنید.

مانیتورینگ و برنامه‌ی رشد

زیرساخت صرافی بدون پایش، کور است. دست‌کم این شاخص‌ها را با هشدار خودکار دنبال کنید: مصرف پردازنده و رم هر لایه، تأخیر پاسخ API، طول صف سفارش‌ها، تأخیر رپلیکای پایگاه داده، فاصله‌ی هر نود از آخرین بلاک شبکه و موجودی کیف پول گرم. هرگاه یکی از لایه‌ها به‌طور مداوم بالای ۷۰٪ ظرفیت کار کرد، زمان بزرگ‌کردن همان لایه است، نه کل زیرساخت. برای برآورد کلی هزینه‌ها هم مقاله‌ی هزینه‌ی راه‌اندازی صرافی ارز دیجیتال را ببینید.

اگر پلتفرم صرافی ارز دیجیتال آریا را انتخاب کنید، چیدمان سرورها و نودها هم بخشی از راه‌اندازی است؛ جزئیات در صفحه‌ی طراحی سایت صرافی ارز دیجیتال.

سؤالات متداول

حداقل سرور مورد نیاز صرافی ارز دیجیتال برای شروع چیست؟

برای مرحله‌ی آزمایشی، دو سرور مجازی جدا (یکی برای وب و موتور، یکی برای پایگاه داده) با دیسک NVMe نقطه‌ی شروع معقولی است. نودهای بلاکچین و سرویس کیف پول باید جدا از این دو باشند.

آیا می‌شود صرافی را روی هاست اشتراکی اجرا کرد؟

خیر. صرافی به اجرای دائمی سرویس‌ها، دسترسی به سیستم‌عامل، اتصال‌های WebSocket و کنترل کامل امنیت نیاز دارد که در هاست اشتراکی فراهم نیست.

سرور اختصاصی بهتر است یا سرور مجازی؟

در شروع، سرور مجازی انعطاف بیشتری دارد و ارتقای آن ساده‌تر است. وقتی بار موتور تطبیق یا پایگاه داده زیاد و قابل پیش‌بینی شد، انتقال همان لایه به سرور اختصاصی منطقی است.

چند نسخه پشتیبان از پایگاه داده لازم است؟

دست‌کم یک رپلیکای آماده‌به‌کار برای خرابی سرور، به‌علاوه‌ی بکاپ زمان‌بندی‌شده در لوکیشن دیگر برای خطای انسانی یا حمله. هر دو لازم‌اند و جای یکدیگر را نمی‌گیرند.

نودها را حتماً باید خودمان اجرا کنیم؟

نه برای همه‌ی شبکه‌ها. اجرای نود اختصاصی برای شبکه‌های اصلی ریسک وابستگی را کم می‌کند، ولی برای شبکه‌های کم‌حجم می‌توان در شروع از سرویس نود استفاده کرد، به شرط این‌که کلیدها نزد خود صرافی بماند.

CDN برای صرافی لازم است؟

برای لایه‌ی وب، بله؛ هم سرعت بارگذاری را بهتر می‌کند و هم بخشی از حملات DDoS را پیش از رسیدن به سرور اصلی جذب می‌کند. API‌های حساس و سرویس کیف پول نباید از طریق CDN عمومی در دسترس باشند.

مطالب مرتبط