TON Blockchain Architecture نظام تخزين وإدارة البيانات في TON:
- تنظيم البيانات bag of cells;
- التشرد على مستوى الحسابات (ISP) ؛
- شروط الإجماع والتحقق من الصحة ؛
- masterchain ويقوم بتنسيق كل شرائح الشبكة ومتطلباتها
Bag of Cells#
جميع بيانات TON تمثل مجموعة الخلايا (cells) كل خلية تحتوي على:
- حتى 1023 بت البيانات
- حتى 4 روابط على الخلايا الأخرى (بموجب SHA-256-hash) ؛
- بايتين من الموصف + البيانات نفسها
الخلايا مرتبة في الأشجار أو DAG (Directed Acyclic Graph) التسلسل على المخططات TL-B (Type Language — Binary).
Infinite Sharding Paradigm (ISP)#
كل حساب منفصل accountchain. كتلة افتراضية من سلسلة الحسابات يُجمعون في كتلة الشارد تشين لتحقيق الكفاءة.
حالة الشاردتشين = حالة كل حسابات الشارد كتلة الشاردشين = مجموعة من الكتل الافتراضية لبعض الحسابات.
في "تون" لا يوجد فرق بين "العقد الذكي" و "الحساب"
هيكل كتلة الشاردشين#
تنقسم إلى جزأين:
غير مقسمة (non-split)
| المكون | المحتوى |
|---|---|
| InMsgDescr | وصف الرسائل الواردة |
| OutMsgDescr | وصف الرسائل الخارجة |
| Block header | التقاطعات، معايير الكتلة |
| OutMsgQueue | طابور الرسائل غير المقدمة (يتم إزالتها بعد توصيلها إلى الشردات المجاورة) |
مقسمة
Hashmap account_id → account_state. حالة الحساب:
- الميزانية في غرام
- رمز العقد الذكي ؛
- البيانات الدائمة للعقد
- إحصاءات استخدام المخزن ؛
- وصف رسمي اختياري للمواجهة ؛
- معلومات المستخدم العامة.
Masterchain#
- لا يُقسم ولا يُوحَد (single chain);
- واحد من السلف (باستثناء الكتلة الصفرية مع config الأولي)
- يحتوي قائمة جميع الشاردات النشطة و آخر كتلة لكل واحدة
- يحفظ الميزات المُعدّلة من خلال عقد تكوين خاص.
إعدادات التكوين
- الحد الأدنى من الإجراءات التي يقوم بها المحققون
- الحد الأقصى لقياس حجم مجموعة المثبتين
- الحد الأقصى لعدد الكتل التي تتولى المجموعة مسؤوليتها
- عملية اختيار ومعاقبة المثبتين
- مجموعات المثبتين الحالية والمتبعة
- عملية تغيير المعلمات
القيم الأولية والرمز العقود الذكية الأساسية في كتل الصفر masterchain.
شروط الإجماع#
يضمنون أن تغيير البيانات صحيح فقط من خلال معاملات صالحة.
| النوع | وصف |
|---|---|
| العالمية | الاختلافات للشبكة بأكملها (مثل ضمانات توصيل الرسائل) |
| المحليات الداخلية | داخل كتلة واحدة (مثل معالجة الرسائل الواردة) |
| المحليات الخارجية | بين الكتل، عادةً ما تكون المقاطعات المجاورة |
الكتلة صالحةمسؤولية المُحققين التوليد والتحقق.
الوقت المنطقي (LT)#
عدد صحيح غير سلبي 64 بتويتم منحها للأحداث:
- حدث معتمد LT لديها أكثر من جميع الاعتمادات الخاصة بها
- حدث مستقل لديها LT = 0
- الرسائل الخارجة يرثون LT من المعاملة ؛
- المعاملة والكتلة لديهم فترة زمنية"الذي يظهر في العنوان"
(إل تي) مطلوب لترتيب الأحداث بدون ساعات عالمية.
الحالة العامة و visibility#
- كتلة masterchain يحدد حالة جميع الشاردات من خلال الشاشات في آخر كتلتها ؛
- كتلة الشاردشين يحتوي على هاش آخر كتلة masterchain في العنوان
- المبنى المرئي تلك المذكورة في هذه الوحدة masterchain + أسلافها؛
- كتلة الشاردة يستورد رسائل من OutMsgQueue الجيران المرئيين؛ لا يمكن تشغيل رسائل المكونات الخفية.
العقود الذكية#
إنشاء
ينطبق على سلسلة الويب الأساسية و masterchain (قد يكون للسلسلة اليوب الأخرى آلياتها الخاصة):
- رسالة إلى عنوان لم يذكر سابقا من معنى → يخلق ** حساب غير مبكر** مع ميزانية، ولكن بدون رمز أو بيانات
- رسالة البناء يحتوي على initial code + data → يخلق العقد الذكي
- عادة ما يكون Constructor يحمل قيمة للميزانية الأولية (الحد الأدنى يعتمد على storage-fee) ؛
- العقود الذكية يمكن أن أنشئها بنفسك عقود ذكية جديدة في المعاملات.
تعديل
- البيانات الدائمة يتم تغييرها عند تنفيذ الرمز في TVM;
- إذا كان الكود لا ينص على تغييرات ، فإن البيانات لا تتغير
- الرمز نفسه يمكن تغييرها فقط إذا كان الكود الحالي يسمح بذلك.
التدمير والتجمد
- العقد لا يمكن تدميرها، حتى توازن > الحد الأدنى ؛
- عند التوازن السلبي الحساب يَتجمّدُ code + data يتم استبدالها بـ 32 بايت hash ؛
- يتم حفظ التبويب لفترة → يمكن للمالك استعادة الحساب عن طريق تحويل الأموال وإرسال رسالة من code + data.