آخر تحديث: 2025-10-31
تقوم Kora بتقدير رسوم المعاملات عند تنفيذ طرق RPC الخاصة بـ
estimate_transaction_fee و sign_transaction. لتقدير الرسوم، تحسب Kora
التكلفة الإجمالية لتنفيذ المعاملات على سولانا، بما في ذلك رسوم الشبكة، وتكاليف
إنشاء الحسابات، ورسوم معالجة الدفع الاختيارية. يشرح هذا الدليل كل مكون من مكونات
حساب الرسوم.
معادلة حساب الرسوم
يتم تحديد الرسوم بناءً على نموذج التسعير المُعد في kora.toml:
PriceModel::Free- يتحمل جميع رسوم المعاملات (إجمالي الرسوم = 0)PriceModel::Fixed- يفرض مبلغاً ثابتاً برمز معين (بغض النظر عن رسوم الشبكة)PriceModel::Margin- يضيف هامش ربح بنسبة مئوية إلى إجمالي الرسوم.
نقطة الدخول الرئيسية لتقدير إجمالي الرسوم المستخدمة في PriceModel::Margin هي
FeeConfigUtil::estimate_kora_fee() في
crates/lib/src/fee/fee.rs.
وتستخدم المعادلة العامة التالية:
Total Fee = Base Fee+ Account Creation Fee+ Kora Signature Fee+ Fee Payer Outflow+ Payment Instruction Fee+ Transfer Fee Amount+ Margin Adjustment
مكونات الرسوم
| المكون | الوصف | طريقة الحساب | متى يتم التطبيق |
|---|---|---|---|
| الرسوم الأساسية | رسوم معاملة سولانا الأساسية التي تغطي التحقق من التوقيع ومعالجة المعاملة | RpcClient.get_fee_for_message() - يستخدم حساب الرسوم الخاص بسولانا بناءً على وحدات الحوسبة ورسوم الأولوية | دائماً |
| رسوم إنشاء الحساب | الحد الأدنى للرصيد المعفى من الإيجار لإنشاء حسابات الرموز المرتبطة الجديدة (ATAs) | Rent::default().minimum_balance(account_size) - يحسب الإيجار بناءً على حجم بيانات الحساب (165-355 بايت حسب امتدادات الرمز) | عندما تنشئ المعاملة حسابات ATAs جديدة |
| رسوم توقيع Kora | رسوم إضافية عندما توقع Kora كدافع رسوم غير مشارك | ثابت: 5,000 lamport (LAMPORTS_PER_SIGNATURE) | عندما لا يكون دافع الرسوم موقعاً على المعاملة بالفعل |
| تدفقات دافع الرسوم الخارجة | إجمالي SOL الذي يرسله دافع الرسوم في المعاملة (التحويلات، إنشاء الحسابات، إلخ.) | مجموع: تحويلات System Program من دافع الرسوم، CreateAccount الممول من دافع الرسوم، سحوبات Nonce من دافع الرسوم | عندما يقوم دافع الرسوم بعمليات System Program |
| رسوم تعليمات الدفع | التكلفة المقدرة لرسوم الأولوية لإضافة تعليمات دفع للمعاملات بدون رسوم | تقدير ثابت: 50 lamport (ESTIMATED_LAMPORTS_FOR_PAYMENT_INSTRUCTION) | عندما يكون الدفع مطلوباً ولكنه غير مدرج في المعاملة |
| رسوم التحويل | رسوم تحويل Token2022 المعدة على الرمز (مثلاً، 1% من مبلغ التحويل) | Token2022Mint.calculate_transfer_fee(amount, epoch) - بناءً على إعدادات رسوم التحويل الخاصة بالرمز | فقط لتحويلات Token2022 إلى عنوان الدفع الخاص بـ Kora |
| تعديل الهامش | هامش الربح/التعديل الخاص بنموذج تسعير Kora | الهامش المُعد في validation.price - يمكن إضافة هامش ربح كنسبة مئوية من إجمالي الرسوم | عندما يتم توفير [validation.price] في kora.toml |
نماذج التسعير وتدفق رسوم الدافع الخارجي
تدعم Kora ثلاثة نماذج تسعير تحدد كيفية فرض رسوم على المستخدمين مقابل المعاملات:
التسعير بالهامش (الافتراضي)
- الصيغة:
Total Fee = (Base + Outflow + Other Components) × (1 + margin) - يتضمن تدفق رسوم الدافع الخارجي: نعم
- الأنسب لـ: عمليات النشر الإنتاجية حيث يجب أن تعكس الرسوم التكاليف الفعلية مع إضافة هامش تشغيلي
التسعير الثابت
- الصيغة:
Total Fee = Fixed Amount (in specified token) - يتضمن تدفق رسوم الدافع الخارجي: لا
- الأنسب لـ: تجربة مستخدم مبسطة مع أسعار يمكن التنبؤ بها في بيئات خاضعة للرقابة
التسعير المجاني
- الصيغة:
Total Fee = 0 - يتضمن تدفق رسوم الدافع الخارجي: لا (المشغل يتحمل جميع التكاليف)
- الأنسب لـ: الحملات الترويجية أو الاختبار أو التطبيقات المدعومة بالكامل
⚠️ تحذير أمني: نماذج التسعير الثابت/المجاني
حرج: نماذج التسعير الثابت/المجاني لا تتضمن تدفق رسوم الدافع الخارجي في المبلغ المحمّل. يؤدي هذا إلى خطر أمني كبير في حالة عدم التكوين الصحيح. إذا كانت سياسة دافع الرسوم الخاصة بك تسمح بالتحويلات أو عمليات التدفق الخارجي الأخرى، فقد يستغل المهاجمون ذلك لاستنزاف حساب دافع الرسوم الخاص بك.
الضوابط الأمنية المطلوبة
عند استخدام التسعير الثابت/المجاني، يجب عليك تكوين سياسات مقيدة لدافع الرسوم لحظر جميع العمليات المالية والمتعلقة بتغيير الصلاحيات:
[validation.fee_payer_policy.system]allow_transfer = false # Block SOL transfersallow_create_account = false # Block account creation with lamportsallow_allocate = false # Block space allocation[validation.fee_payer_policy.system.nonce]allow_withdraw = false # Block nonce account withdrawals[validation.fee_payer_policy.spl_token] # and for [validation.fee_payer_policy.token_2022]allow_transfer = false # Block SPL transfersallow_burn = false # Block SPL token burningallow_close_account = false # Block SPL token account closures (returns rent)allow_mint_to = false # Block unauthorized SPL token mintingallow_initialize_account = false # Block account initialization
حماية إضافية
- تفعيل المصادقة: اطلب دائمًا مفتاح API أو مصادقة HMAC مع التسعير الثابت/المجاني
- تعيين حدود منخفضة: استخدم قيم
max_allowed_lamportsمتحفظة - مراقبة الاستخدام: تتبع الأنماط غير العادية للمعاملات ذات التدفق الخارجي المرتفع
- النظر في التسعير بالهامش: يتضمن التسعير بالهامش تلقائيًا تكاليف التدفق الخارجي في الرسوم
تحذيرات التحقق
سيحذرك مدقق تكوين Kora من التكوينات الخطرة:
kora --config kora.toml config validate
التحذيرات المتوقعة للتكوينات الضعيفة:
⚠️ SECURITY: Fixed pricing with system.allow_transfer=true.Users can make the fee payer transfer arbitrary SOL amounts at fixed cost.This can drain your fee payer account.
Is this page helpful?