الحساب هو وحدة البيانات الأساسية في سولانا لتخزين الحالة. تقوم الشبكة بتخزين جميع الحالات في مخزن مفتاح-قيمة حيث كل مفتاح هو عنوان بحجم 32 بايت وكل قيمة هي حساب.
مخطط لـ 3 حسابات وعناوينها. يتضمن تعريف بنية الحساب.
بنية الحساب
عناوين الحسابات (المفتاح العام، PDA)، والحقول الخمسة التي يحتويها كل حساب، ورصيد التخزين، وحقل rent المهمل، مع شرح تفاعلي للكود.
أنواع الحسابات
حسابات البرامج (الكود القابل للتنفيذ)، حسابات البيانات (حالة البرنامج)، حسابات النظام، وsysvars (الحالة على مستوى الكلاستر).
قواعد التعديل
القواعد المفروضة من قبل وقت التشغيل للامبورتات، البيانات، المالك، علامة القابلية للتنفيذ، والاستعارات.
وقت تشغيل الحساب
التحقق من تحميل الحساب، تنسيق تسلسل BPF، وإلغاء التسلسل.
حقائق أساسية
- البنية: كل حساب يحتوي على نفس الحقول الخمسة: lamports، البيانات، المالك، قابل للتنفيذ، rent_epoch.
- العنوان: يتم تحديد كل حساب بعنوان فريد من 32 بايت (إما مفتاح عام Ed25519 أو PDA).
- الملكية: فقط برنامج المالك للحساب يمكنه تعديل بياناته أو خصم lamports. يمكن لأي برنامج إضافة lamports إلى أي حساب قابل للكتابة.
- تخزين الحساب: يجب أن يحتفظ كل حساب برصيد أدنى من lamport قابل للاسترداد يتناسب مع حجم بياناته للبقاء على الشبكة.
الحدود
| الحد | القيمة | المصدر |
|---|---|---|
| الحد الأقصى لحجم بيانات الحساب | 10 ميجابايت (10,485,760 بايت) | MAX_ACCOUNT_DATA_LEN |
| الحد الأقصى لنمو البيانات لكل تعليمة | 10 كيلوبايت (10,240 بايت) | MAX_PERMITTED_DATA_INCREASE |
| الحد الأقصى لنمو البيانات لكل معاملة | 20 ميجابايت (20,971,520 بايت) | MAX_ACCOUNT_DATA_GROWTH_PER_TRANSACTION |
| النفقات الأساسية لتخزين الحساب | 64 بايت لكل حساب | TRANSACTION_ACCOUNT_BASE_SIZE |
| حجم العنوان | 32 بايت (مفتاح عام Ed25519) | -- |
| الحد الأدنى لرصيد التخزين (الصيغة) | (account_size + 128) * 3,480 lamports/بايت-سنة * سنتان | minimum_balance() |
Is this page helpful?