تقديم Building on web3 - سلسلة جديدة من مدونات Edge & Node بهدف تعريف المطورين بالبروتوكولات والأدوات وأفضل الممارسات للتطوير في مساحة web3 المتنامية. سيؤدي البناء على web3 إلى تسليط الضوء على التقنيات والمشاريع الناشئة في النظام البيئي web3 للمساعدة في إنشاء وصفة للنجاح لمطوري dapp.
في هذا المنشور، ستتعرف على ماهية Arweave ، ولماذا أعتقد أنها مهمة، وكيف يمكنك البدء في البناء بها. سيركز هذا المنشور على تخزين الملفات واسترجاعها، وليس على تشغيل بوابة Arweave للإنتاج الخاصة بك.
بالنسبة لي، الشيء الثوري في Arweave هو حقيقة أنه يمكنني تخزين شيء ما مرة واحدة وأتوقع أنه سيكون متاحًا إلى الأبد دون الحاجة إلى دفع أي شيء مرة أخرى أو دون الحاجة إلى القلق بشأن إزالته.
قارن ذلك بحلول التخزين المركزية التقليدية حيث إذا نسيت دفع فاتورتك لمدة شهر، فسيتم حذفك، أو الأسوأ من ذلك، تقوم أنت أو أي شخص آخر بحذف بياناتك تمامًا عن طريق الخطأ.
تعد ديمومة البيانات هذه مهمة بشكل خاص في web3 حيث نقوم ببناء بنية تحتية للتطبيقات غير القابلة للتغيير. بيانات بلوكتشين بطبيعتها غير قابلة للتغيير بالفعل، ولكنك غالبًا ما ترى المطورين يخزنون البيانات خارج السلسلة بطرق لا تلتزم باللامركزية أو أفضل ممارسات الثبات.
على سبيل المثال، في الرمز غير القابل للاستبدال، أو مساحة NFT، يستخدم بعض المطورين خدمات الاستضافة المركزية لتخزين البيانات الوصفية للرموز. هذا يكسر خصائص الأمان المهمة المطلوبة للثبات بالإضافة إلى فكرة ما يمثله NFT في المقام الأول.
إذا لم تكن البيانات الوصفية دائمة، فلا يوجد ضمان بأن الخاصية التي يمثلها الرمز المميز ستظل موجودة في المستقبل. هذا يعني أن سلامة الرمز المميز معرضة للخطر إذا لم يتم تخزين البيانات الوصفية على بروتوكول تخزين ملفات دائم مثل Arweave، ولماذا من المهم جدًا وجود تقنيات مثل هذه.
ضمن نظام Graph البيئي، نقوم أيضًا ببناء الدعم والتكامل لـ Arweave لأننا ندرك قيمة البروتوكول لبناء تطبيقات web3 اللامركزية حقًا.
تم تصميم Arweave على تقنيتين: البلوكويف، وهو مشتق من بلوكتشين، و «إثبات الوصول».
Blockweave هي التكنولوجيا التي تدعم Arweave. ومثل بلوكتشين، فإن البلوكويف عبارة عن مجموعة مرتبطة من كتل البيانات، ترتبط بالكتل السابقة المكتوبة على الشبكة.
تسمى آلية الإجماع المستخدمة لتسهيل تخزين البيانات الآمن واللامركزي في Arweave «Proof of Access». هذه الآلية أكثر كفاءة وصديقة للبيئة من إثبات العمل، لأن عمال المناجم لا يحتاجون إلى تخزين جميع الكتل. لهذا السبب، يتم توفير كمية هائلة من الكهرباء بينما لا يزال عمال المناجم قادرين على التوصل إلى توافق في الآراء. أيضًا، مع توسع الشبكة، ينخفض استهلاك الكهرباء.
هناك طريقتان للبدء في استخدام رموز Arweave
يمكنك البدء بمحفظة جديدة والحصول على جزء صغير من رموز Arweave باستخدام صنبور اختبار Arweave.
بمجرد التحقق، يجب أن تحصل على 0.1 AR لاستخدامه لبدء اختبار Arweave في تطبيقك.
ربما استخدمت المتصفح والمحافظ المحمولة مثل Metamask أو Phantom التي تسمح لك بالتفاعل مع تطبيقات web3 مباشرة من التطبيق. لدى Arweave محفظة مماثلة تسمى Arconnect.
يمكنك تثبيت هذا مباشرة كملحق chrome والبدء في التفاعل مع تطبيقات الويب التي تستخدم Arweave.
من هناك، يمكنك تمويل المحفظة برموز من أي من البورصات المدعومة أو يمكنك استيراد محفظتك التي تم إنشاؤها في الخطوة السابقة.
لمتابعة هذا البرنامج التعليمي، لن تحتاج إلى أي رموز، ولكن يجب تثبيت محفظة متصفح Arconnect.
بالإضافة إلى التقنية التي سنغطيها في هذا البرنامج التعليمي، يمكنك اختيار استخدام Bundlr الذي يتيح الدعم الأصلي لتخزين Arweave على سلاسل بلوكشين العقود الذكية المختلفة بالإضافة إلى حزم SDK من جانب العميل ومن جانب الخادم لتكامل التطبيقات.
يعد هذا خيارًا رائعًا لأنه لا يتطلب من المستخدم الاحتفاظ برموز AR، ولكن بدلاً من ذلك يمكنه الاعتماد على الشبكات والرموز الأخرى مثل ETH و MATIC و Solana و Arbitrum والعديد من الشبكات الأخرى للدفع مقابل المعاملات.
لمعرفة المزيد حول Bundlr، تحقق من الوثائق هنا.
الآن بعد أن حصلنا على نظرة عامة على Arweave وقمنا بتأمين الرموز الخاصة بنا، دعنا نبني تطبيقًا أساسيًا.
سيسمح لنا التطبيق الذي سننشئه بتحميل وتنزيل سلسلة نصية إلى Arweave.
هذا مثال أساسي، ولكنه «عالم Hello» رائع لأنه يستعرض الأدوات وواجهات برمجة التطبيقات لمساعدتك على البدء في البناء في فترة زمنية قصيرة.
أول شيء سنفعله هو إنشاء تطبيق React جديد باستخدام تطبيق create-react-app:
تطبيق إنشاء رد فعل npx
تطبيق arweave-app
هناك طريقتان رئيسيتان للاتصال بشبكة Arweave من التطبيق الخاص بك:
إن Arweave JS SDK رائع جدًا وهو ما سنستخدمه في هذا البرنامج التعليمي.
لنقم الآن بتثبيت arweave-js باستخدام npm أو yarn:
أرشيف تثبيت npm
هناك عدة طرق يمكنك من خلالها التفاعل مع شبكة Arweave:
في هذا الدليل، سنبدأ بـ Arlocal، والذي سيسمح لنا بإرسال معاملات تجريبية مجانًا. سنتعلم أيضًا كيفية استخدام mainnet لإرسال معاملة حقيقية.
للاختبار محليًا، يمكننا استخدام Arlocal، التي ستدير شبكة محلية يمكننا التفاعل معها وإرسال معاملات الاختبار إليها.
لا تحتاج حتى إلى تنزيل أو تثبيت أي شيء لاستخدام Arlocal، طالما لديك Node.js مثبتًا على جهازك، يمكنك فقط بدء بوابة محلية عن طريق تشغيل:
npx arlocal
هذا كل شيء! يجب أن تقوم الآن بتشغيل بوابة Arweave المحلية على http://localhost:1984
الآن بعد أن أصبحت لديك بوابة محلية قيد التشغيل، دعنا نكتب الكود.
افتح src/App.js وقم بتحديث الملف باستخدام التعليمة البرمجية التالية:
أنماط الاستيراد من '.. /ستايلز/الصفحة الرئيسية.module.css '
استيراد { useState } من 'react'
استيراد الأسهم من «arweave»
/ اتصل بعقدة Arweave أو حدد بوابة /
سهم ثابت = Arweave.init ({})
تطبيق الوظيفة () {
const [الحالة، setState] = useState ('')
const [معرف المعاملة، تعيين معرف المعاملة] = useState ('')
دالة غير متزامنة createTransaction () {
إذا (! الدولة) العودة
جرب {
بيانات النموذج الثابت = الحالة
تعيين الحالة ('')
/ يقوم بإنشاء وإرسال المعاملة إلى Arweave /
السماح بالمعاملة = انتظار الانتظار. إنشاء معاملة ({ data: formData })
في انتظار علامة arweave.transactions.sign (المعاملة)
السماح للقائم بالتحميل = انتظار Arweave.transactions.getuploader (المعاملة)
/ مؤشر التحميل /
بينما (! تم إكمال أداة التحميل.) {
انتظر تحميل المقطع ()
اكتمل ملف console.log (${uploader.pctComplete}%)،
${uploader.uploadedChunks}/${uploader.totalChunks}
)
}
تعيين معرف المعاملة (transaction.id)
} كاتش (خطأ) {
console.log ('خطأ: '، خطأ)
}
}
وظيفة غير متزامنة للقراءة من arWeave () {
/ اقرأ بيانات الأسهم باستخدام أي معرف معاملة/
معاملات arweave
.getData (معرف المعاملة، {
فك الشفرة: صحيح،
السلسلة: صحيح،
})
.then ((البيانات) = > {
console.log ('البيانات: '، البيانات)
})
}
العودة (
اسم الفئة < div ={styles.container}>
نمط الزر < ={button} عند النقر ={createTransaction}>
إنشاء معاملة
</button>< /زر >
نمط الزر < ={button} عند النقر ={readFromArweave}>
اقرأ المعاملة
</button>< /زر >
< نمط الإدخال ={input} عند التغيير ={(e) => setState(e.target.value)} عنصر نائب = قيمة «النص» ={state} />
</div>< /ديف >
)
}
زر ثابت = {
الخطوط العريضة: «لا شيء»،
الحدود: «1 بكسل باللون الأسود الصلب»,
لون الخلفية: «أبيض»،
الحشو: '10 بكسل'،
العرض: «200 بكسل»،
الحد الأدنى للهامش: 10،
المؤشر: «المؤشر»،
}
إدخال ثابت = {
لون الخلفية: '#ddd'،
الخطوط العريضة: «لا شيء»،
الحدود: «لا شيء»،
العرض: «200 بكسل»،
حجم الخط: '16 بكسل'،
الحشو: '10 بكسل'،
}
تصدير التطبيق الافتراضي
بعد ذلك، ابدأ التطبيق:
بداية npm
عند بدء تشغيل التطبيق، يجب أن تشاهد إدخال النموذج الأساسي مع زرين.
يمكنك كتابة البيانات التي تريد حفظها في النموذج، ثم الضغط على إنشاء معاملة لحفظ النص في Arweave.
بمجرد اكتمال المعاملة، من المفترض أن ترى مؤشر التقدم الذي تم تسجيل الخروج منه إلى وحدة التحكم يشير إلى حفظ البيانات.
بمجرد حفظ البيانات، انقر فوق قراءة المعاملة لقراءة البيانات من Arweave.
للتفاعل مع شبكة الإنتاج، تحتاج فقط إلى تحديث تكوين شبكة Arweave.
سهم ثابت = Arweave.init ({
المضيف: 'arweave.net'،
})
يتوفر مثال لقاعدة التعليمات البرمجية للمشروع الذي أنشأناه اليوم هنا.
لمعرفة المزيد حول Arweave، راجع مستندات Arweave وArweave Wiki وتابعها على تويتر.
Edge & Node هي شركة تطوير برمجيات إبداعية تعمل على بناء مستقبل لامركزي نابض بالحياة. تم تأسيس Edge & Node من قبل الفريق الأولي وراء The Graph، وهو مكرس للنهوض بالإنترنت اللامركزي (web3) وانتشار التطبيقات التي تقلل من الثقة. يتمتع الفريق بخبرة واسعة في تطوير وصيانة البرامج والأدوات والتطبيقات مفتوحة المصدر.
المنتج الأولي لـ Edge & Node هو The Graph، وهو بروتوكول فهرسة للاستعلام عن شبكات مثل Ethereum و IPFS، مما يضمن توفر البيانات المفتوحة دائمًا وسهولة الوصول إليها. يتم استخدام الرسم البياني بواسطة آلاف البروتوكولات والتطبيقات اللامركزية بما في ذلك Uniswap و Livepeer و Aave و Decentraland والمزيد. أطلقت Edge & Node أيضًا Everest، وهو أول سجل لامركزي للبيانات على السلسلة لتوفير فائدة مستمرة لمجتمع التشفير، مما يحفز التحول إلى web3.
تقديم Building on web3 - سلسلة جديدة من مدونات Edge & Node بهدف تعريف المطورين بالبروتوكولات والأدوات وأفضل الممارسات للتطوير في مساحة web3 المتنامية. سيؤدي البناء على web3 إلى تسليط الضوء على التقنيات والمشاريع الناشئة في النظام البيئي web3 للمساعدة في إنشاء وصفة للنجاح لمطوري dapp.
في هذا المنشور، ستتعرف على ماهية Arweave ، ولماذا أعتقد أنها مهمة، وكيف يمكنك البدء في البناء بها. سيركز هذا المنشور على تخزين الملفات واسترجاعها، وليس على تشغيل بوابة Arweave للإنتاج الخاصة بك.
بالنسبة لي، الشيء الثوري في Arweave هو حقيقة أنه يمكنني تخزين شيء ما مرة واحدة وأتوقع أنه سيكون متاحًا إلى الأبد دون الحاجة إلى دفع أي شيء مرة أخرى أو دون الحاجة إلى القلق بشأن إزالته.
قارن ذلك بحلول التخزين المركزية التقليدية حيث إذا نسيت دفع فاتورتك لمدة شهر، فسيتم حذفك، أو الأسوأ من ذلك، تقوم أنت أو أي شخص آخر بحذف بياناتك تمامًا عن طريق الخطأ.
تعد ديمومة البيانات هذه مهمة بشكل خاص في web3 حيث نقوم ببناء بنية تحتية للتطبيقات غير القابلة للتغيير. بيانات بلوكتشين بطبيعتها غير قابلة للتغيير بالفعل، ولكنك غالبًا ما ترى المطورين يخزنون البيانات خارج السلسلة بطرق لا تلتزم باللامركزية أو أفضل ممارسات الثبات.
على سبيل المثال، في الرمز غير القابل للاستبدال، أو مساحة NFT، يستخدم بعض المطورين خدمات الاستضافة المركزية لتخزين البيانات الوصفية للرموز. هذا يكسر خصائص الأمان المهمة المطلوبة للثبات بالإضافة إلى فكرة ما يمثله NFT في المقام الأول.
إذا لم تكن البيانات الوصفية دائمة، فلا يوجد ضمان بأن الخاصية التي يمثلها الرمز المميز ستظل موجودة في المستقبل. هذا يعني أن سلامة الرمز المميز معرضة للخطر إذا لم يتم تخزين البيانات الوصفية على بروتوكول تخزين ملفات دائم مثل Arweave، ولماذا من المهم جدًا وجود تقنيات مثل هذه.
ضمن نظام Graph البيئي، نقوم أيضًا ببناء الدعم والتكامل لـ Arweave لأننا ندرك قيمة البروتوكول لبناء تطبيقات web3 اللامركزية حقًا.
تم تصميم Arweave على تقنيتين: البلوكويف، وهو مشتق من بلوكتشين، و «إثبات الوصول».
Blockweave هي التكنولوجيا التي تدعم Arweave. ومثل بلوكتشين، فإن البلوكويف عبارة عن مجموعة مرتبطة من كتل البيانات، ترتبط بالكتل السابقة المكتوبة على الشبكة.
تسمى آلية الإجماع المستخدمة لتسهيل تخزين البيانات الآمن واللامركزي في Arweave «Proof of Access». هذه الآلية أكثر كفاءة وصديقة للبيئة من إثبات العمل، لأن عمال المناجم لا يحتاجون إلى تخزين جميع الكتل. لهذا السبب، يتم توفير كمية هائلة من الكهرباء بينما لا يزال عمال المناجم قادرين على التوصل إلى توافق في الآراء. أيضًا، مع توسع الشبكة، ينخفض استهلاك الكهرباء.
هناك طريقتان للبدء في استخدام رموز Arweave
يمكنك البدء بمحفظة جديدة والحصول على جزء صغير من رموز Arweave باستخدام صنبور اختبار Arweave.
بمجرد التحقق، يجب أن تحصل على 0.1 AR لاستخدامه لبدء اختبار Arweave في تطبيقك.
ربما استخدمت المتصفح والمحافظ المحمولة مثل Metamask أو Phantom التي تسمح لك بالتفاعل مع تطبيقات web3 مباشرة من التطبيق. لدى Arweave محفظة مماثلة تسمى Arconnect.
يمكنك تثبيت هذا مباشرة كملحق chrome والبدء في التفاعل مع تطبيقات الويب التي تستخدم Arweave.
من هناك، يمكنك تمويل المحفظة برموز من أي من البورصات المدعومة أو يمكنك استيراد محفظتك التي تم إنشاؤها في الخطوة السابقة.
لمتابعة هذا البرنامج التعليمي، لن تحتاج إلى أي رموز، ولكن يجب تثبيت محفظة متصفح Arconnect.
بالإضافة إلى التقنية التي سنغطيها في هذا البرنامج التعليمي، يمكنك اختيار استخدام Bundlr الذي يتيح الدعم الأصلي لتخزين Arweave على سلاسل بلوكشين العقود الذكية المختلفة بالإضافة إلى حزم SDK من جانب العميل ومن جانب الخادم لتكامل التطبيقات.
يعد هذا خيارًا رائعًا لأنه لا يتطلب من المستخدم الاحتفاظ برموز AR، ولكن بدلاً من ذلك يمكنه الاعتماد على الشبكات والرموز الأخرى مثل ETH و MATIC و Solana و Arbitrum والعديد من الشبكات الأخرى للدفع مقابل المعاملات.
لمعرفة المزيد حول Bundlr، تحقق من الوثائق هنا.
الآن بعد أن حصلنا على نظرة عامة على Arweave وقمنا بتأمين الرموز الخاصة بنا، دعنا نبني تطبيقًا أساسيًا.
سيسمح لنا التطبيق الذي سننشئه بتحميل وتنزيل سلسلة نصية إلى Arweave.
هذا مثال أساسي، ولكنه «عالم Hello» رائع لأنه يستعرض الأدوات وواجهات برمجة التطبيقات لمساعدتك على البدء في البناء في فترة زمنية قصيرة.
أول شيء سنفعله هو إنشاء تطبيق React جديد باستخدام تطبيق create-react-app:
تطبيق إنشاء رد فعل npx
تطبيق arweave-app
هناك طريقتان رئيسيتان للاتصال بشبكة Arweave من التطبيق الخاص بك:
إن Arweave JS SDK رائع جدًا وهو ما سنستخدمه في هذا البرنامج التعليمي.
لنقم الآن بتثبيت arweave-js باستخدام npm أو yarn:
أرشيف تثبيت npm
هناك عدة طرق يمكنك من خلالها التفاعل مع شبكة Arweave:
في هذا الدليل، سنبدأ بـ Arlocal، والذي سيسمح لنا بإرسال معاملات تجريبية مجانًا. سنتعلم أيضًا كيفية استخدام mainnet لإرسال معاملة حقيقية.
للاختبار محليًا، يمكننا استخدام Arlocal، التي ستدير شبكة محلية يمكننا التفاعل معها وإرسال معاملات الاختبار إليها.
لا تحتاج حتى إلى تنزيل أو تثبيت أي شيء لاستخدام Arlocal، طالما لديك Node.js مثبتًا على جهازك، يمكنك فقط بدء بوابة محلية عن طريق تشغيل:
npx arlocal
هذا كل شيء! يجب أن تقوم الآن بتشغيل بوابة Arweave المحلية على http://localhost:1984
الآن بعد أن أصبحت لديك بوابة محلية قيد التشغيل، دعنا نكتب الكود.
افتح src/App.js وقم بتحديث الملف باستخدام التعليمة البرمجية التالية:
أنماط الاستيراد من '.. /ستايلز/الصفحة الرئيسية.module.css '
استيراد { useState } من 'react'
استيراد الأسهم من «arweave»
/ اتصل بعقدة Arweave أو حدد بوابة /
سهم ثابت = Arweave.init ({})
تطبيق الوظيفة () {
const [الحالة، setState] = useState ('')
const [معرف المعاملة، تعيين معرف المعاملة] = useState ('')
دالة غير متزامنة createTransaction () {
إذا (! الدولة) العودة
جرب {
بيانات النموذج الثابت = الحالة
تعيين الحالة ('')
/ يقوم بإنشاء وإرسال المعاملة إلى Arweave /
السماح بالمعاملة = انتظار الانتظار. إنشاء معاملة ({ data: formData })
في انتظار علامة arweave.transactions.sign (المعاملة)
السماح للقائم بالتحميل = انتظار Arweave.transactions.getuploader (المعاملة)
/ مؤشر التحميل /
بينما (! تم إكمال أداة التحميل.) {
انتظر تحميل المقطع ()
اكتمل ملف console.log (${uploader.pctComplete}%)،
${uploader.uploadedChunks}/${uploader.totalChunks}
)
}
تعيين معرف المعاملة (transaction.id)
} كاتش (خطأ) {
console.log ('خطأ: '، خطأ)
}
}
وظيفة غير متزامنة للقراءة من arWeave () {
/ اقرأ بيانات الأسهم باستخدام أي معرف معاملة/
معاملات arweave
.getData (معرف المعاملة، {
فك الشفرة: صحيح،
السلسلة: صحيح،
})
.then ((البيانات) = > {
console.log ('البيانات: '، البيانات)
})
}
العودة (
اسم الفئة < div ={styles.container}>
نمط الزر < ={button} عند النقر ={createTransaction}>
إنشاء معاملة
</button>< /زر >
نمط الزر < ={button} عند النقر ={readFromArweave}>
اقرأ المعاملة
</button>< /زر >
< نمط الإدخال ={input} عند التغيير ={(e) => setState(e.target.value)} عنصر نائب = قيمة «النص» ={state} />
</div>< /ديف >
)
}
زر ثابت = {
الخطوط العريضة: «لا شيء»،
الحدود: «1 بكسل باللون الأسود الصلب»,
لون الخلفية: «أبيض»،
الحشو: '10 بكسل'،
العرض: «200 بكسل»،
الحد الأدنى للهامش: 10،
المؤشر: «المؤشر»،
}
إدخال ثابت = {
لون الخلفية: '#ddd'،
الخطوط العريضة: «لا شيء»،
الحدود: «لا شيء»،
العرض: «200 بكسل»،
حجم الخط: '16 بكسل'،
الحشو: '10 بكسل'،
}
تصدير التطبيق الافتراضي
بعد ذلك، ابدأ التطبيق:
بداية npm
عند بدء تشغيل التطبيق، يجب أن تشاهد إدخال النموذج الأساسي مع زرين.
يمكنك كتابة البيانات التي تريد حفظها في النموذج، ثم الضغط على إنشاء معاملة لحفظ النص في Arweave.
بمجرد اكتمال المعاملة، من المفترض أن ترى مؤشر التقدم الذي تم تسجيل الخروج منه إلى وحدة التحكم يشير إلى حفظ البيانات.
بمجرد حفظ البيانات، انقر فوق قراءة المعاملة لقراءة البيانات من Arweave.
للتفاعل مع شبكة الإنتاج، تحتاج فقط إلى تحديث تكوين شبكة Arweave.
سهم ثابت = Arweave.init ({
المضيف: 'arweave.net'،
})
يتوفر مثال لقاعدة التعليمات البرمجية للمشروع الذي أنشأناه اليوم هنا.
لمعرفة المزيد حول Arweave، راجع مستندات Arweave وArweave Wiki وتابعها على تويتر.
Edge & Node هي شركة تطوير برمجيات إبداعية تعمل على بناء مستقبل لامركزي نابض بالحياة. تم تأسيس Edge & Node من قبل الفريق الأولي وراء The Graph، وهو مكرس للنهوض بالإنترنت اللامركزي (web3) وانتشار التطبيقات التي تقلل من الثقة. يتمتع الفريق بخبرة واسعة في تطوير وصيانة البرامج والأدوات والتطبيقات مفتوحة المصدر.
المنتج الأولي لـ Edge & Node هو The Graph، وهو بروتوكول فهرسة للاستعلام عن شبكات مثل Ethereum و IPFS، مما يضمن توفر البيانات المفتوحة دائمًا وسهولة الوصول إليها. يتم استخدام الرسم البياني بواسطة آلاف البروتوكولات والتطبيقات اللامركزية بما في ذلك Uniswap و Livepeer و Aave و Decentraland والمزيد. أطلقت Edge & Node أيضًا Everest، وهو أول سجل لامركزي للبيانات على السلسلة لتوفير فائدة مستمرة لمجتمع التشفير، مما يحفز التحول إلى web3.