في هذا القسم التالي من بناء على web3، يوسع Nader Dabit، مهندس العلاقات مع المطورين في Edge & Node، على الكومة web3 وكيف يمكن للمطورين تصوّر مختلف جوانب البناء على web3.
لقد انتقلت إلى الويب3 في أبريل 2021 بعد أن كنت مطورًا تقليديًا للشبكة الكاملة لمدة حوالي 10 سنوات. أثناء الغوص في كل هذه التقنيات والأفكار الجديدة، كان أول شيء أردت معرفته هو "ما هو تراكم الويب3؟".
عند بناء تطبيق ويب تقليدي أو تطبيق محمول، غالبًا ما أعتمد على مجموعة من الكتل الأساسية لإنجاز المهمة.
باستخدام هذه المكونات الأساسية، يمكنني بناء معظم أنواع التطبيقات التي أود أو على الأقل الوصول إلى معظم الطريق. إذًا كيف كان هذا يبدو في web3؟
يتبين أن الإجابة على هذا ليست بسيطة لأنها:
كان من الصعب أيضًا بالنسبة لي فهم كيفية البدء والعمل على تطبيقات web3، لأنني كنت أقترب من المشاكل بنفس الطريقة التي كنت أستخدمها في عالم web2.
بعد العمل والبحث والتجربة وبناء الأشياء على مدى الثمانية أشهر الماضية أو نحو ذلك ، أود أن أشارك ما تعلمته.
قبل أن نحدد كومة الويب3، دعنا نحاول تحديد الويب3. هناك تعريفات لا تحصى تعتمد على من تسأل، ولكن بالنسبة لي أجدهذاتعريف نقطة على
Web3 هو مجموعة البروتوكولات التي تمكن تطبيقات مفcentralized تمامًا.
مع هذه الكومة التكنولوجية اللامركزية، يمكننا البدء في بناء تطبيقات لامركزية تمتلك تبعاتها وخصائصها الخاصة.
بعض السمات التي تمكنها web3 هي:
في حين أن بعض التطبيقات التي تم بناؤها على تكنولوجيا اللامركزية ستحل محل سابقيها، تمكنت أيضًا براديم جديد من التطبيقات بواسطة الأساسيات الجديدة التي أتاحتها التقنيات السلسلة.
المدفوعات الرقمية الأصلية والبنية الخلفية العامة - مثل تعلم الآلة والأجهزة المحمولة والواقع الافتراضي والعناصر التكنولوجية الأخرى، والمنصات والمكونات الأساسية - تمكن من بناء أنواع جديدة تمامًا من التطبيقات، بعضها لم يتم تصوره بعد.
هل يعني هذا أن كل شيء سيتم استبداله بويب 3؟ ليس بالضرورة. بينما أعتقد أن البناء على كومة تكنولوجيا لامركزية هو خيار أفضل بكثير لبعض أنواع التطبيقات - مثل أي قرار تقني تقريبًا ، يعتمد على ما تقوم ببنائه.
لنبدأ الآن في الغوص في كومة الويب3، المقسمة إلى هذه المجموعة من الفئات:
هناك عدد لا يحصى من البلوكشينات التي يمكنك اختيار البناء عليها. ليس هناك واحدة واحدة تعتبر 'الأفضل'، بدلاً من ذلك يجب عليك أن تنظر في التنازلات المختلفة بينها.
شيء مهم في كثير من الأحيان بالنسبة لي عند تعلم شيء جديد هو فكرة التطبيق مبدأ باريتوإلى ما أتعلم. أي ما هو الطريقة الأكثر كفاءة للحصول على أقصى استفادة من تلك الفترة من الوقت والجهد. باتباع هذه الفكرة يمكنني الحصول على أكبر قدر من الجذب والزخم أثناء تعلم شيء جديد في أقصر وقت ممكن.
في عالم البلوكشين، تعلم الصلادة و الEVM(أو آلة العقد الافتراضية) قد تكون الرهان الأفضل عند البدء كمطور بلوكشين. باستخدام هذه المهارات (وكومة التقنية) ، يمكنك بناء ليس فقط لـ Ethereum ، ولكن لـ Ethereum Layer 2s الأخرى ، والسلاسل الفرعية ، وحتى بلوكشينات أخرى مثل Avalanche و Fantom و Celo.
ومع ذلك، يبدأ Rust في أن يصبح أكثر شهرة في عالم تقنية البلوكشين، مع وجود دعم فئة أولى لـ Solana و NEAR و Polkadot وغيرها. من المحتمل أنك لن تخطئ حقًا في تعلم أيًا منهما، ولكن بالنسبة للمبتدئين، أعتقد أن Solidity ستظل الخيار الأفضل إذا سألني شخص اليوم.
بالإضافة إلى هذه النصيحة، إليك عينة غير كاملة من سلاسل الكتل التي تحتوي على مزيج قوي من التكنولوجيا والفائدة والمجتمع والزخم والقدرة على المستقبل:
عند التفاعل مع الشبكة، ستحتاج إلى استخدام نقطة نهاية RPC.
هناك بعض الطرق يمكنك القيام بها:
يتم توفير نقاط نهاية RPC العامة غالبًا من قبل الشبكة، ولكن بالنسبة لمعظم تطبيقات الإنتاج ستريد الاستفادة من نقاط نهاية الخاصة بك لأنها ليست مستقرة أو موصى بها للإنتاج.
هناك عدد قليل من مزودي خدمات RPC هناك، وهنا بعضها:
هناك أيضًا حلاً ويب 3 / مركزي،شبكة Pocketأن يبدو أنه يكتسب زخمًا.
أي من هذه الخيارات ربما تكون رهان جيد للتفاعل مباشرة مع شبكتك.
لتطوير EVM، هناك بضع بيئات تطوير جيدة متاحة:
لتطوير سولانا، مرساةأصبح بسرعة نقطة البداية للمطورين الجدد. يوفر واجهة سطر الأوامر (CLI) لإنشاء وبناء واختبار برامج Solana بالإضافة إلى مكتبات العملاء التي يمكنك استخدامها لإنشاء واجهات أمامية. كما يتضمن لغة برمجة مجردة (DSL) تجرد العديد من التعقيدات التي غالباً ما يواجهها المطورون عند بدء التطوير باستخدام Solana و Rust.
أين نخزن الصور ومقاطع الفيديو والملفات الأخرى في web3؟ تخزين أي شيء بهذا الحجم على السلسلة عادة ما يكون مكلفًا بشكل لا يمكن تحمله، لذلك ربما لا نرغب في تخزينها هناك.
بدلاً من ذلك، يمكننا استخدام واحدة من عدد قليل من بروتوكولات تخزين الملفات:
بالإضافة إلى تخزين الملفات وتخزين السلسلة، قد تحتاج أيضًا إلى تخزين البيانات خارج السلسلة. قد تستخدم هذه الأنواع من الحلول بشكل مماثل لكيفية استخدامك لقاعدة بيانات في تكنولوجيا الشبكة التقليدية، ولكن بدلاً من ذلك يتم تكرارها عبر عدد n من العقد على شبكة لامركزية، وبالتالي أكثر موثوقية (على الأقل في النظرية).
بعض الخيارات هي:
من حيث النضج، رأيي هو أن نظام البيئة الخارجية لحلول التخزين ليس بعد في المكان الذي يجب أن يكون عليه لبناء بعض الحالات الاستخدام المتقدمة التي قد يرغب بعض المطورين فيها. بعض التحديات هنا تتمثل في البيانات في الوقت الحقيقي، وكشف النزاع وحله، وتفويض الكتابة، والتوثيق، وتجربة المطور العامة.
دمج حلول البيانات غير المتصلة مع بروتوكولات البلوكشين هو واحد من أكبر العقبات التي نحتاج إلى تجاوزها قبل أن يكون لدينا تراكم بروتوكول متميز قادر على دعم أي نوع من التطبيقات.
هناك الكثير من الاختلافات في الطريقة التي نتفاعل بها ونبني على أعلى مستوى من البلوكشين مقارنة بقواعد البيانات في تقنية الشبكة التقليدية. مع البلوكشين، لا يتم تخزين البيانات بتنسيق يمكن استهلاكه بكفاءة أو بسهولة مباشرة من التطبيقات الأخرى أو الواجهات الأمامية.
البلوكشين مُحسّن لعمليات الكتابة. غالبًا ما تسمع بالابتكارات التي تدور حول عدد عمليات التداول في الثانية، وزمن الكتلة، وتكلفة التداول. يتم كتابة بيانات البلوكشين في كتل على مر الزمن، مما يجعل أي عمليات قراءة غير أساسية مستحيلة.
في معظم التطبيقات ، تحتاج إلى ميزات مثل البيانات العلاقاتية ، والفرز ، والتصفية ، والبحث الكامل النصي ، وترقيم الصفحات والعديد من أنواع القدرات الاستعلامية الأخرى. من أجل القيام بذلك ، تحتاج البيانات إلى الفهرسة والتنظيم للاسترجاع الفعال.
تقليديا، هذا هو العمل الذي تقوم به قواعد البيانات في تكوين التكنولوجيا المركزية، لكن طبقة الفهرسة كانت مفقودة في تكوين الويب3.
الرسم البيانيبروتوكول لفهرسة واستعلام البيانات على سلسلة الكتل التي يجعل هذه العملية أسهل بكثير ويقدم حلاً لامركزيًا للقيام بذلك. يمكن لأي شخص بناء ونشر واجهات برمجة تطبيقات GraphQL المفتوحة، تُسمى الرسوم البيانية الفرعية، مما يجعل من السهل استعلام بيانات سلسلة الكتل.
لمعرفة المزيد حول Gate.io، تحقق من المستنداتهنا or my tutorial هنا.
الهوية هي نموذج مختلف تمامًا في web3. في web2، يعتمد التوثيق تقريبًا دائمًا على معلومات شخصية للمستخدم. يتم جمع هذه المعلومات عادةً إما عبر نموذج أو موفر OAuth يطلب من المستخدم تسليمها مقابل الوصول إلى التطبيق.
في web3، تدور الهوية تمامًا حول فكرة المحافظ و علم التشفير العام.
بينما يؤدي اسم "المحفظة" وظيفته، وجدت أن الأشخاص الجدد في الويب3 يجدون المصطلحات مربكة فيما يتعلق بالمصادقة والهوية. آمل أنه في المستقبل يمكننا أن نجد طريقة أخرى لنقل ما هي المحفظة، حيث أنها تجمع بين جوانب مالية وأيضًا هوية وسمعة.
كمطور، ستحتاج إلى فهم كيفية الوصول إلى محفظة المستخدم والتفاعل معها بطرق مختلفة.
على المستوى الأساسي جدًا (وهو متطلب شائع جدًا)، قد ترغب في طلب الوصول إلى محفظة المستخدم. للقيام بذلك، ستكون عادةً قادرًا على الوصول إلى محفظة المستخدم في سياق النافذة (متصفح الويب) أو باستخدام شيء مثل WalletConnectأومحول محفظة سولانا.
على سبيل المثال، إذا كان لديهم محفظة Ethereum متاحة، ستتمكن من الوصول إلى window.ethereum. نفس الأمر بالنسبة لـ Solana (window.solana)، و Arweave (window.arweaveWallet)، وبعض الأمور الأخرى. WalletConnect جيد للويب المحمول و React Native حيث يسمح للمستخدمين بالتفويض باستخدام محافظهم المحمولة مباشرة من الجهاز.
إذا كنت ترغب في التعامل مع المصادقة بنفسك، يمكنك السماح للمستخدم بتوقيع المعاملة ثم فك تشفيرها في مكان ما للمصادقة على المستخدم، ولكن هذا عادة ما يتطلب خادمًا.هناهو مثال على كيفية ذلك قد يبدو باستخدام محفظة EVM، وهناهو مثال على كيفية القيام بذلك مع سولانا / فانتوم.
ماذا عن إدارة ملفات تعريف المستخدمين بطريقة لامركزية؟شبكة السيراميكتقدم أقوى بروتوكول ومجموعة من الأدوات لإدارة الهوية اللامركزية. أصدروا مؤخرًامقال في المدونةتوضيح بعض أحدث تحديثاتهم وتقديم بعض الإرشادات حول كيفية عمل جميع الأدوات معًا. سأبدأ من هناك ثم أستكشفوثائقهملكسب فهم حول كيفية البدء في البناء، والنظر في التحقق من مشروعي المثالهناالتي تستخدم السيراميكself.id.
إذا كنت ترغب في جلب مستخدمENSسجلات النص ، تقدم مكتبة ENSJS واجهة برمجة تطبيقات جيدة لاسترجاع بيانات المستخدم:
const ens = new ENS({ provider, ensAddress: getEnsAddress(‘1’) })
const content = await ens.name(‘sha.eth’).getText(‘avatar’
SpruceID هو أيضا شيء يبدو واعدًا ولكني لم أجربه بعد.
سيراميك وراتنج الصنوبركلاهما ينفذانوي3C DIDالمواصفات، وهو شيء آخر يمكنني أيضًا النظر إليه كمكوّن أساسي في web3. وبذلك، فإن أي تنفيذ مركزي لـ DIDs يتعارض مع فكرة ما تحاول المواصفة تحقيقه.
بقدر ما تتعلق بأطر JavaScript، يمكنك بناء أي شيء تريده حقًا، حيث إن SDKs سلسلة الكتل الخاصة بالعميل تعمل بشكل رئيسي بغض النظر عن الإطار. ومع ذلك، يتم بناء عدد هائل من المشاريع والأمثلة باستخدام React. وهناك أيضًا عدد قليل من المكتبات مثل محول محفظة سولاناالتي تقدم مرافق إضافية لـ React، لذلك أعتقد أن تعلم React أو التعرف عليه سيكون ربما خطوة ذكية.
بالنسبة لأدوات تطوير البرمجيات على الجانب العميل في إيثيريوم، هناك web3.js و ethers.js. بالنسبة لي، إيثرز أكثر وصولاً ولديها توثيق أفضل، على الرغم من أن web3.js كان موجوداً لفترة أطول.
في سولانا، ستعمل على الأرجح مع@solana/web3.jsو / أومرساة. وجدت مكتبات عملاء Anchor أن تكون الخيار الأمثل لي في بناء برامج Solana لأنني استخدم إطار Anchor على أي حال، وجدت أنه أسهل بكثير لفهم من ذلك الحين@solana/web3.js.
تتيح البوابات للمطورين الوصول إلى قراءة البيانات الحقيقية والأنظمة الخارجية من داخل عقد ذكي.
على سبيل المثال، يتطلب معظم التطبيقات المالية معرفة البيانات والأحداث الحقيقية التي تحدث خارج السلسلة، لذا فإن البوابات مهمة بشكل خاص في تطبيقات التمويل اللامركزي.
Chainlinkهو بوابة تمكن الوصول إلى البيانات العالمية الحقيقية والحساب خارج السلسلة بينما تحافظ على ضمانات الأمان والموثوقية الجوهرية المتعلقة بتكنولوجيا البلوكشين.
فلوكسهو بوابة عابرة للسلاسل توفر لعقود الذكاء الوصول إلى تغذيات بيانات آمنة اقتصاديًا.
Radicleهو بروتوكول تعاون الشفرة المركزية المبني على Git. يمكن اعتباره نسخة مركزية من GitHub.
ليفبيرهو شبكة بث فيديو لامركزية. إنه ناضج ومستخدم على نطاق واسع بأكثر من 70،000 وحدة معالجة الرسومات متصلة على الشبكة.
هذا المنشور سيكون وثيق الصلة الذي أحافظ عليه أثناء تعلمي وتجربتي وجمعي للتعليقات من المطورين الذين يبنون في web3.
إذا كان لديك أي تعليقات أو أفكار حول شيء ما ينقصني هنا، يرجى التواصل ومشاركة أفكارك معي. إنه من المثير رؤية كل النشاط الذي يحدث حول web3 حيث يقوم المطورون بالانخراط والمشاركة. بينما لا تزال البنية التحتية قيد التطور، فإن رؤية بناء بروتوكولات وتطبيقات حقا لامركزية تتيح للناس التنسيق دون الحاجة إلى منح السلطة والتحكم للشركات الكبيرة هي رؤية مهمة ونحن قريبون من تحقيق هذه الرؤية.
في هذا القسم التالي من بناء على web3، يوسع Nader Dabit، مهندس العلاقات مع المطورين في Edge & Node، على الكومة web3 وكيف يمكن للمطورين تصوّر مختلف جوانب البناء على web3.
لقد انتقلت إلى الويب3 في أبريل 2021 بعد أن كنت مطورًا تقليديًا للشبكة الكاملة لمدة حوالي 10 سنوات. أثناء الغوص في كل هذه التقنيات والأفكار الجديدة، كان أول شيء أردت معرفته هو "ما هو تراكم الويب3؟".
عند بناء تطبيق ويب تقليدي أو تطبيق محمول، غالبًا ما أعتمد على مجموعة من الكتل الأساسية لإنجاز المهمة.
باستخدام هذه المكونات الأساسية، يمكنني بناء معظم أنواع التطبيقات التي أود أو على الأقل الوصول إلى معظم الطريق. إذًا كيف كان هذا يبدو في web3؟
يتبين أن الإجابة على هذا ليست بسيطة لأنها:
كان من الصعب أيضًا بالنسبة لي فهم كيفية البدء والعمل على تطبيقات web3، لأنني كنت أقترب من المشاكل بنفس الطريقة التي كنت أستخدمها في عالم web2.
بعد العمل والبحث والتجربة وبناء الأشياء على مدى الثمانية أشهر الماضية أو نحو ذلك ، أود أن أشارك ما تعلمته.
قبل أن نحدد كومة الويب3، دعنا نحاول تحديد الويب3. هناك تعريفات لا تحصى تعتمد على من تسأل، ولكن بالنسبة لي أجدهذاتعريف نقطة على
Web3 هو مجموعة البروتوكولات التي تمكن تطبيقات مفcentralized تمامًا.
مع هذه الكومة التكنولوجية اللامركزية، يمكننا البدء في بناء تطبيقات لامركزية تمتلك تبعاتها وخصائصها الخاصة.
بعض السمات التي تمكنها web3 هي:
في حين أن بعض التطبيقات التي تم بناؤها على تكنولوجيا اللامركزية ستحل محل سابقيها، تمكنت أيضًا براديم جديد من التطبيقات بواسطة الأساسيات الجديدة التي أتاحتها التقنيات السلسلة.
المدفوعات الرقمية الأصلية والبنية الخلفية العامة - مثل تعلم الآلة والأجهزة المحمولة والواقع الافتراضي والعناصر التكنولوجية الأخرى، والمنصات والمكونات الأساسية - تمكن من بناء أنواع جديدة تمامًا من التطبيقات، بعضها لم يتم تصوره بعد.
هل يعني هذا أن كل شيء سيتم استبداله بويب 3؟ ليس بالضرورة. بينما أعتقد أن البناء على كومة تكنولوجيا لامركزية هو خيار أفضل بكثير لبعض أنواع التطبيقات - مثل أي قرار تقني تقريبًا ، يعتمد على ما تقوم ببنائه.
لنبدأ الآن في الغوص في كومة الويب3، المقسمة إلى هذه المجموعة من الفئات:
هناك عدد لا يحصى من البلوكشينات التي يمكنك اختيار البناء عليها. ليس هناك واحدة واحدة تعتبر 'الأفضل'، بدلاً من ذلك يجب عليك أن تنظر في التنازلات المختلفة بينها.
شيء مهم في كثير من الأحيان بالنسبة لي عند تعلم شيء جديد هو فكرة التطبيق مبدأ باريتوإلى ما أتعلم. أي ما هو الطريقة الأكثر كفاءة للحصول على أقصى استفادة من تلك الفترة من الوقت والجهد. باتباع هذه الفكرة يمكنني الحصول على أكبر قدر من الجذب والزخم أثناء تعلم شيء جديد في أقصر وقت ممكن.
في عالم البلوكشين، تعلم الصلادة و الEVM(أو آلة العقد الافتراضية) قد تكون الرهان الأفضل عند البدء كمطور بلوكشين. باستخدام هذه المهارات (وكومة التقنية) ، يمكنك بناء ليس فقط لـ Ethereum ، ولكن لـ Ethereum Layer 2s الأخرى ، والسلاسل الفرعية ، وحتى بلوكشينات أخرى مثل Avalanche و Fantom و Celo.
ومع ذلك، يبدأ Rust في أن يصبح أكثر شهرة في عالم تقنية البلوكشين، مع وجود دعم فئة أولى لـ Solana و NEAR و Polkadot وغيرها. من المحتمل أنك لن تخطئ حقًا في تعلم أيًا منهما، ولكن بالنسبة للمبتدئين، أعتقد أن Solidity ستظل الخيار الأفضل إذا سألني شخص اليوم.
بالإضافة إلى هذه النصيحة، إليك عينة غير كاملة من سلاسل الكتل التي تحتوي على مزيج قوي من التكنولوجيا والفائدة والمجتمع والزخم والقدرة على المستقبل:
عند التفاعل مع الشبكة، ستحتاج إلى استخدام نقطة نهاية RPC.
هناك بعض الطرق يمكنك القيام بها:
يتم توفير نقاط نهاية RPC العامة غالبًا من قبل الشبكة، ولكن بالنسبة لمعظم تطبيقات الإنتاج ستريد الاستفادة من نقاط نهاية الخاصة بك لأنها ليست مستقرة أو موصى بها للإنتاج.
هناك عدد قليل من مزودي خدمات RPC هناك، وهنا بعضها:
هناك أيضًا حلاً ويب 3 / مركزي،شبكة Pocketأن يبدو أنه يكتسب زخمًا.
أي من هذه الخيارات ربما تكون رهان جيد للتفاعل مباشرة مع شبكتك.
لتطوير EVM، هناك بضع بيئات تطوير جيدة متاحة:
لتطوير سولانا، مرساةأصبح بسرعة نقطة البداية للمطورين الجدد. يوفر واجهة سطر الأوامر (CLI) لإنشاء وبناء واختبار برامج Solana بالإضافة إلى مكتبات العملاء التي يمكنك استخدامها لإنشاء واجهات أمامية. كما يتضمن لغة برمجة مجردة (DSL) تجرد العديد من التعقيدات التي غالباً ما يواجهها المطورون عند بدء التطوير باستخدام Solana و Rust.
أين نخزن الصور ومقاطع الفيديو والملفات الأخرى في web3؟ تخزين أي شيء بهذا الحجم على السلسلة عادة ما يكون مكلفًا بشكل لا يمكن تحمله، لذلك ربما لا نرغب في تخزينها هناك.
بدلاً من ذلك، يمكننا استخدام واحدة من عدد قليل من بروتوكولات تخزين الملفات:
بالإضافة إلى تخزين الملفات وتخزين السلسلة، قد تحتاج أيضًا إلى تخزين البيانات خارج السلسلة. قد تستخدم هذه الأنواع من الحلول بشكل مماثل لكيفية استخدامك لقاعدة بيانات في تكنولوجيا الشبكة التقليدية، ولكن بدلاً من ذلك يتم تكرارها عبر عدد n من العقد على شبكة لامركزية، وبالتالي أكثر موثوقية (على الأقل في النظرية).
بعض الخيارات هي:
من حيث النضج، رأيي هو أن نظام البيئة الخارجية لحلول التخزين ليس بعد في المكان الذي يجب أن يكون عليه لبناء بعض الحالات الاستخدام المتقدمة التي قد يرغب بعض المطورين فيها. بعض التحديات هنا تتمثل في البيانات في الوقت الحقيقي، وكشف النزاع وحله، وتفويض الكتابة، والتوثيق، وتجربة المطور العامة.
دمج حلول البيانات غير المتصلة مع بروتوكولات البلوكشين هو واحد من أكبر العقبات التي نحتاج إلى تجاوزها قبل أن يكون لدينا تراكم بروتوكول متميز قادر على دعم أي نوع من التطبيقات.
هناك الكثير من الاختلافات في الطريقة التي نتفاعل بها ونبني على أعلى مستوى من البلوكشين مقارنة بقواعد البيانات في تقنية الشبكة التقليدية. مع البلوكشين، لا يتم تخزين البيانات بتنسيق يمكن استهلاكه بكفاءة أو بسهولة مباشرة من التطبيقات الأخرى أو الواجهات الأمامية.
البلوكشين مُحسّن لعمليات الكتابة. غالبًا ما تسمع بالابتكارات التي تدور حول عدد عمليات التداول في الثانية، وزمن الكتلة، وتكلفة التداول. يتم كتابة بيانات البلوكشين في كتل على مر الزمن، مما يجعل أي عمليات قراءة غير أساسية مستحيلة.
في معظم التطبيقات ، تحتاج إلى ميزات مثل البيانات العلاقاتية ، والفرز ، والتصفية ، والبحث الكامل النصي ، وترقيم الصفحات والعديد من أنواع القدرات الاستعلامية الأخرى. من أجل القيام بذلك ، تحتاج البيانات إلى الفهرسة والتنظيم للاسترجاع الفعال.
تقليديا، هذا هو العمل الذي تقوم به قواعد البيانات في تكوين التكنولوجيا المركزية، لكن طبقة الفهرسة كانت مفقودة في تكوين الويب3.
الرسم البيانيبروتوكول لفهرسة واستعلام البيانات على سلسلة الكتل التي يجعل هذه العملية أسهل بكثير ويقدم حلاً لامركزيًا للقيام بذلك. يمكن لأي شخص بناء ونشر واجهات برمجة تطبيقات GraphQL المفتوحة، تُسمى الرسوم البيانية الفرعية، مما يجعل من السهل استعلام بيانات سلسلة الكتل.
لمعرفة المزيد حول Gate.io، تحقق من المستنداتهنا or my tutorial هنا.
الهوية هي نموذج مختلف تمامًا في web3. في web2، يعتمد التوثيق تقريبًا دائمًا على معلومات شخصية للمستخدم. يتم جمع هذه المعلومات عادةً إما عبر نموذج أو موفر OAuth يطلب من المستخدم تسليمها مقابل الوصول إلى التطبيق.
في web3، تدور الهوية تمامًا حول فكرة المحافظ و علم التشفير العام.
بينما يؤدي اسم "المحفظة" وظيفته، وجدت أن الأشخاص الجدد في الويب3 يجدون المصطلحات مربكة فيما يتعلق بالمصادقة والهوية. آمل أنه في المستقبل يمكننا أن نجد طريقة أخرى لنقل ما هي المحفظة، حيث أنها تجمع بين جوانب مالية وأيضًا هوية وسمعة.
كمطور، ستحتاج إلى فهم كيفية الوصول إلى محفظة المستخدم والتفاعل معها بطرق مختلفة.
على المستوى الأساسي جدًا (وهو متطلب شائع جدًا)، قد ترغب في طلب الوصول إلى محفظة المستخدم. للقيام بذلك، ستكون عادةً قادرًا على الوصول إلى محفظة المستخدم في سياق النافذة (متصفح الويب) أو باستخدام شيء مثل WalletConnectأومحول محفظة سولانا.
على سبيل المثال، إذا كان لديهم محفظة Ethereum متاحة، ستتمكن من الوصول إلى window.ethereum. نفس الأمر بالنسبة لـ Solana (window.solana)، و Arweave (window.arweaveWallet)، وبعض الأمور الأخرى. WalletConnect جيد للويب المحمول و React Native حيث يسمح للمستخدمين بالتفويض باستخدام محافظهم المحمولة مباشرة من الجهاز.
إذا كنت ترغب في التعامل مع المصادقة بنفسك، يمكنك السماح للمستخدم بتوقيع المعاملة ثم فك تشفيرها في مكان ما للمصادقة على المستخدم، ولكن هذا عادة ما يتطلب خادمًا.هناهو مثال على كيفية ذلك قد يبدو باستخدام محفظة EVM، وهناهو مثال على كيفية القيام بذلك مع سولانا / فانتوم.
ماذا عن إدارة ملفات تعريف المستخدمين بطريقة لامركزية؟شبكة السيراميكتقدم أقوى بروتوكول ومجموعة من الأدوات لإدارة الهوية اللامركزية. أصدروا مؤخرًامقال في المدونةتوضيح بعض أحدث تحديثاتهم وتقديم بعض الإرشادات حول كيفية عمل جميع الأدوات معًا. سأبدأ من هناك ثم أستكشفوثائقهملكسب فهم حول كيفية البدء في البناء، والنظر في التحقق من مشروعي المثالهناالتي تستخدم السيراميكself.id.
إذا كنت ترغب في جلب مستخدمENSسجلات النص ، تقدم مكتبة ENSJS واجهة برمجة تطبيقات جيدة لاسترجاع بيانات المستخدم:
const ens = new ENS({ provider, ensAddress: getEnsAddress(‘1’) })
const content = await ens.name(‘sha.eth’).getText(‘avatar’
SpruceID هو أيضا شيء يبدو واعدًا ولكني لم أجربه بعد.
سيراميك وراتنج الصنوبركلاهما ينفذانوي3C DIDالمواصفات، وهو شيء آخر يمكنني أيضًا النظر إليه كمكوّن أساسي في web3. وبذلك، فإن أي تنفيذ مركزي لـ DIDs يتعارض مع فكرة ما تحاول المواصفة تحقيقه.
بقدر ما تتعلق بأطر JavaScript، يمكنك بناء أي شيء تريده حقًا، حيث إن SDKs سلسلة الكتل الخاصة بالعميل تعمل بشكل رئيسي بغض النظر عن الإطار. ومع ذلك، يتم بناء عدد هائل من المشاريع والأمثلة باستخدام React. وهناك أيضًا عدد قليل من المكتبات مثل محول محفظة سولاناالتي تقدم مرافق إضافية لـ React، لذلك أعتقد أن تعلم React أو التعرف عليه سيكون ربما خطوة ذكية.
بالنسبة لأدوات تطوير البرمجيات على الجانب العميل في إيثيريوم، هناك web3.js و ethers.js. بالنسبة لي، إيثرز أكثر وصولاً ولديها توثيق أفضل، على الرغم من أن web3.js كان موجوداً لفترة أطول.
في سولانا، ستعمل على الأرجح مع@solana/web3.jsو / أومرساة. وجدت مكتبات عملاء Anchor أن تكون الخيار الأمثل لي في بناء برامج Solana لأنني استخدم إطار Anchor على أي حال، وجدت أنه أسهل بكثير لفهم من ذلك الحين@solana/web3.js.
تتيح البوابات للمطورين الوصول إلى قراءة البيانات الحقيقية والأنظمة الخارجية من داخل عقد ذكي.
على سبيل المثال، يتطلب معظم التطبيقات المالية معرفة البيانات والأحداث الحقيقية التي تحدث خارج السلسلة، لذا فإن البوابات مهمة بشكل خاص في تطبيقات التمويل اللامركزي.
Chainlinkهو بوابة تمكن الوصول إلى البيانات العالمية الحقيقية والحساب خارج السلسلة بينما تحافظ على ضمانات الأمان والموثوقية الجوهرية المتعلقة بتكنولوجيا البلوكشين.
فلوكسهو بوابة عابرة للسلاسل توفر لعقود الذكاء الوصول إلى تغذيات بيانات آمنة اقتصاديًا.
Radicleهو بروتوكول تعاون الشفرة المركزية المبني على Git. يمكن اعتباره نسخة مركزية من GitHub.
ليفبيرهو شبكة بث فيديو لامركزية. إنه ناضج ومستخدم على نطاق واسع بأكثر من 70،000 وحدة معالجة الرسومات متصلة على الشبكة.
هذا المنشور سيكون وثيق الصلة الذي أحافظ عليه أثناء تعلمي وتجربتي وجمعي للتعليقات من المطورين الذين يبنون في web3.
إذا كان لديك أي تعليقات أو أفكار حول شيء ما ينقصني هنا، يرجى التواصل ومشاركة أفكارك معي. إنه من المثير رؤية كل النشاط الذي يحدث حول web3 حيث يقوم المطورون بالانخراط والمشاركة. بينما لا تزال البنية التحتية قيد التطور، فإن رؤية بناء بروتوكولات وتطبيقات حقا لامركزية تتيح للناس التنسيق دون الحاجة إلى منح السلطة والتحكم للشركات الكبيرة هي رؤية مهمة ونحن قريبون من تحقيق هذه الرؤية.