برنامج سولانا هو حساب
يحتوي على كود sBPF bytecode قابل للتنفيذ وتم تعيين علامة executable الخاصة به
إلى true. البرامج عديمة الحالة. جميع الحالات القابلة للتغيير موجودة في حسابات
بيانات منفصلة يتم تمريرها عبر التعليمات.
مخطط لحساب برنامج ومكوناته الأربعة وبرنامج التحميل الخاص به.
تنفيذ البرنامج
التجميع، كتابة البرامج (Anchor / Rust الأصلي)، آلة sBPF الافتراضية، نموذج وحدة الحساب، استدعاءات النظام، ذاكرة التخزين المؤقت للبرنامج.
نشر البرنامج
نشر البرامج وترقيتها والتحقق منها. مرجع تعليمات Loader-v3 وبرامج التحميل.
البرامج الأساسية
System Program (مع مرجع التعليمات)، Vote، Stake، Config، Compute Budget، Address Lookup Table، وZK ElGamal Proof.
البرامج المجمعة مسبقاً
برامج التحقق من التوقيع Ed25519، Secp256k1، Secp256r1. هياكل الإزاحة وقواعد التحقق.
مرجع استدعاءات النظام
مرجع كامل لجميع استدعاءات sBPF (~30) مع تكاليف وحدة الحساب.
حقائق أساسية
- مجمعة إلى sBPF: يتم تجميع البرامج إلى تنسيق Solana Bytecode Format (sBPF) عبر LLVM وتخزينها في حسابات قابلة للتنفيذ.
- عديمة الحالة: جميع الحالات القابلة للتغيير موجودة في حسابات بيانات منفصلة، وليس في حساب البرنامج.
- قابلة للترقية: البرامج المنشورة باستخدام loader-v3 (BPF Loader Upgradeable) يمكن ترقيتها عند تعيين صلاحية الترقية؛ إلغاء تلك الصلاحية يجعل البرنامج غير قابل للتغيير.
الحدود
| الحد | القيمة | المصدر |
|---|---|---|
| حجم الذاكرة الافتراضي | 32 كيلوبايت | HEAP_LENGTH |
| الحد الأقصى لحجم الذاكرة (قابل للتعديل) | 256 كيلوبايت | MAX_HEAP_FRAME_BYTES |
| حجم إطار المكدس | 4,096 بايت | STACK_FRAME_SIZE |
| الحد الأقصى لعمق استدعاء sBPF | 64 | MAX_CALL_DEPTH |
| الحد الأقصى لعمق مكدس التعليمات (المستوى الأعلى + CPIs) | 5 (9 مع SIMD-0268) | MAX_INSTRUCTION_STACK_DEPTH, MAX_INSTRUCTION_STACK_DEPTH_SIMD_0268 |
| تكلفة الذاكرة | 8 وحدات حساب لكل 32 كيلوبايت | DEFAULT_HEAP_COST |
| الحد الأقصى للبرامج المخزنة مؤقتاً | 512 | MAX_LOADED_ENTRY_COUNT |
| تأخير ظهور النشر | 1 slot | DELAY_VISIBILITY_SLOT_OFFSET |
Is this page helpful?