هيكلة التطبيقات اللامركزية DApps
التصنيف | مقالات وتدوينات |
وقت النشر |
2024/11/21
|
الردود |
0
|
. كما يشاع استخدام أطر العمل مثل React و Angular و كذلك Vue.js لإنشاء واجهة مستخدم قابلة للاستجابة الديناميكية.
المشهورة هي Web3.js و Ether.js كما أن هناك مكتبات مشهورة أخرى مبنية على البايثون مثل web3.py. على أي حال، تعتبر مكتبات الجافا سكريبت أكثر شيوعا ووفرة من مكتبات البايثون خصوصا تلك التي تدعم React. وبشكل عام، توفر هذه المكتبات الأدوات للتعامل مع منطق الواجهات الأمامية، بما فيها التوقيع على المعاملات، استرجاع معلومات الحساب ، إدارة محفظة Web3 ، والكثير.
تتطلب dApps أيضا من الواجهة الأمامية الاتصال مع أجهزة البلوكتشين nodes قبل إرسال طلبات إلى الواجهة الخلفية backend ، والتي تتألف من العقود الذكية التي يتم تنفيذها على السلسلة. على الرغم من أن تشغيل جهاز البلوكتشين عن طريق المستخدم نفسه قد يقلل الاعتماد على أي مزود خدمة، إلا أنه يتطلب الكثير من الموارد. لذلك تعمل المزودات مثل Alchemy, QuickNode, Tatum, Ankr or Infura على توفير حلولا مناسبة.
الاستضافة
تعود الاستضافة إلى عملية حفظ وتشغيل ملفات التطبيق، مما يسمح للمستخدمين للدخول والتفاعل معها عبر الإنترنت. تقليديا، تتكون الاستضافة المركزية من خادم واحد أو عدة خوادم متضامنة مسؤولة عن خدمة محتوى التطبيق. يعتمد هذا النهج عمليا على سلطة مركزية، وهي مزود خدمة الاستضافة. الأغلبية العظمى للتطبيقات المركزية هذه الأيام تستخدم الاستضافة المركزية، ما يخلق نقطة فشل مركزية محتملة بالإضافة إلى تهديدات أخرى لا يتسع المجال لذكرها. تختلف استضافة التطبيقات اللامركزية عن المركزية من خلال توزيع ملفات التطبيق عبر شبكة من الأجهزة المنتشرة في والتي تدعى nodes ، و تساهم كل منها في تقديم خدمات التخزين وتوفير عرض النطاق الترددي bandwidth ، كما يمكن استخدام حلولا مثل IPFS وكذلك Swarm لدعم عمليات الاستضافة.
المحافظ
يتم استخدام المحافظ لإدارة الأصول الرقمية للمستخدمين، التحقق من المستخدمين و التوقيع على المعاملات على البلوكتشين. في مفهوم dApps ، تعمل المحافظ على حفظ المفاتيح الخاصة للمستخدمين و تسهيل المعاملات مع العقود الذكية الأساسية. هناك الكثير من الآراء المختلفة عن أفضل نوع محافظ تعطي تجربة مستخدم معقولة، والتي يجب أن تتمتع بإمكانية دخول سهلة ولكن من المهم أنها توفر أمان عالي للمستخدمين (لسوء الحظ هناك عدد كبير من الجهات الفاعلة السيئة التي تحاول سرقة المفاتيح الخاصة والوصول إلى المحافظ من خلال الهندسة الاجتماعية).
هناك نوعين مختلفين من المحافظ، النوع الأول عبارة عن محافظ مبينة على المتصفح ، بينما الأخرى محافظ يمكن إضافتها كأداة إضافية إلى المتصفح ، أما من ناحية الخصائص هناك تصنيفان ، التصنيف الأول محافظ تدعى custodial والآخر يطلق عليها non-custodial.
بعض المتصفحات، مثل Brave or Opera ، تأتي مع محافظ مبنية معها حيث تسمح للمستخدمين لإدارة أصولهم الرقمية والتفاعل مع التطبيقات اللامركزية بشكل مباشر مع المتصفح. كما أثارت شركة Microsoft بأنها سوف تطلق محفظتها اللامركزية المبنية على المتصفح الخاص بها Edge. أما النوع الآخر وهي المحافظ المضافة إلى المتصفح، مثل MetaMask و Trust Wallet ، عبارة عن وظائف إضافية منفصلة يمكن للمستخدمين تثبيتها في المتصفح المفضل لديهم. عمليا تعتبر هذه المحافظ أكثر تنوعا وتدعم مدى أكبر من العملات المشفرة المرتبطة بشبكات البلوكتشين. تعتبر المحافظ المبنية على المتصفحات محدودة في عدد شبكات البلوكتشين التي تدعمها ، بينما تعتبر المحافظ المضافة إلى المتصفح أكثر عرضة للهجمات مثل التصيد الاحتيالي phishing
أما من ناحية خصائص المحفظة، فتتم تتم إدارة custodial-wallet من خلال طرف ثالث مزود للخدمة ، حيث تعمل على تعزيز التحكم على المفاتيح الخاصة للمستخدمين. يدخل المستخدمين إلى المحفظة من خلال منصات مزود الخدمة، تعتمد عليهم في التأمين وإدارة الأصول. بينما تعمل المحافظ ذات الخاصية non-custodial-wallet على منح المستخدمين التحكم الكامل على مفاتيحهم الخاصة، مما يسمح لهم لإدارة أصولهم الرقمية دون الاعتماد على طرف ثالث. عادة ما يتم استخدام المحافظ من نوع non-custodial-wallet لتتعامل مع التطبيقات اللامركزية، لذا يجب على المستخدمين إدارة المفاتيح الخاصة بنفسهم. هناك أكثر من نهج مختلف لمحافظ non-custodial-wallet مثل Magic و Argent وكذلك Metamask.
أجهزة الشبكة Nodes :
تعتبر Nodes خوادم مستقلة تشارك في شبكة البلوكتشين من خلال التحقق من صحة وموثوقية المعاملات. و للتفاعل مع التطبيقات اللامركزية ( dApp) ، يجب على واجهة العميل أن تتصل مع Node بداخل الشبكة. على أي حال يمكن للمستخدمين أيضا التفاعل مع dApps بشكل مباشر عبر Node أو من خلال عقد ذكي آخر! هذا يعني أن الواجهة الأمامية الخاصة بك هي ليس الطريقة الوحيدة لتفاعل المستخدمين مع الواجهة الخلفية back-end إذا كانت العقود الذكية يتم تنفيذها على شبكة البلوكتشين العامة.
تعمل الخدمات مثل Alchemy و QuickNode على توفير الدخول لخوادم Nodes بعيدة ، مما يسمح للمطورين التركيز على بناء تطبيقاتهم اللامركزية دون الاكتراث للبنية التحتية. كما يعد Chainstack حلا قابلا للتطبيق إذا أردنا استخدام Node مخصصة دون الحاجة لإدارتها. بدلا من ذلك، يمكن للمطورين تشغيل خوادمهم التي يمتلكونها باستخدام برمجيات مثل Geth للإيثيريوم أو Solana’s Validator لشبكة Solana.
تدعم Nodes عمليات القراءة والكتابة. لذا إذا كان التطبيق يسمح فقط لقراءة البيانات من البلوكتشين فلن يكون هناك رسوم يجب دفعها لتنفيذ المعاملات، أما إذا كان التطبيق يدعم عمليات الكتابة فإن التطبيق يحتاج إلى دفع رسوم تدعى gas fees.
العقود الذكية
تعرف العقود الذكية على أنها العمود الفقري لأي تطبيق لا مركزي، حيث تسمح للكتابة والقراءة من البلوكتشين. تتم كتابة العقود الذكية باستخدام لغات برمجية مثل Solidity لشبكة Etherum و Rust لشبكة Solana ، كما تعمل على تعريف المنطق والقوانين التي تحكم عمليات التطبيق اللامركزي. عمليا، بمجرد نشر العقود الذكية ، فإن الكود لن يكون قابلا للتعديل ، مما يقودنا إلى بعض الصعوبات عندما نرغب بإصلاح الثغرات أو إضافة خصائص جديدة. على أي حال، تحاول بعض العقود المطورة والتي تدعى proxy التعامل مع هذه المشكلة عن طريق عزل منطق العقد عن تخزين بيانات العقد. حيث تحتوي هذه العقود على مكونين رئيسيين (بشكل أساسي عقدين ذكيين أو أكثر).
تلعب proxy contract كوسيط ، يرسل الطلبات الواردة إلى منطق العقد بينما تقوم بالحفاظ على حالة العقد. يبقى هذا العقد غير قابل للتعديل خلال عمليات التطوير. يحتوي منطق العقد على الكود الحقيقي و منطق العمل للتطبيق، حيث يمكن للمطورين نشر نسخة جديدة من العقد المنطقي و تحديث عقد proxy للوصول إلى المنطق الجديد ، مما يسمح للتحديث دون التأثير على بيانات العقد.
بالإضافة إلى ذلك، يمكن أن يقوم التطبيق اللامركزي باستخدام العقد الذكي الذي تم تطويره داخليا ولكن يتصل أيضا مع العقود الذكية (البروتوكولات) التي تم تطويرها من الآخرين. على سبيل المثال، قام التطبيق اللامركزي الشهير1inch بتطوير عقود ذكية للتعامل مع العقود الذكية لمختلف منصات التحويل اللامركزية مثل Uniswap و Sushiswap.
علاوة على ذلك، لا يمكن أن يتفاعل العقد الذكي الذي يتم نشره على سلسلة واحدة (مثل Etherum) ببساطة مع عقد ذكي تم نشره على سلسلة أخرى (مثل Polygon). لذلك، سيساعدنا دعم السلاسل المتعددة في خدمة جمهور أكبر من المشاركين كما يمكن أن يجلب خصائص متقدمة مثل zero knowledge proofs أو تسريع عمليات إْنجاز المعاملات. الطريقة الوحيدة للتفاعل بين السلاسل هو من خلال تطبيق التجسير bridges مثل Wormhole أو بروتوكولات التشغيل البيني مثل Cosmos للتطبيق اللامركزي.
حلول الفهرسة:
تلعب حلول الفهرسة دورا محوريا في أنظمة التطبيقات اللامركزية وذلك من خلال جعل بيانات البلوكتشين أكثر قابلية للدخول والاستعلام. مع كبر حجم البلوكتشين وتعقيدها، تتناقص سرعة الحصول على معلومات محددة بشكل مباشر من السلسلة وترتفع تكلفة المصادر المستخدمة لها. تعمل حلول الفهرسة على حل هذه المشكلة من خلال إنشاء بنية قواعد بيانات مفهرسة تعمل على تمكين استدعاء البيانات بشكل سريع وأكثر نجاعة. توفر معظم حلول الفهرسة تزامنا للبيانات في الوقت الحقيقي، مما يضمن أن تقوم التطبيقات اللامركزية بإعلامنا على الفور عند حدوث الأحداث ذات الصلة. هذا يسمح للتطبيقات اللامركزية بتشغيل الإجراءات بشكل مباشر للاستجابة للأحداث التي تتم على السلسلة بسرعة ودقة.
أحد الحلول الأكثر شهرة هو The Graph ، والتي هي عبارة عن بروتوكول فهرسة لا مركزي، لتطوير الرسوم البيانية الفرعية. على أي حال ، العديد من موفري الخوادم nodes مثل QuickNode يقدمون ميزات الفهرسة اليوم.
تخزين البيانات
على الرغم من أن البلوكتشين مناسبة لحفظ بيانات التعاملات، إلا أنها ليست ناجحة لحفظ بيانات ذات الحجم الكبير، وذلك بسبب مشاكل التوسع و التكلفة التي تعاني منها. عادة ما يتم استخدام حلول التخزين اللامركزية مثل IPFS أو Filecoin لحفظ بيانات التطبيقات اللامركزية خارج السلسلة، مما يوفر خيارات حفظ أكثر نجاعة وأقل في التكلفة. توفر هذه الخدمات خصائص التشفير والمشاركة لضمان سلامة وخصوصية البيانات. كما يمكن استخدام مكونات تخزين البيانات المركزية عند بناء التطبيقات اللامركزية، ولكنها لن تكون لامركزية أبدا (وذلك بنفس طريقة الاستضافة التي ناقشناها سابقا).
الأوراكل:
تعمل العقود الذكية على تنفيذ منطق تم تعريفه سابقا على معلومات متوفرة بداخل شبكة البلوكتشين. على أي حال، تتطلب العديد من حالات الاستخدام بيانات من مصادر خارجية (مثل، الطقس ، أسعار الأسهم ، أو نتائج المباريات الرياضية) لتعمل بشكل فعال. تعمل الأوراكل على سد هذا الاحتياج من خلال توفير بيانات خارج السلسلة إلى العقود الذكية. هناك بعض الأوراكل الشائعة مثل، Chainlink و UMA.
الخلاصة:
تتألف النظرة الشاملة للتطبيقات اللامركزية من العديد من الطبقات و المكونات، كما أن هناك عدد من المنهجيات المختلفة التي يمكن أن يتم تطبيقها في المستقبل القريب. كما تعمل هذه النوعية من التطبيقات على تحويل مشهد الإنترنت من الاحتكار إلى التوافر، وكذلك تساهم في حفظ حقوق المستخدمين من خلال ربط أصولهم الرقمية بالمحافظ اللامركزية الخاصة بهم ، دون اللجوء إلى الأنظمة المركزية.
استعرض هذا المقال البنية والهيكلة التي يتم بناء التطبيقات اللامركزية من خلالها، حيث تعتمد هذه التطبيقات على شبكة البلوكتشين في أدائها وأعمالها. تتألف هذه النوعية من التطبيقات على Frontend والتي يتم عادة صناعتها بنفس طريقة صناعة التطبيقات المركزية التقليدية. أما backend فهي تحتوي على مجموعة من الأجهزة اللامركزية المبنية على شبكة البلوكتشين وتحكمها خوارزميات الإجماع في أدائها. كما عرض هذا المقال طرق استضافة التطبيقات اللامركزية، حيث يجب استضافتها من خلال أنظمة لامركزية تناسب طبيعة عملها. كما شرح أنواع المحافظ اللامركزية و طرق استخدامها، ثم وضح وبين ماهية العقود الذكية وأجهزة Node ، وانتهى هذا المقال ببيان حلول الفهرسة وتخزين البيانات في التطبيقات اللامركزية.
Powered by Froala Editor
التعليقات (0)
لم يتم إضافة ردود حتى الآن...