الأسئلة والأجوبة

ممارسة التخويل المثلى في Solana/Anchor لنظام معياري متعدد البرامج (أدوار مشتركة عبر البرامج، CPI)

حجم النص

يبدو أن المستودع خاص: لكل خيار من الخيارات مزاياه وعيوبه، لذا يمكنك إنشاء تنفيذ هجين للتخفيف من ذلك، وفيما يلي بعض تطبيقات البرامج المتعددة التي يمكنك اعتمادها:

Marinade Finance: يستخدم برنامجًا أساسيًا واحدًا + برامج تابعة لمجالات محددة. يمكنك التحقق من كيفية تعاملهم مع سلطة المسؤول مقابل السلطة التشغيلية (البرنامج الأساسي لديه multisig لمجلس كمسؤول، لكن PDA لعمليات سحب الستيك). كما أن برنامج الإحالة هو غلاف يقوم بـ CPI إلى البرنامج الرئيسي

Marginfi: يستخدم العزل القائم على المجموعات مع برنامج مشترك

Ellipsis Labs: يستخدم برنامجًا أساسيًا + برامج مساعدة تقوم بـ CPI إلى البرنامج الأساسي. phoenix-v1 هو دفتر الأوامر الأساسي بينما يقوم برنامجا مدير المقاعد وصانع السوق بـ CPI إليه

المزالق الشائعة:

الثقة العمياء بمعرّف البرنامج المستدعي — مجرد أن CPI جاء من البرنامج X لا يعني أن البرنامج X تحقق من المستخدم. أعد دائمًا التحقق من الموقّعين ذوي الصلة. نسيان أن PDAs لا تحتفظ بحالة الموقّع عبر التعليمات — PDA وقّع في التعليمة 1 ليس تلقائيًا موقّعًا في التعليمة 2 إلا إذا قمت بـ CPI باستخدام invoke_signed مرة أخرى. سلطة الترقية المركزية — إذا كانت جميع البرامج تشترك في سلطة ترقية واحدة، فإن نمطيتك وهمية. فكّر في استخدام multisigs.

مواصلة الاستكشاففهرس البياناتبحث