الخطوات الأولى
إذا كان لديك خبرة كمطور ويب ، فإن الكثير مما تعرفه بالفعل ينطبق على تطوير blockchain. الغرض من هذا الدليل هو تعريفك بما هو مختلف حتى تتمكن من البدء في الاستكشاف والبناء.
لا عجب هنا: الاختلاف الأكبر هو استخدام blockchains ، وفي هذا الدليل سنشير بشكل أساسي إلى Ethereum blockchain لأنه يضم أكبر مجتمع مطورين. لماذا تريد دمج تطوير blockchain في مجموعتك؟ هناك عدد من الأشياء الرائعة التي تتيح لك سلاسل الكتل القيام بها ، والتي تتحدى حقًا الافتراضات التي لدينا حول كيفية تفاعل الأفراد على الإنترنت ومعه.
ما الذي يمكنك فعله باستخدام Blockchain (ولم يكن بإمكانك فعله من قبل)
السلع الرقمية القابلة للتداول والمملوكة للمستخدم
باستخدام blockchain ، يمكنك (بسهولة) إنشاء أصول رمزية يمكن للمستخدمين الاحتفاظ بها والتداول بها خارج موقعك. على سبيل المثال ، Gods Unchained هي لعبة بطاقات قابلة للتحصيل بأسلوب Magic-the-collection حيث يمكن للمستخدمين امتلاك بطاقاتهم فعليًا وتداولها خارج النظام الأساسي. ما يثير الاهتمام في هذا الأمر هو أن البطاقات الفردية لها هوية ويمكن استخدامها في مكان آخر أو تداولها في أسواق الطرف الثالث. يمكنك ، على سبيل المثال ، الحصول على بطاقة تم استخدامها في مباراة بطولة يتم بيعها على أنها قابلة للتحصيل ، بنفس الطريقة التي قد يتم بها بيع الكرة التي تُدار في المنزل في بطولة MLB.
المدفوعات وتحويل القيمة
نظرًا للتكامل الأساسي للعملات المشفرة ، يتم تبسيط قبول المدفوعات وتسهيل المعاملات ذات القيمة: التحويلات المصرفية وبطاقات الائتمان و paypal ، تتطلب جميعها جهودًا كبيرة من جانب المطورين للتكامل. تنطبق هذه المزايا بشكل خاص على المجتمعات التي لديها وصول محدود إلى الخدمات المصرفية والائتمانية: لدينا دراسة حالة حول استخدام Ethereum لتسهيل تحويل القيمة وصرف المساعدات في مخيمات اللاجئين في الأردن.
هوية المستخدم وخصوصية البيانات
هناك خصائص فريدة تتعلق بكيفية قيام المستخدم بتحديد هويته عبر شبكة blockchain. باستخدام برنامج مثل Metamask ، يمكن للمستخدمين تسجيل الدخول الفردي إلى الإنترنت بالكامل. قد لا تحتاج إلى التعامل مع كلمات المرور أو تسجيل الدخول إلى موقعك ، مما يعني عددًا أقل من طلبات كلمات المرور المفقودة. يمكن تعزيز خصوصية البيانات من خلال منح المستخدم التحكم في من يمكنه الوصول إلى معلوماته ، ومنحه الفرصة لتوقيع المعاملات. عندما يغادر المستخدم موقعًا ما ، لا يمكن لمشغلي الموقع الوصول إلى بياناتهم مباشرة.
الحالة العالمية المستمرة للإنترنت
تم بناء الإنترنت اليوم من العديد من التقنيات ، ولكن لا توجد سلطة مركزية بشأن ما هو صحيح. قد يحتفظ عمالقة الإنترنت مثل Facebook بمفاتيح ممالكهم ذات الشبكات وقواعد البيانات الضخمة التي تعمل إلى حد ما مثل حالة ثابتة ، ومع ذلك ، فهي مملوكة ملكية خاصة ، ونطاقها يقتصر عمومًا على مؤسساتهم. يمكن أن تكون blockchain ، كشبكة تحتوي على بيانات غير قابلة للتغيير بمرور الوقت ، آمنة للغاية ومقاومة للعبث ، وبدون مالك واحد ، كمصدر للحقيقة للمشاركين في المجتمع.
الندرة الرقمية
تعتمد الرموز المميزة والعملات المشفرة القابلة للتداول على سلاسل الكتل لتوفير البنية التحتية للأصول الرقمية النادرة. عندما كانت الأصول الرقمية في الماضي قابلة للنسخ بشكل لا نهائي أو محمية بواسطة أنظمة إدارة الحقوق الرقمية المعقدة ، فإن مصدر الحقيقة المفرد للحالة الدائمة مثل blockchain يسمح بإنشاء أصول رقمية فريدة يمكن امتلاكها ولكن لا يمكن نسخها ، مما يعني تلك الأشياء يمكن أن تمتلك قيمة حقيقية.
Web2 مقابل Web3 Blockchain Stack
هناك سلاسل كتل مختلفة ، لكل منها شبكاتها الخاصة ، وقواعدها الخاصة ومجتمعاتها الخاصة من المشاركين. يمكن لمنصة blockchain معينة – مثل Ethereum – أن تحتوي على شبكات مختلفة مختلفة يمكنك الاتصال بكل منها بكل بياناتها الخاصة. يمكنك بدء شبكتك الخاصة ، وهو أمر سنفعله لاحقًا في هذا الدليل.
تتكون كل شبكة من عقد فردية ، والتي تقوم بتشغيل مثيلات من برنامج عقدة blockchain. بدلاً من نموذج الخادم-العميل القياسي ، تستخدم البلوكشين بروتوكولات لا مركزية من نظير إلى نظير للتواصل مع بعضها البعض والتوصل إلى توافق في الآراء بشأن حالة الشبكة.
في حزمة تطوير الويب النموذجية ، يمكنك إنشاء واجهة أمامية باستخدام html و CSS وجافا سكريبت وإطار عمل مثل رد فعل. تتصل هذه الواجهة الأمامية بنهاية خلفية تتضمن تخزين الملفات وبيئة التنفيذ وقاعدة البيانات. قد تكون مكونات التخزين والتنفيذ وقاعدة البيانات موجودة على خادم واحد ، أو تكون جزءًا من نظام سحابي أو شبكة توصيل المحتوى.
يتمثل الاختلاف الوحيد عند إنشاء تطبيق blockchain (غالبًا ما يسمى التطبيق الموزع ، أو dapp) في أن جزءًا من وظائف التطبيق الخاص بك يتم تقديمه عن طريق blockchain أو أي آلية موزعة أخرى. عادةً ما يتم الاتصال بـ blockchain مثل Ethereum عن طريق تضمين مكتبة جافا سكريبت مثل web3.js أو ethers.js بالاشتراك مع برنامج العقدة أو blockchain API. تتوفر مكتبات Web3 بعدة لغات.
يمكن أن يتم تخزين الملفات ووظائف قاعدة البيانات والتنفيذ على blockchain ، على الرغم من أن blockchain حاليًا غير مُحسَّن لأحجام كبيرة من البيانات أو التنفيذ المعقد.
على سبيل المثال ، يمكنك إنشاء تطبيق يستخدم حزمة ويب نموذجية ولكن إنشاء عقد ذكي موجود على blockchain لإجراء عمليات حسابية موزعة والتفاعل مع الرموز المميزة أو العملات المشفرة. سنتحدث أكثر عن العقود الذكية لاحقًا.
يمكنك أيضًا إنشاء تطبيق يكون نموذجيًا بخلاف ذلك ولكن يتم التحقق من المستخدم من خلال برنامج مثل Metamask ، وهو ، من بين أشياء أخرى ، المحفظة الرقمية ومدير الهوية.
إرسال معاملتك الأولى
دعنا نرسل معاملتك الأولى على blockchain كمستخدم. للقيام بذلك ، تحتاج إلى محفظة.
تثبيت MetaMask
ميتامسك هو أحد منتجات ConsenSys ويتضمن محفظة ويقدم مجموعة قوية من الأدوات للتفاعل مع blockchains Ethereum. تهم المطورين ، فهي تضخ واجهة برمجة تطبيقات عالمية في أي موقع ويب تمت زيارته ، ويمكن الوصول إليه عبر جافا سكريبت في window.ethereum ؛ للحصول على جميع التفاصيل ، قم بعرض مستندات المطور الكاملة لـ MetaMask على موقعهم. للبدء ، قم بتثبيت ملحق متصفح MetaMask chrome أو استخدم تطبيق MetaMask Mobile المتاح في متجر تطبيقات Apple أو متجر Google Play.
بمجرد التثبيت ، انتقل إلى عملية إنشاء الحساب. هناك بعض الأشياء التي قد تلاحظها: أولاً ، أنك لست مضطرًا إلى إدخال أي عنوان بريد إلكتروني أو أي معلومات شخصية أخرى. الأمر الثاني هو أن هناك قدرًا كبيرًا من الأهمية يتعلق بكتابة “العبارة الأولية” أو تخزينها ؛ هذا مهم لأنه الطريقة الوحيدة التي يمكنك من خلالها الوصول إلى حسابك أو استرداده. المزيد عن هذا لاحقًا.
بمجرد تشغيل Metamask ، سترى رصيد حسابك (0 ETH) ، وفي الزاوية اليمنى العليا ، سترى الشبكة التي تتصل بها حاليًا. قم بتوسيع قائمة اختيار الشبكة لإظهار قائمة بالشبكات. حدد شبكة اختبار Ropsten.
Mainnet و testnets
تتكون كل شبكة من هذه الشبكات من مجموعات من أجهزة الكمبيوتر التي تقوم بتشغيل برامج العقدة. معظم العقد موجودة على Mainnet ، وهي الشبكة الأساسية التي تحمل قيمة Ethereum. حتى كتابة هذه السطور ، كان هناك ما يزيد قليلاً عن 8000 عقدة تشكل شبكة Ethereum الرئيسية. يمكنك استكشاف عقد الشبكة على Ethernodes أو Etherscan.
تتألف شبكات الاختبار من عدد أقل بكثير من العقد (تحتوي شبكة Ropsten على 3 عُقد) ، وليس لها قيمة eth عليها. يتم استخدام هذه الشبكات بشكل أساسي من قبل المطورين لاختبار dapps والعقود الذكية الخاصة بهم قبل إطلاقها على الشبكة الرئيسية. ستلاحظ أيضًا أن MetaMask يوفر خيارات للاتصال بالمضيف المحلي أو RPC المخصص. عند تطوير تطبيقات Ethereum ، يمكنك استخدام metamask للاتصال والتفاعل مع برامج العقدة التي تعمل على نظامك الخاص أو أي شبكة أخرى.
الحصول على اختبار الأثير
في MetaMask ، انسخ عنوانك العام إلى الحافظة بالنقر فوق اسم حسابك:
يحدد عنوانك العام حسابك ويمكن مشاركته: إنه ما قد يستخدمه شخص آخر لإرسال الرموز إليك. إنه شيء مثل رقم الحساب المصرفي ، أو عنوان البريد الإلكتروني ، من حيث أنك تمتلك وتتحكم في ما يرتبط بهذا العنوان. أنت تثبت أنك تمتلك هذا العنوان من خلال توقيع المعاملات باستخدام مفتاحك الخاص (والذي يمكن إنشاؤه من العبارة الأولية) ، وهذا هو السبب في أنه يتعين عليك الاحتفاظ بهذه الخصوصية. من منظور blockchain ، فإن أي شخص يعرف مفتاحًا خاصًا معينًا هو مالك أي أصول مخصصة للعناوين العامة المرتبطة بالمفتاح الخاص. سيبدو عنوانك العام كما يلي:
0xDa4A488d8c58D57F4046CAbAc73DA0DB778DC930
يمكنك استخدام صنبور لإرسال اختبار إيثر إلى حسابك. جرب استخدام ملف صنبور Ropsten: الصق عنوانك العام في حقل الحساب وانقر على “أرسل لي اختبار إيثر”. قريبًا ، ستلاحظ أن حسابك مليء بـ 1 ETH.
ماذا حدث هنا؟ لقد أرسلت عنوانك العام إلى Ethereum Faucet. نفذت The Faucet معاملة ، فأرسلت 1 ETH مملوكًا لعقدها الذكي إلى العنوان الذي قدمته. كان بإمكانك تقديم أي عنوان وسيتم تنفيذ المعاملة. التقطت العقد على الشبكة المعاملة وأدرجتها في كتلة ملغومة ، والتي تم تسجيلها على blockchain وانتشرت في جميع أنحاء الشبكة. بعد ذلك ، قرأ MetaMask من عقدة على blockchain وأبلغ عن المعاملة ورصيدك الحالي. لا يوجد اتصال مباشر بين الحنفية و MetaMask.
هناك طريقة أخرى يمكنك من خلالها إجراء اختبار الأثير. اذهب إلى صنبور MetaMask ؛ لاحظ أن هذا الموقع لن يتم تحميله إذا لم يكن لديك MetaMask (أو واجهة ويب 3 أخرى) مثبتة. توضح هذه العملية تدفق مستخدم مختلف.
هنا يمكنك أن ترى أن خصائص المستخدم غير محددة. باستخدام هذا التنفيذ ، لن تضطر إلى نسخ ولصق عنوانك من MetaMask. عند النقر فوق الزر “طلب 1 إيثر” ، سيسألك MetaMask عما إذا كنت تريد الاتصال بالموقع. سيؤدي قبول هذا الاتصال إلى مشاركة عنوانك العام مع الموقع ، وإظهار رصيدك على الصفحة ، وستتم المعاملة:
يشبه الاتصال بهذه الطريقة تسجيل الدخول إلى موقع ما ؛ ومع ذلك ، لم تكن هناك حاجة لعملية التسجيل. يوفر تسجيل الدخول من خلال MetaMask إمكانيات للدخول الفردي حيث يمكن للمواقع تخصيص نفسها بناءً على الحساب المتصل. في هذه الحالة ، يتم استخدام جافا سكريبت التالية للاتصال بحساب المستخدم ، باستخدام كائن ethereum الذي حقنته MetaMask:
ethereum.request ({الطريقة: ‘eth_requestAccounts’}) ؛
بمجرد اكتمال المعاملة ، يجب أن يكون لديك 2 ETH في محفظتك على شبكة Ropsten.
إرسال اختبار الأثير
الآن ، مرة أخرى في مربع مستخدم MetaMask Ether Faucet ، انقر فوق الزر البرتقالي 1 إيثر للتبرع بـ 1 ETH مرة أخرى إلى الصنبور. سيظهر إشعار جديد:
تطلب منك MetaMask الموافقة على هذه المعاملة ؛ عند التأكيد ، ستقوم MetaMask بالتوقيع على المعاملة باستخدام مفتاحك الخاص ، كما هو مطلوب للتحقق من صحة عقد blockchain. لاحظ أن هناك بعض خيارات المعاملات الأخرى: انقر على الزر “تعديل” أعلى اليسار لرؤية المزيد من التفاصيل. تعوض رسوم الغاز العقد وعمال المناجم عن التكاليف المرتبطة بإجراء معاملة. كل معاملة على Ethereum لها رسوم مرتبطة بالحساب المتضمن في الحفاظ على تشغيل الشبكة. في هذه الحالة ، 0.000021 ETH.
نظرًا لأن أي معاملة يجب أن تمر بعملية تنافسية تتمثل في أن يتم تناولها بواسطة العقد وإدراجها في كتلة قبل تضمينها في blockchain ، يمكنك ضمان حدوث معاملتك بسرعة أكبر عن طريق زيادة مكافأة الغاز الممنوحة لعمال المناجم لإدراج معاملتك في كتلة المقبل.
انقر فوق التالي وقم بالتأكيد. سيتم إدراج معاملتك على أنها معلقة وفي غضون بضع دقائق ، ستكون معاملتك جزءًا من blockchain وسترى رصيد حسابك المحدث في MetaMask.
الخطوات التالية
في هذه الخطوة التمهيدية ، قدمنا لك بعض أساسيات التعامل والتفاعل مع blockchain ، بشكل أساسي من منظور المستخدم باستخدام MetaMask. في الخطوة 2 من هذا الدليل ، ستنشئ شبكة blockchain الخاصة بك ، وتتفاعل معها محليًا ، وتستكشف عقدًا على Remix. في الخطوة 3 ، ستكتسب مزيدًا من الإلمام بالتنمية المحلية ، واستخدام Infura ، وربط كل شيء معًا بـ React ، والاتصال بشبكة Ethereum.
- إعداد المطور: الخطوة الثانية
إعداد المطور: الخطوة الثانية
إعداد المطور: الخطوة 3
إعداد المطور: الخطوة 3
10-Minute Ethereum Orientation