تحديد كومة web3

متوسط1/8/2024, 2:50:04 AM
يستكشف المقال تطبيق وتطوير Web3 في تكنولوجيا البلوكشين.

في هذا القسم التالي من بناء على web3، يوسع Nader Dabit، مهندس العلاقات مع المطورين في Edge & Node، على الكومة web3 وكيف يمكن للمطورين تصوّر مختلف جوانب البناء على web3.


لقد انتقلت إلى الويب3 في أبريل 2021 بعد أن كنت مطورًا تقليديًا للشبكة الكاملة لمدة حوالي 10 سنوات. أثناء الغوص في كل هذه التقنيات والأفكار الجديدة، كان أول شيء أردت معرفته هو "ما هو تراكم الويب3؟".

عند بناء تطبيق ويب تقليدي أو تطبيق محمول، غالبًا ما أعتمد على مجموعة من الكتل الأساسية لإنجاز المهمة.

  1. خوادم واجهة برمجة التطبيقات / التطبيقات (REST أو GraphQL)
  2. طبقة المصادقة (مُدارة أو مُطوَّلة يدويًا)
  3. قاعدة بيانات
  4. الإطارات والمنصات والمكتبات الجانبية للعميل
  5. تخزين الملفات

باستخدام هذه المكونات الأساسية، يمكنني بناء معظم أنواع التطبيقات التي أود أو على الأقل الوصول إلى معظم الطريق. إذًا كيف كان هذا يبدو في web3؟

يتبين أن الإجابة على هذا ليست بسيطة لأنها:

  1. النموذج مختلف تماما في العديد من الطرق
  2. أدوات web3 وتقنياته والبيئة البيئية أقل نضوجًا من web2

كان من الصعب أيضًا بالنسبة لي فهم كيفية البدء والعمل على تطبيقات web3، لأنني كنت أقترب من المشاكل بنفس الطريقة التي كنت أستخدمها في عالم web2.

بعد العمل والبحث والتجربة وبناء الأشياء على مدى الثمانية أشهر الماضية أو نحو ذلك ، أود أن أشارك ما تعلمته.

ما هو الويب3؟

قبل أن نحدد كومة الويب3، دعنا نحاول تحديد الويب3. هناك تعريفات لا تحصى تعتمد على من تسأل، ولكن بالنسبة لي أجدهذاتعريف نقطة على

Web3 هو مجموعة البروتوكولات التي تمكن تطبيقات مفcentralized تمامًا.

مع هذه الكومة التكنولوجية اللامركزية، يمكننا البدء في بناء تطبيقات لامركزية تمتلك تبعاتها وخصائصها الخاصة.

بعض السمات التي تمكنها web3 هي:

  • البنية التحتية للويب اللامركزية
  • ملكية (البيانات، المحتوى، والمنصة)
  • المدفوعات الرقمية الأصلية
  • الهوية الذاتية السيادية
  • البنية التحتية الموزعة والمعتمدة على الثقة وقوية
  • الخلفيات العلنية والعامة والقابلة للتركيب

في حين أن بعض التطبيقات التي تم بناؤها على تكنولوجيا اللامركزية ستحل محل سابقيها، تمكنت أيضًا براديم جديد من التطبيقات بواسطة الأساسيات الجديدة التي أتاحتها التقنيات السلسلة.

المدفوعات الرقمية الأصلية والبنية الخلفية العامة - مثل تعلم الآلة والأجهزة المحمولة والواقع الافتراضي والعناصر التكنولوجية الأخرى، والمنصات والمكونات الأساسية - تمكن من بناء أنواع جديدة تمامًا من التطبيقات، بعضها لم يتم تصوره بعد.

هل يعني هذا أن كل شيء سيتم استبداله بويب 3؟ ليس بالضرورة. بينما أعتقد أن البناء على كومة تكنولوجيا لامركزية هو خيار أفضل بكثير لبعض أنواع التطبيقات - مثل أي قرار تقني تقريبًا ، يعتمد على ما تقوم ببنائه.

لنبدأ الآن في الغوص في كومة الويب3، المقسمة إلى هذه المجموعة من الفئات:

  • بلوكتشين
  • بيئة تطوير سلسلة الكتل
  • تخزين الملفات
  • بروتوكولات بيانات خارج سلسلة الكتل
  • API (الإستشهاد & الاستحقاق)
  • الهوية
  • العميل (الأطر والمكتبات)
  • المُهَيمِنات
  • البروتوكولات الأخرى

سلسلة الكتل

هناك عدد لا يحصى من البلوكشينات التي يمكنك اختيار البناء عليها. ليس هناك واحدة واحدة تعتبر 'الأفضل'، بدلاً من ذلك يجب عليك أن تنظر في التنازلات المختلفة بينها.

شيء مهم في كثير من الأحيان بالنسبة لي عند تعلم شيء جديد هو فكرة التطبيق مبدأ باريتوإلى ما أتعلم. أي ما هو الطريقة الأكثر كفاءة للحصول على أقصى استفادة من تلك الفترة من الوقت والجهد. باتباع هذه الفكرة يمكنني الحصول على أكبر قدر من الجذب والزخم أثناء تعلم شيء جديد في أقصر وقت ممكن.

في عالم البلوكشين، تعلم الصلادة و الEVM(أو آلة العقد الافتراضية) قد تكون الرهان الأفضل عند البدء كمطور بلوكشين. باستخدام هذه المهارات (وكومة التقنية) ، يمكنك بناء ليس فقط لـ Ethereum ، ولكن لـ Ethereum Layer 2s الأخرى ، والسلاسل الفرعية ، وحتى بلوكشينات أخرى مثل Avalanche و Fantom و Celo.

ومع ذلك، يبدأ Rust في أن يصبح أكثر شهرة في عالم تقنية البلوكشين، مع وجود دعم فئة أولى لـ Solana و NEAR و Polkadot وغيرها. من المحتمل أنك لن تخطئ حقًا في تعلم أيًا منهما، ولكن بالنسبة للمبتدئين، أعتقد أن Solidity ستظل الخيار الأفضل إذا سألني شخص اليوم.

بالإضافة إلى هذه النصيحة، إليك عينة غير كاملة من سلاسل الكتل التي تحتوي على مزيج قوي من التكنولوجيا والفائدة والمجتمع والزخم والقدرة على المستقبل:

  • إيثيريوم- منصة العقد الذكي الأصلية
  • ZK rollups: ZKSync, Starknet, هيرميز - طبقة 2 لإثريوم ذات إنتاجية عالية، ولكنها ليست متوافقة بشكل طبيعي مع EVM
  • اللفات المتفائلة: Arbitrum & تفاؤل - طبقات Ethereum 2، EVM متوافقة (تعرف المزيد حول الاختلافات بين التحفظية و ZK rollupsهنا)
  • بوليغون- سلسلة جانبية لإيثيريوم
  • سولانا- إنه يتميز بسعة عالية، وتكاليف معاملات منخفضة، وأوقات كتل سريعة، ولكنه أصعب في التعلم من EVM (Rust)
  • NEAR- بلوكشين الطبقة 1، يمكن كتابة عقود ذكية بلغة Rust أو Assemblyscript
  • كوزموس- نظام من سلاسل الكتل المتعاونة
  • بولكادوت- منصة حوسبة قائمة على تقنية البلوكشين تمكّن البلوكشينات التي تم بناؤها فوقها من تنفيذ المعاملات بين أنفسها، مما يخلق إنترنت مترابطة من البلوكشينات
  • أورورا- سلسلة متوافقة مع EVM تعمل على بروتوكول NEAR.
  • فانتوم- طبقة 1 متوافقة مع EVM
  • انهيار- طبقة 1 متوافقة مع EVM
  • Celo- طبقة متوافقة مع EVM 1، مصممة لتسهيل إرسال واستقبال وتخزين العملات المشفرة لأي شخص لديه هاتف ذكي
  • تيزوس- طبقة 1 غير متوافقة مع EVM، العديد من مشاريع NFT تستخدمها

عند التفاعل مع الشبكة، ستحتاج إلى استخدام نقطة نهاية RPC.

هناك بعض الطرق يمكنك القيام بها:

  1. الوصول إلى نقطة نهاية RPC العامة
  2. تشغيل العقد الخاصة بك
  3. الوصول إلى مزود العقد كخدمة
  4. الوصول إلى مزوّد عقد ذكي للعقد كخدمة

يتم توفير نقاط نهاية RPC العامة غالبًا من قبل الشبكة، ولكن بالنسبة لمعظم تطبيقات الإنتاج ستريد الاستفادة من نقاط نهاية الخاصة بك لأنها ليست مستقرة أو موصى بها للإنتاج.

هناك عدد قليل من مزودي خدمات RPC هناك، وهنا بعضها:

هناك أيضًا حلاً ويب 3 / مركزي،شبكة Pocketأن يبدو أنه يكتسب زخمًا.

أي من هذه الخيارات ربما تكون رهان جيد للتفاعل مباشرة مع شبكتك.

بيئات تطوير سلسلة الكتل

لتطوير EVM، هناك بضع بيئات تطوير جيدة متاحة:

  • Hardhat(الجافا سكريبت) هو خيار أحدث، لكنه خيار يحظى بمزيد من الشعبية. توثيقهم رائع، والأدوات وتجربة المطور مصقولة، وهو ما كنت شخصيًا استخدامه لبناء تطبيقات الويب اللامركزية.
  • ترافل(JavaScript) هي مجموعة أدوات لبناء وتطوير التطبيقات على EVM. إنها ناضجة واختبرت في المعركة وموثقة بشكل جيد. لقد كانت موجودة لفترة طويلة ويستخدمها العديد من المطورين.
  • المصنعهو بيئة تطوير Solidity جديدة من Paradigm تظهر الكثير من الوعود. من النقاط البارزة القدرة على كتابة الاختبارات في Solidity، ودعم الفزينج، والسرعة (فهي مكتوبة بلغة Rust). لقد كتبت مقدمة منفصلة لهاهنا.
  • براوني ‏هو إطار عمل واختبار مبني على البايثون لتطوير واختبار العقود الذكية لتطوير Solidity / EVM.

لتطوير سولانا، مرساةأصبح بسرعة نقطة البداية للمطورين الجدد. يوفر واجهة سطر الأوامر (CLI) لإنشاء وبناء واختبار برامج Solana بالإضافة إلى مكتبات العملاء التي يمكنك استخدامها لإنشاء واجهات أمامية. كما يتضمن لغة برمجة مجردة (DSL) تجرد العديد من التعقيدات التي غالباً ما يواجهها المطورون عند بدء التطوير باستخدام Solana و Rust.

تخزين الملفات

أين نخزن الصور ومقاطع الفيديو والملفات الأخرى في web3؟ تخزين أي شيء بهذا الحجم على السلسلة عادة ما يكون مكلفًا بشكل لا يمكن تحمله، لذلك ربما لا نرغب في تخزينها هناك.

بدلاً من ذلك، يمكننا استخدام واحدة من عدد قليل من بروتوكولات تخزين الملفات:

  • IPFS - بروتوكول نظام ملفات نقال
    • الايجابيات: إنه موثوق به، موثق بشكل جيد مع بيئة بيئية كبيرة
    • عيوب: إذا لم يتم تثبيت البيانات ، فقد يتم فقدها
  • Arweave- يتيح لك تخزين البيانات بشكل دائم، مقابل رسم معاملة واحد. أنا من معجبي Arweave وقمت بكتابة مدونة حولهاهنا.
  • Filecoin -من Protocol Labs، نفس الفريق الذي بنى IPFS، فإنه بروتوكول مصمم لتوفير نظام لتخزين البيانات الدائمة. هناك مجموعة من الطرقللمطورين للبناء على Filecoin، بما في ذلكتخزين الويب3والذي هو لطيف جدا.
  • سكاي نت - لم أستخدمه بعد في الإنتاج، لكن جربته ويبدو أنه يعمل بشكل جيد. واجهة برمجة التطبيقات هناتبدو رائعة. لدي أسئلة مثل ما هو طول البيانات المحفوظة، وتوافق Skynet مع بروتوكولات أخرى.

بروتوكولات البيانات الخارجة عن السلسلة

بالإضافة إلى تخزين الملفات وتخزين السلسلة، قد تحتاج أيضًا إلى تخزين البيانات خارج السلسلة. قد تستخدم هذه الأنواع من الحلول بشكل مماثل لكيفية استخدامك لقاعدة بيانات في تكنولوجيا الشبكة التقليدية، ولكن بدلاً من ذلك يتم تكرارها عبر عدد n من العقد على شبكة لامركزية، وبالتالي أكثر موثوقية (على الأقل في النظرية).

بعض الخيارات هي:

  • شبكة السيراميك- منصة مفتوحة المصدر ولامركزية لإنشاء واستضافة ومشاركة البيانات. تحتوي Ceramic أيضًا على بروتوكول هوية جميل سأتحدث عنه لاحقًا. على الأرجح، هو حلاً للتخزين خارج السلسلة المفضل لدي في الوقت الحالي.ها هوعرض جميل جدًا.
  • نسيجThreadDB- قاعدة بيانات متعددة الأطراف مبنية على IPFS و Libp2p. إذا فهمت بشكل صحيح، قد تمر بتغيير API كبير في الوقت الحالي. لقد جربته وأظهر بعض الوعود، ولكن الوثائق و DX بحاجة إلى بعض التحسينات.
  • GunDB- قاعدة بيانات لامركزية ند لامركزية. كانت غون موجودة لفترة طويلة و بعض التطبيقات المثيرة للاهتمامتم بناؤها بها.

من حيث النضج، رأيي هو أن نظام البيئة الخارجية لحلول التخزين ليس بعد في المكان الذي يجب أن يكون عليه لبناء بعض الحالات الاستخدام المتقدمة التي قد يرغب بعض المطورين فيها. بعض التحديات هنا تتمثل في البيانات في الوقت الحقيقي، وكشف النزاع وحله، وتفويض الكتابة، والتوثيق، وتجربة المطور العامة.

دمج حلول البيانات غير المتصلة مع بروتوكولات البلوكشين هو واحد من أكبر العقبات التي نحتاج إلى تجاوزها قبل أن يكون لدينا تراكم بروتوكول متميز قادر على دعم أي نوع من التطبيقات.

API (الفهرسة والاستعلام)

هناك الكثير من الاختلافات في الطريقة التي نتفاعل بها ونبني على أعلى مستوى من البلوكشين مقارنة بقواعد البيانات في تقنية الشبكة التقليدية. مع البلوكشين، لا يتم تخزين البيانات بتنسيق يمكن استهلاكه بكفاءة أو بسهولة مباشرة من التطبيقات الأخرى أو الواجهات الأمامية.

البلوكشين مُحسّن لعمليات الكتابة. غالبًا ما تسمع بالابتكارات التي تدور حول عدد عمليات التداول في الثانية، وزمن الكتلة، وتكلفة التداول. يتم كتابة بيانات البلوكشين في كتل على مر الزمن، مما يجعل أي عمليات قراءة غير أساسية مستحيلة.

في معظم التطبيقات ، تحتاج إلى ميزات مثل البيانات العلاقاتية ، والفرز ، والتصفية ، والبحث الكامل النصي ، وترقيم الصفحات والعديد من أنواع القدرات الاستعلامية الأخرى. من أجل القيام بذلك ، تحتاج البيانات إلى الفهرسة والتنظيم للاسترجاع الفعال.

تقليديا، هذا هو العمل الذي تقوم به قواعد البيانات في تكوين التكنولوجيا المركزية، لكن طبقة الفهرسة كانت مفقودة في تكوين الويب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 حيث يقوم المطورون بالانخراط والمشاركة. بينما لا تزال البنية التحتية قيد التطور، فإن رؤية بناء بروتوكولات وتطبيقات حقا لامركزية تتيح للناس التنسيق دون الحاجة إلى منح السلطة والتحكم للشركات الكبيرة هي رؤية مهمة ونحن قريبون من تحقيق هذه الرؤية.

إخلاء المسؤولية:

  1. يتم نشر هذه المقالة من [Gateedgeandnode]. جميع حقوق الطبع والنشر تنتمي إلى الكاتب الأصلي [نادر دابيتإذا كان هناك اعتراضات على هذا النشر مرجعًا، يرجى الاتصال بالبوابة تعليمالفريق، وسوف يتولى التعامل معها بسرعة.
  2. إخلاء المسؤولية: الآراء ووجهات النظر الواردة في هذه المقالة هي آراء المؤلف فقط ولا تشكل أي نصيحة استثمارية.
  3. تتم الترجمات للمقال إلى لغات أخرى من قبل فريق Gate Learn. ما لم يذكر غير ذلك، يُحظر نسخ أو توزيع أو نسخ المقالات المترجمة.

تحديد كومة web3

متوسط1/8/2024, 2:50:04 AM
يستكشف المقال تطبيق وتطوير Web3 في تكنولوجيا البلوكشين.

في هذا القسم التالي من بناء على web3، يوسع Nader Dabit، مهندس العلاقات مع المطورين في Edge & Node، على الكومة web3 وكيف يمكن للمطورين تصوّر مختلف جوانب البناء على web3.


لقد انتقلت إلى الويب3 في أبريل 2021 بعد أن كنت مطورًا تقليديًا للشبكة الكاملة لمدة حوالي 10 سنوات. أثناء الغوص في كل هذه التقنيات والأفكار الجديدة، كان أول شيء أردت معرفته هو "ما هو تراكم الويب3؟".

عند بناء تطبيق ويب تقليدي أو تطبيق محمول، غالبًا ما أعتمد على مجموعة من الكتل الأساسية لإنجاز المهمة.

  1. خوادم واجهة برمجة التطبيقات / التطبيقات (REST أو GraphQL)
  2. طبقة المصادقة (مُدارة أو مُطوَّلة يدويًا)
  3. قاعدة بيانات
  4. الإطارات والمنصات والمكتبات الجانبية للعميل
  5. تخزين الملفات

باستخدام هذه المكونات الأساسية، يمكنني بناء معظم أنواع التطبيقات التي أود أو على الأقل الوصول إلى معظم الطريق. إذًا كيف كان هذا يبدو في web3؟

يتبين أن الإجابة على هذا ليست بسيطة لأنها:

  1. النموذج مختلف تماما في العديد من الطرق
  2. أدوات web3 وتقنياته والبيئة البيئية أقل نضوجًا من web2

كان من الصعب أيضًا بالنسبة لي فهم كيفية البدء والعمل على تطبيقات web3، لأنني كنت أقترب من المشاكل بنفس الطريقة التي كنت أستخدمها في عالم web2.

بعد العمل والبحث والتجربة وبناء الأشياء على مدى الثمانية أشهر الماضية أو نحو ذلك ، أود أن أشارك ما تعلمته.

ما هو الويب3؟

قبل أن نحدد كومة الويب3، دعنا نحاول تحديد الويب3. هناك تعريفات لا تحصى تعتمد على من تسأل، ولكن بالنسبة لي أجدهذاتعريف نقطة على

Web3 هو مجموعة البروتوكولات التي تمكن تطبيقات مفcentralized تمامًا.

مع هذه الكومة التكنولوجية اللامركزية، يمكننا البدء في بناء تطبيقات لامركزية تمتلك تبعاتها وخصائصها الخاصة.

بعض السمات التي تمكنها web3 هي:

  • البنية التحتية للويب اللامركزية
  • ملكية (البيانات، المحتوى، والمنصة)
  • المدفوعات الرقمية الأصلية
  • الهوية الذاتية السيادية
  • البنية التحتية الموزعة والمعتمدة على الثقة وقوية
  • الخلفيات العلنية والعامة والقابلة للتركيب

في حين أن بعض التطبيقات التي تم بناؤها على تكنولوجيا اللامركزية ستحل محل سابقيها، تمكنت أيضًا براديم جديد من التطبيقات بواسطة الأساسيات الجديدة التي أتاحتها التقنيات السلسلة.

المدفوعات الرقمية الأصلية والبنية الخلفية العامة - مثل تعلم الآلة والأجهزة المحمولة والواقع الافتراضي والعناصر التكنولوجية الأخرى، والمنصات والمكونات الأساسية - تمكن من بناء أنواع جديدة تمامًا من التطبيقات، بعضها لم يتم تصوره بعد.

هل يعني هذا أن كل شيء سيتم استبداله بويب 3؟ ليس بالضرورة. بينما أعتقد أن البناء على كومة تكنولوجيا لامركزية هو خيار أفضل بكثير لبعض أنواع التطبيقات - مثل أي قرار تقني تقريبًا ، يعتمد على ما تقوم ببنائه.

لنبدأ الآن في الغوص في كومة الويب3، المقسمة إلى هذه المجموعة من الفئات:

  • بلوكتشين
  • بيئة تطوير سلسلة الكتل
  • تخزين الملفات
  • بروتوكولات بيانات خارج سلسلة الكتل
  • API (الإستشهاد & الاستحقاق)
  • الهوية
  • العميل (الأطر والمكتبات)
  • المُهَيمِنات
  • البروتوكولات الأخرى

سلسلة الكتل

هناك عدد لا يحصى من البلوكشينات التي يمكنك اختيار البناء عليها. ليس هناك واحدة واحدة تعتبر 'الأفضل'، بدلاً من ذلك يجب عليك أن تنظر في التنازلات المختلفة بينها.

شيء مهم في كثير من الأحيان بالنسبة لي عند تعلم شيء جديد هو فكرة التطبيق مبدأ باريتوإلى ما أتعلم. أي ما هو الطريقة الأكثر كفاءة للحصول على أقصى استفادة من تلك الفترة من الوقت والجهد. باتباع هذه الفكرة يمكنني الحصول على أكبر قدر من الجذب والزخم أثناء تعلم شيء جديد في أقصر وقت ممكن.

في عالم البلوكشين، تعلم الصلادة و الEVM(أو آلة العقد الافتراضية) قد تكون الرهان الأفضل عند البدء كمطور بلوكشين. باستخدام هذه المهارات (وكومة التقنية) ، يمكنك بناء ليس فقط لـ Ethereum ، ولكن لـ Ethereum Layer 2s الأخرى ، والسلاسل الفرعية ، وحتى بلوكشينات أخرى مثل Avalanche و Fantom و Celo.

ومع ذلك، يبدأ Rust في أن يصبح أكثر شهرة في عالم تقنية البلوكشين، مع وجود دعم فئة أولى لـ Solana و NEAR و Polkadot وغيرها. من المحتمل أنك لن تخطئ حقًا في تعلم أيًا منهما، ولكن بالنسبة للمبتدئين، أعتقد أن Solidity ستظل الخيار الأفضل إذا سألني شخص اليوم.

بالإضافة إلى هذه النصيحة، إليك عينة غير كاملة من سلاسل الكتل التي تحتوي على مزيج قوي من التكنولوجيا والفائدة والمجتمع والزخم والقدرة على المستقبل:

  • إيثيريوم- منصة العقد الذكي الأصلية
  • ZK rollups: ZKSync, Starknet, هيرميز - طبقة 2 لإثريوم ذات إنتاجية عالية، ولكنها ليست متوافقة بشكل طبيعي مع EVM
  • اللفات المتفائلة: Arbitrum & تفاؤل - طبقات Ethereum 2، EVM متوافقة (تعرف المزيد حول الاختلافات بين التحفظية و ZK rollupsهنا)
  • بوليغون- سلسلة جانبية لإيثيريوم
  • سولانا- إنه يتميز بسعة عالية، وتكاليف معاملات منخفضة، وأوقات كتل سريعة، ولكنه أصعب في التعلم من EVM (Rust)
  • NEAR- بلوكشين الطبقة 1، يمكن كتابة عقود ذكية بلغة Rust أو Assemblyscript
  • كوزموس- نظام من سلاسل الكتل المتعاونة
  • بولكادوت- منصة حوسبة قائمة على تقنية البلوكشين تمكّن البلوكشينات التي تم بناؤها فوقها من تنفيذ المعاملات بين أنفسها، مما يخلق إنترنت مترابطة من البلوكشينات
  • أورورا- سلسلة متوافقة مع EVM تعمل على بروتوكول NEAR.
  • فانتوم- طبقة 1 متوافقة مع EVM
  • انهيار- طبقة 1 متوافقة مع EVM
  • Celo- طبقة متوافقة مع EVM 1، مصممة لتسهيل إرسال واستقبال وتخزين العملات المشفرة لأي شخص لديه هاتف ذكي
  • تيزوس- طبقة 1 غير متوافقة مع EVM، العديد من مشاريع NFT تستخدمها

عند التفاعل مع الشبكة، ستحتاج إلى استخدام نقطة نهاية RPC.

هناك بعض الطرق يمكنك القيام بها:

  1. الوصول إلى نقطة نهاية RPC العامة
  2. تشغيل العقد الخاصة بك
  3. الوصول إلى مزود العقد كخدمة
  4. الوصول إلى مزوّد عقد ذكي للعقد كخدمة

يتم توفير نقاط نهاية RPC العامة غالبًا من قبل الشبكة، ولكن بالنسبة لمعظم تطبيقات الإنتاج ستريد الاستفادة من نقاط نهاية الخاصة بك لأنها ليست مستقرة أو موصى بها للإنتاج.

هناك عدد قليل من مزودي خدمات RPC هناك، وهنا بعضها:

هناك أيضًا حلاً ويب 3 / مركزي،شبكة Pocketأن يبدو أنه يكتسب زخمًا.

أي من هذه الخيارات ربما تكون رهان جيد للتفاعل مباشرة مع شبكتك.

بيئات تطوير سلسلة الكتل

لتطوير EVM، هناك بضع بيئات تطوير جيدة متاحة:

  • Hardhat(الجافا سكريبت) هو خيار أحدث، لكنه خيار يحظى بمزيد من الشعبية. توثيقهم رائع، والأدوات وتجربة المطور مصقولة، وهو ما كنت شخصيًا استخدامه لبناء تطبيقات الويب اللامركزية.
  • ترافل(JavaScript) هي مجموعة أدوات لبناء وتطوير التطبيقات على EVM. إنها ناضجة واختبرت في المعركة وموثقة بشكل جيد. لقد كانت موجودة لفترة طويلة ويستخدمها العديد من المطورين.
  • المصنعهو بيئة تطوير Solidity جديدة من Paradigm تظهر الكثير من الوعود. من النقاط البارزة القدرة على كتابة الاختبارات في Solidity، ودعم الفزينج، والسرعة (فهي مكتوبة بلغة Rust). لقد كتبت مقدمة منفصلة لهاهنا.
  • براوني ‏هو إطار عمل واختبار مبني على البايثون لتطوير واختبار العقود الذكية لتطوير Solidity / EVM.

لتطوير سولانا، مرساةأصبح بسرعة نقطة البداية للمطورين الجدد. يوفر واجهة سطر الأوامر (CLI) لإنشاء وبناء واختبار برامج Solana بالإضافة إلى مكتبات العملاء التي يمكنك استخدامها لإنشاء واجهات أمامية. كما يتضمن لغة برمجة مجردة (DSL) تجرد العديد من التعقيدات التي غالباً ما يواجهها المطورون عند بدء التطوير باستخدام Solana و Rust.

تخزين الملفات

أين نخزن الصور ومقاطع الفيديو والملفات الأخرى في web3؟ تخزين أي شيء بهذا الحجم على السلسلة عادة ما يكون مكلفًا بشكل لا يمكن تحمله، لذلك ربما لا نرغب في تخزينها هناك.

بدلاً من ذلك، يمكننا استخدام واحدة من عدد قليل من بروتوكولات تخزين الملفات:

  • IPFS - بروتوكول نظام ملفات نقال
    • الايجابيات: إنه موثوق به، موثق بشكل جيد مع بيئة بيئية كبيرة
    • عيوب: إذا لم يتم تثبيت البيانات ، فقد يتم فقدها
  • Arweave- يتيح لك تخزين البيانات بشكل دائم، مقابل رسم معاملة واحد. أنا من معجبي Arweave وقمت بكتابة مدونة حولهاهنا.
  • Filecoin -من Protocol Labs، نفس الفريق الذي بنى IPFS، فإنه بروتوكول مصمم لتوفير نظام لتخزين البيانات الدائمة. هناك مجموعة من الطرقللمطورين للبناء على Filecoin، بما في ذلكتخزين الويب3والذي هو لطيف جدا.
  • سكاي نت - لم أستخدمه بعد في الإنتاج، لكن جربته ويبدو أنه يعمل بشكل جيد. واجهة برمجة التطبيقات هناتبدو رائعة. لدي أسئلة مثل ما هو طول البيانات المحفوظة، وتوافق Skynet مع بروتوكولات أخرى.

بروتوكولات البيانات الخارجة عن السلسلة

بالإضافة إلى تخزين الملفات وتخزين السلسلة، قد تحتاج أيضًا إلى تخزين البيانات خارج السلسلة. قد تستخدم هذه الأنواع من الحلول بشكل مماثل لكيفية استخدامك لقاعدة بيانات في تكنولوجيا الشبكة التقليدية، ولكن بدلاً من ذلك يتم تكرارها عبر عدد n من العقد على شبكة لامركزية، وبالتالي أكثر موثوقية (على الأقل في النظرية).

بعض الخيارات هي:

  • شبكة السيراميك- منصة مفتوحة المصدر ولامركزية لإنشاء واستضافة ومشاركة البيانات. تحتوي Ceramic أيضًا على بروتوكول هوية جميل سأتحدث عنه لاحقًا. على الأرجح، هو حلاً للتخزين خارج السلسلة المفضل لدي في الوقت الحالي.ها هوعرض جميل جدًا.
  • نسيجThreadDB- قاعدة بيانات متعددة الأطراف مبنية على IPFS و Libp2p. إذا فهمت بشكل صحيح، قد تمر بتغيير API كبير في الوقت الحالي. لقد جربته وأظهر بعض الوعود، ولكن الوثائق و DX بحاجة إلى بعض التحسينات.
  • GunDB- قاعدة بيانات لامركزية ند لامركزية. كانت غون موجودة لفترة طويلة و بعض التطبيقات المثيرة للاهتمامتم بناؤها بها.

من حيث النضج، رأيي هو أن نظام البيئة الخارجية لحلول التخزين ليس بعد في المكان الذي يجب أن يكون عليه لبناء بعض الحالات الاستخدام المتقدمة التي قد يرغب بعض المطورين فيها. بعض التحديات هنا تتمثل في البيانات في الوقت الحقيقي، وكشف النزاع وحله، وتفويض الكتابة، والتوثيق، وتجربة المطور العامة.

دمج حلول البيانات غير المتصلة مع بروتوكولات البلوكشين هو واحد من أكبر العقبات التي نحتاج إلى تجاوزها قبل أن يكون لدينا تراكم بروتوكول متميز قادر على دعم أي نوع من التطبيقات.

API (الفهرسة والاستعلام)

هناك الكثير من الاختلافات في الطريقة التي نتفاعل بها ونبني على أعلى مستوى من البلوكشين مقارنة بقواعد البيانات في تقنية الشبكة التقليدية. مع البلوكشين، لا يتم تخزين البيانات بتنسيق يمكن استهلاكه بكفاءة أو بسهولة مباشرة من التطبيقات الأخرى أو الواجهات الأمامية.

البلوكشين مُحسّن لعمليات الكتابة. غالبًا ما تسمع بالابتكارات التي تدور حول عدد عمليات التداول في الثانية، وزمن الكتلة، وتكلفة التداول. يتم كتابة بيانات البلوكشين في كتل على مر الزمن، مما يجعل أي عمليات قراءة غير أساسية مستحيلة.

في معظم التطبيقات ، تحتاج إلى ميزات مثل البيانات العلاقاتية ، والفرز ، والتصفية ، والبحث الكامل النصي ، وترقيم الصفحات والعديد من أنواع القدرات الاستعلامية الأخرى. من أجل القيام بذلك ، تحتاج البيانات إلى الفهرسة والتنظيم للاسترجاع الفعال.

تقليديا، هذا هو العمل الذي تقوم به قواعد البيانات في تكوين التكنولوجيا المركزية، لكن طبقة الفهرسة كانت مفقودة في تكوين الويب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 حيث يقوم المطورون بالانخراط والمشاركة. بينما لا تزال البنية التحتية قيد التطور، فإن رؤية بناء بروتوكولات وتطبيقات حقا لامركزية تتيح للناس التنسيق دون الحاجة إلى منح السلطة والتحكم للشركات الكبيرة هي رؤية مهمة ونحن قريبون من تحقيق هذه الرؤية.

إخلاء المسؤولية:

  1. يتم نشر هذه المقالة من [Gateedgeandnode]. جميع حقوق الطبع والنشر تنتمي إلى الكاتب الأصلي [نادر دابيتإذا كان هناك اعتراضات على هذا النشر مرجعًا، يرجى الاتصال بالبوابة تعليمالفريق، وسوف يتولى التعامل معها بسرعة.
  2. إخلاء المسؤولية: الآراء ووجهات النظر الواردة في هذه المقالة هي آراء المؤلف فقط ولا تشكل أي نصيحة استثمارية.
  3. تتم الترجمات للمقال إلى لغات أخرى من قبل فريق Gate Learn. ما لم يذكر غير ذلك، يُحظر نسخ أو توزيع أو نسخ المقالات المترجمة.
Lancez-vous
Inscrivez-vous et obtenez un bon de
100$
!