في البنى التقليدية لتطبيقات البرمجيات، يعتمد المطورون غالبًا على الخوادم لمعالجة الطلبات. أما في شبكة Internet Computer، فتعمل منطق التطبيقات مباشرة على البلوكشين، مما يمنح المستخدمين منظورًا مختلفًا كليًا حول طريقة عمل التطبيقات.
يتركز هذا الاختلاف في ثلاثة محاور رئيسية: بنية التطبيق، وتنفيذ الطلبات، والتحقق من الإجماع. وتشكل هذه العناصر معًا دورة التشغيل الكاملة لتطبيق Dfinity، بدءًا من النشر ووصولًا إلى التنفيذ.
تُبنى تطبيقات Dfinity على بنية حوسبة على السلسلة تتباين كليًا مع بنية التطبيقات التقليدية على الويب.
في النماذج التقليدية، تعتمد التطبيقات على هيكل طبقي يشمل الواجهة الأمامية، والخلفية، وقاعدة البيانات. أما Dfinity، فتدمج هذه الوظائف في Canisters، بحيث تُخزن منطق التطبيق والبيانات مباشرة على البلوكشين.
يتكون تطبيق Dfinity من واجهة أمامية وعدة Canisters. يدير كل Canister منطق الأعمال وتخزين البيانات، ما يقلل الحاجة للخوادم المركزية.
تمنح هذه المقاربة التطبيقات القدرة على العمل بطريقة لا مركزية بالكامل مع الحفاظ على كافة الوظائف.

ينشر المطورون Canisters لنقل منطق التطبيق إلى الشبكة.
تشمل الخطوات كتابة كود التطبيق، وتجميعه إلى Canisters، ثم نشرها إلى Subnets مخصصة باستخدام أدوات متخصصة. ويستهلك النشر Cycles، والتي تُعد رسومًا لموارد الحوسبة.
تتضمن عملية النشر ثلاث مراحل أساسية: تغليف الكود، وتخصيص الموارد، وتسجيل Subnet. وعند اكتمال النشر، يصبح Canister جاهزًا لاستقبال طلبات المستخدمين.
تحول هذه العملية التطبيق من بيئة محلية إلى كيان تشغيلي على السلسلة.
تعد Canisters وحدات التنفيذ الأساسية لتطبيقات Dfinity.
يحتوي كل Canister على الكود والحالة معًا، ما يمكّنه من معالجة طلبات المستخدمين وتحديث البيانات. وتتكفل Canisters بالحوسبة وتوفر تخزينًا دائمًا للبيانات.
يعمل كل Canister كخدمة مصغرة مستقلة وقادر على التفاعل مع Canisters أخرى، لتشكيل نظام تطبيقي متكامل.
تتيح هذه الآلية للبلوكشين دعم وظائف الخلفية المشابهة للأنظمة التقليدية.
تُنفذ وتُعالج طلبات المستخدمين ضمن Subnets.
يُرسل الطلب إلى Subnet التي تستضيف Canister المطلوب. وتتعاون العقد داخل الـ Subnet لمعالجة الطلب وإنتاج النتيجة.
تتكون كل Subnet من عدة عقد تعمل معًا لمعالجة الطلبات والحفاظ على حالة متسقة. ثم تُعاد النتائج إلى المستخدم.
توفر هذه العملية اللامركزية تنفيذًا موزعًا ومتسقًا للطلبات.
تضمن آلية الإجماع اتفاق جميع العقد حول نتائج التنفيذ.
تقوم العقد بمزامنة الحالة والتحقق من نتائج الحوسبة عبر بروتوكول إجماع، ما يمنع التشعبات أو تضارب البيانات.
يربط نظام الإجماع جميع العقد ضمن Subnet لضمان حالة موحدة أثناء التنفيذ.
توفر هذه الآلية عمليات حوسبة موثوقة في بيئة موزعة.
تدعم Canisters الترقية في المكان والصيانة المستمرة.
يمكن للمطورين تحديث كود Canister مع الحفاظ على البيانات الحالية، ويمنع هذا الأسلوب فقدان البيانات.
تتم إدارة الترقيات بشكل مشترك بين وحدات النشر وإدارة الحالة، ما يسمح بتطور التطبيق بشكل مستمر.
تضمن هذه البنية إمكانية صيانة التطبيقات على السلسلة على المدى الطويل.
تعمل تطبيقات Dfinity عبر سلسلة من الخطوات المتتابعة:
الخطوة 1: نشر Canister ينشر المطورون منطق التطبيق على هيئة Canisters ويخصصون موارد الحوسبة.
الخطوة 2: بدء المستخدم للطلب يتفاعل المستخدمون مع الواجهة الأمامية لإرسال الطلبات إلى Canisters.
الخطوة 3: توجيه الطلب إلى Subnet يُرسل الطلب إلى Subnet المناسبة بانتظار المعالجة.
الخطوة 4: تنفيذ العقد للمنطق تتعاون عقد Subnet لتنفيذ كود Canister وتحديث الحالة.
الخطوة 5: تأكيد النتائج عبر الإجماع تستخدم العقد آلية الإجماع لتأكيد النتائج المتسقة.
الخطوة 6: إعادة النتائج للمستخدم تُعاد النتائج المعالجة إلى المستخدم، ما يكمل التفاعل.
تتداخل كل خطوة مع وحدات النظام المختلفة، مما يخلق مسار تنفيذ شفافًا وقابلًا للتتبع.
تجعل هذه العملية من طلبات المستخدمين عمليات حوسبة موثوقة يمكن التحقق منها على السلسلة.
تستفيد تطبيقات Dfinity من Canisters و Subnets وآلية الإجماع لتأسيس إطار تشغيلي متكامل على البلوكشين، ما يمكّن من النشر والتنفيذ والصيانة بشكل لا مركزي بالكامل.
ما هو Canister؟
Canister هو عقد ذكي على Dfinity يُستخدم لتشغيل منطق التطبيقات.
هل يجب أن تعمل التطبيقات ضمن Subnet؟
نعم، يتم تنفيذ العمليات بشكل تعاوني بين عقد Subnet.
كيف تتم معالجة طلبات المستخدمين؟
تُعالج الطلبات بواسطة Canisters وتؤكد النتائج عبر آلية الإجماع.
هل يمكن ترقية Canisters؟
نعم، وتحافظ الترقيات على البيانات الأصلية.
ما هو الفرق الجوهري بين Dfinity والتطبيقات التقليدية؟
يعمل منطق التطبيق والبيانات مباشرة على البلوكشين.





