الانتقال إلى المحتوى الرئيسي

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.عرض النسخة الإنجليزية →
لكل برنامج من برامج Raydium دور مميّز واحد على الأقل — مفتاح يتيح ترقية البرنامج، أو إنشاء إعدادات جديدة، أو سحب رسوم البروتوكول. يُعدّ تضييق نطاق هذه الأدوار (وتأمينها خلف multisigs مع فترات تأخير) الخط الدفاعي الأول في حال اختراق أي مسؤول. توثّق هذه الصفحة تلك الأدوار وآليات تأمينها على أرض الواقع.

الأدوار حسب كل برنامج

AMM v4

الدورعنوان الصلاحيةما يمكنه فعله
ترقية البرنامجSquads multisig (3/4)نشر bytecode جديد للبرنامج
Pool adminTreasury multisig (3/5)تفعيل/تعطيل Pool، وتحديث الرسوم على Pools القائمة

CPMM

الدورعنوان الصلاحيةما يمكنه فعله
ترقية البرنامجSquads multisig (3/4)نشر bytecode جديد للبرنامج
AmmConfig adminTreasury multisig (3/5)إنشاء AmmConfigs جديدة (فئات الرسوم)؛ تفعيل/تعطيل القائمة
مستلم رسوم إنشاء PoolTreasury multisig (3/5)استلام رسوم إنشاء Pool لمرة واحدة

CLMM

الدورعنوان الصلاحيةما يمكنه فعله
ترقية البرنامجSquads multisig (3/4)نشر bytecode جديد للبرنامج
AmmConfig adminTreasury multisig (3/5)إنشاء/تعديل AmmConfigs
DynamicFeeConfig adminTreasury multisig (3/5)CreateDynamicFeeConfig / UpdateDynamicFeeConfig — ضبط فئات الرسوم الديناميكية التي يمكن لاستدعاء CreateCustomizablePool الاشتراك فيها
limit_order_admin (على مستوى البرنامج)محفظة تشغيلية hot wallet خارج السلسلة، وليست multisigتسوية أوامر الحد وإغلاقها نيابةً عن أصحابها. مفتاح الـ keeper هو ثابت واحد على مستوى البرنامج (قيمة مختلفة على mainnet مقابل devnet)، يُتحقق منه عبر signer == limit_order.owner || signer == limit_order_admin::ID عند SettleLimitOrder / CloseLimitOrder. يُودَع الناتج دائمًا في ATA المالك الأصلي؛ لا يستطيع الـ keeper إعادة توجيه الأموال، أو تعديل الأوامر، أو فتح أوامر جديدة.
يُعدّ limit_order_admin دورًا تشغيليًا ضيّق النطاق بصورة مقصودة. وجوده يُتيح لـ keeper خارج السلسلة تسوية الأوامر المنفّذة دون اشتراط تواجد مالك الأمر على الإنترنت. مفتاح الـ keeper هو مفتاح hot يعيش على VM الخاص بالـ keeper ويُدار باستقلالية عن الـ multisigs أعلاه. بصورة ملموسة، صلاحية الـ keeper محدودة بما يلي:
  • SettleLimitOrder — دفع الناتج المنفّذ لأمر ما إلى ATA المالك بسعر الحد المحدد في الأمر.
  • CloseLimitOrder — إغلاق حساب أمر مُسوَّى بالكامل لاستعادة الإيجار (يعود الإيجار إلى مالك الأمر).
لا يستطيع الـ keeper استدعاء OpenLimitOrder أو IncreaseLimitOrder أو DecreaseLimitOrder، ولا تعديل أي حقل في Pool، ولا التوقيع على أي تعليمة أخرى — تُطبَّق هذه القيود على السلسلة عبر قيود الـ seed وقيود has_one في هيكل Accounts الخاص بالتعليمة. في أسوأ سيناريو لاختراق الـ keeper، يكون غير متاح (تبقى الأوامر معلّقة حتى يُسوّيها المالك بنفسه)، أو يُسوّي/يُغلق أوامر مؤهلة للتنفيذ بترتيب مختلف؛ لا يستطيع نقل أموال المستخدمين إلى أي وجهة غير تلك التي فوّضها المالك مسبقًا.

Farm v6

الدورعنوان الصلاحيةما يمكنه فعله
ترقية البرنامجSquads multisig (3/4)نشر bytecode جديد للبرنامج
منشئ Farm (لكل Farm)محفظة منشئ الـ Farmتمويل خزائن المكافآت، تمديد الجداول الزمنية، استعادة المكافآت غير المستخدمة
لا يوجد مسؤول بروتوكول لكل Farm على حدة — يتحكم منشئ الـ Farm في مزرعته فحسب، وصلاحياته محدودة (لا يستطيع مصادرة حصص المستخدمين، ولا تغيير mint الخاص بالـ staking).

LaunchLab

الدورعنوان الصلاحيةما يمكنه فعله
ترقية البرنامجSquads multisig (3/4)نشر bytecode جديد للبرنامج
منشئ الإطلاق (لكل إطلاق)محفظة منشئ الإطلاقتحصيل رسوم المنشئ بعد التخرّج؛ سحب متبقيات المنحنى في حال عدم التخرّج
لا تمتلك عمليات الإطلاق مسؤول بروتوكول يملك صلاحية تغيير المنحنيات أو مصادرة الأموال المجمَّعة.

صلاحية ترقية البرنامج

تستخدم برامج Raydium آلية الترقية القياسية في Solana عبر BPF Loader v3. تتولى الـ 3/4 Squads multisig صلاحية ترقية جميع البرامج. سبب اختيار 3/4: عدد كافٍ من الموقّعين بحيث لا يكفي اختراق واحد منهم؛ وعدد منخفض بما يكفي لجعل تنسيق الترقيات الشرعية أمرًا عمليًا. الجهات الأربع هي موقّعون مستقلون يستخدمون أجهزة باردة معزولة هوائيًا يحتفظ بها أعضاء الفريق الأساسي. يمنع التوقيع التسلسلي الموافقات المتوازية على المعاملة ذاتها؛ وتحمل كل معاملة نافذة انتهاء صلاحية ثابتة. تُراجَع عمليات Multisig دوريًا بالشراكة مع برنامج Solana STRIDE (Asymmetric Research).

إزالة صلاحية الترقية

لم تُعيَّن صلاحية ترقية أي برنامج في Raydium إلى null. يعمل البروتوكول وفق مبدأ أن البرامج يجب أن تكون قابلة للترقية (لتصحيح الأخطاء، وإضافة امتدادات كـ Token-2022، وإصلاح انجرافات التكامل). المقايضة هي: يثق المستخدمون بأن الـ 3/4 multisig ستنشر فقط ترقيات مُراجَعة بعناية. للمستخدمين الراغبين في بديل ثابت لا يقبل التغيير، يُعدّ برنامج AMM v4 الأقدم مستقرًا منذ آخر مراجعة أمنية له؛ دون أي ترقيات خلال 18 شهرًا. هذا المسار البرمجي مُجمَّد فعليًا حتى وإن كانت الصلاحية لا تزال قائمة.

صلاحية AmmConfig

إنشاء كل AmmConfig جديدة مقيَّد بالصلاحية — تُجيز الـ 3/5 treasury multisig فئات الرسوم الجديدة وتباعد نقاط الـ tick. تُشير الـ Pools القائمة إلى AmmConfig الخاصة بها عبر PDA؛ وفئة رسوم الـ Pool هي ما تحدده AmmConfig. هل يمكن للمسؤولين تعديل AmmConfig قائمة؟ نعم، من الناحية التقنية. يمكن للمسؤول استدعاء updateAmmConfig. غير أنه في الممارسة العملية، تُتجنّب تعديلات AmmConfigs المنشورة لأنها تُغيّر الاقتصاديات لجميع الـ Pools المستخدِمة لهذه الإعدادات بصمت. سياسة البروتوكول هو إنشاء AmmConfig جديدة لأي تغيير، ثم الترحيل إليها. هل يمكن للمسؤولين سرقة رسوم البروتوكول عبر الإعدادات؟ لا — تحتوي AmmConfig على معاملات الرسوم لكن ليس على عنوان مستلم رسوم البروتوكول؛ وهذا عنوان ثابت منفصل لكل Pool.

المطالبة برسوم البروتوكول

تتراكم نسبة من رسوم swap (تتراوح عادةً بين 3 و12 bps من رسوم swap البالغة 25 bps، بحسب الإعداد) في خزينة رسوم البروتوكول. يمكن لـ multisig سحب هذه الرسوم المتراكمة. لا يرى المستخدمون أي تغيير في رصيد LP الخاص بهم جراء ذلك — فهذه الحصة المخصصة مسبقًا للبروتوكول وليست من أموال الـ LP.

صلاحية منشئ الـ Farm

يمنح نظام Farms v6 المنشئ الصلاحيات التالية:
  • تمويل خزينة المكافآت (إضافة المزيد من التوكنات).
  • تمديد الجدول الزمني (تأجيل وقت الانتهاء).
  • استدعاء withdrawReward بعد انتهاء الوقت لاستعادة رصيد الخزينة غير المستخدم.
لا يستطيع منشئو الـ Farm:
  • سحب حصص LP الخاصة بالمستخدمين.
  • تغيير mint الخاص بالـ staking.
  • تغيير معدلات الإصدار بأثر رجعي (فقط بشكل استشرافي عبر setRewards).
  • تجميد حصاد المستخدمين.
في أسوأ سيناريو لمنشئ Farm ضار، يتمثل في تقليص تمويل الخزينة فتنفد الـ Farm؛ بينما تظل أموال الـ staking الأصلية للمستخدمين آمنة دائمًا.

إعداد Squads Multisig

تُشغّل Raydium اثنين من Squads multisigs منفصلين لمعالجة سطوح مخاطر مختلفة. يمكن فحص كليهما على السلسلة عبر واجهة Squads Protocol.
Multisigالحدّ الأدنى للموافقةالتأخير الزمنيالنطاق
ترقية البرنامج3/424 ساعةالصلاحية الوحيدة لنشر bytecode جديد لبرامج AMM v4 وCPMM وCLMM وLaunchLab وLock وAMM Routing وStable Swap وبرامج Farm/Staking القديمة. عرضه على app.squads.so/.../FytDr…ceZQK.
Treasury3/5لا يوجدأصول الخزينة، عائدات البروتوكول، النفقات التشغيلية. كما يحمل صلاحية الإدارة المحدودة للبرامج في Raydium (إنشاء AmmConfigs، تجميع رسوم البروتوكول، ضبط معاملات Pool) في الوقت الراهن. عرضه على v3.squads.so/dashboard/RVha…dHdtYz09.
الخصائص التشغيلية لـ upgrade multisig:
  • تأخير 24 ساعة على أي معاملة. أي ترقية تُوافَق عليها اليوم لن تُنفَّذ قبل مرور 24 ساعة، مما يمنح المستخدمين وقتًا للتصرف.
  • التوقيع عبر أجهزة باردة معزولة هوائيًا. أُزيلت بطاقات الشبكة فعليًا من الأجهزة الباردة؛ وتتصل هذه الأجهزة فقط بمحافظ الأجهزة وتقرأ بيانات المعاملة عبر رمز QR من جهاز hot منفصل.
  • التوقيع التسلسلي. فقط بعد أن يُنشئ جهاز بارد أول المعاملة ويوقّعها يمكن للجهاز البارد الثاني البدء في التوقيع — مما يمنع التوقيعات المتضاربة أو المتوازية على المعاملة ذاتها.
  • انتهاء صلاحية المعاملة. تحمل كل معاملة نافذة انتهاء صلاحية ثابتة، فتُلغى المعاملات القديمة تلقائيًا.
  • تطبيق TOTP + المفتاح المادي على الأجهزة الساخنة المستخدمة لبدء المعاملات والبث على السلسلة.
  • قائمة انتظار المعاملات العامة. يمكن لأي شخص مراقبة الترقيات المعلّقة عبر واجهة Squads.
لا يوجد تأخير زمني لـ treasury multisig — نطاقه أضيق والعمليات الروتينية (إنشاء AmmConfigs، تجميع الرسوم) تحتاج إلى التسوية في اليوم ذاته. كما تحمل treasury multisig صلاحية الإدارة المحدودة للبرامج الواردة في جداول كل برنامج أعلاه؛ وهذا ترتيب مرحلي يُراجَع دوريًا مع شركاء الأمن للمشروع.

التحقق من الصلاحية على السلسلة

أبسط طريقة للتحقق من صلاحية الترقية الحالية لأي برنامج:
solana program show <PROGRAM_ID>
يتضمن الناتج:
Program Id:          CPMMoo8L3F4NbTegBCKVNunggL7H1Zpdmwpwh8KMoZ0F
Owner:               BPFLoaderUpgradeab1e11111111111111111111111
ProgramData Address: <ProgramDataPDA>
Authority:           <EXPECTED_MULTISIG_ADDRESS>
Last Deployed In Slot: <slot>
Data Length: <n> bytes
إذا لم يكن Authority هو عنوان Squads multisig المتوقع، فثمة خطأ ما. تنشر Raydium عناوين الصلاحية المتوقعة على reference/program-addresses. لأدوار AmmConfig / pool admin، اجلب الحساب على السلسلة وفكّ ترميزه:
const config = await raydium.cpmm.getAmmConfig(configPda);
console.log("AmmConfig admin:", config.admin.toBase58());
// Expected: 3/5 treasury multisig.

التغييرات التاريخية في الصلاحيات

التاريخالبرنامجالتغيير
2022-12AMM v4نقل صلاحية الترقية من توقيع منفرد إلى 3/4 multisig إثر حادثة
2023-02جميع البرامجتوحيد جميع الأدوار التشغيلية تحت 3/5 treasury multisig
2023-11CLMMإضافة multisig ثانٍ لعمليات المكافآت فحسب لتقليل التعرض
2024-05CPMMالنشر الأولي مع صلاحية multisig من اليوم الأول

اعتبارات للمستخدمين

ما الذي ينبغي لك فعله بوصفك مستخدمًا أو LP أو مُدمِجًا؟
  1. تحقق من صلاحية الترقية قبل التخصيصات الكبيرة. تأكد من تطابقها مع الـ multisig الموثّق.
  2. راقب نشاط الـ multisig. تعرض واجهة Squads المعاملات المعلّقة؛ والترقية المجدولة تمنحك 24 ساعة للخروج إن كنت لا توافق على التغيير.
  3. استراتيجيات استرداد تراعي التأخير الزمني. إن كنت تُشغّل مُركّبًا تلقائيًا، تأكد من أن مسار الخروج الخاص بك لا يستلزم تعليمة يجري تعديلها.
  4. لا تفترض ثبات البرنامج وعدم قابليته للتغيير. كل برنامج في Raydium قابل للترقية؛ خطّط لذلك.

مخاطر شائعة للمُدمِجين

1. تخزين عناوين الصلاحيات مؤقتًا (Caching)

إن قمت بتضمين عنوان صلاحية الترقية أو multisig المسؤول بصورة ثابتة في كودك وتغيّر لاحقًا، سيفشل التحقق. اجلب البيانات من reference/program-addresses في وقت التشغيل أو حدّثها دوريًا.

2. افتراض ثبات AmmConfigs

يمكن إنشاء AmmConfig جديدة في أي وقت. يجب على مُجمِّعك/موجِّهك إعادة جلب القائمة الكاملة للإعدادات دوريًا (كل ساعة كافٍ).

3. مخاطر الإضرار من منشئي الـ Farm

إن كنت تودع في Farm ذات سمعة مجهولة، يستطيع المنشئ إنهاء الـ Farm مبكرًا واستعادة خزينة المكافآت (شريطة ألا يكون أي مستخدم قد وضع حصصه بعد). حالما يضع المستخدمون حصصهم، يُطبّق البرنامج الاستحقاقات بالتناسب؛ وتتم الاستعادة فقط من المتبقي بعد الانتهاء الطبيعي.

مراجع وروابط مفيدة

المصادر: