الحساب هو وحدة البيانات الأساسية في سولانا لتخزين الحالة. تقوم الشبكة بتخزين جميع الحالات في مخزن مفتاح-قيمة حيث كل مفتاح هو عنوان بحجم 32 بايت وكل قيمة هي حساب.
مخطط لـ 3 حسابات وعناوينها. يتضمن تعريف بنية الحساب.
بنية الحساب
عناوين الحسابات (المفتاح العام، PDA)، الحقول الخمسة التي يحتوي عليها كل حساب، آلة حالة الإيجار، مع شرح تفاعلي للكود.
أنواع الحسابات
حسابات البرامج (الكود القابل للتنفيذ)، حسابات البيانات (حالة البرنامج)، حسابات النظام، وsysvars (الحالة على مستوى الكلاستر).
قواعد التعديل
القواعد المفروضة من قبل وقت التشغيل للامبورتات، البيانات، المالك، علامة القابلية للتنفيذ، والاستعارات.
وقت تشغيل الحساب
التحقق من تحميل الحساب، تنسيق تسلسل BPF، وإلغاء التسلسل.
حقائق أساسية
- البنية: كل حساب يحتوي على نفس الحقول الخمسة: lamports، data، owner، executable، rent_epoch.
- العنوان: يتم تحديد كل حساب بعنوان فريد بحجم 32 بايت (إما مفتاح عام Ed25519 أو PDA).
- الملكية: فقط برنامج مالك الحساب يمكنه تعديل بياناته أو خصم lamports. يمكن لأي برنامج إضافة lamports إلى أي حساب قابل للكتابة.
- الإيجار: يجب أن يحتفظ كل حساب برصيد أدنى من lamports يتناسب مع حجم بياناته للبقاء على السلسلة.
الحدود
| الحد | القيمة | المصدر |
|---|---|---|
| الحد الأقصى لحجم بيانات الحساب | 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?