الغرض من هذا الدليل هو جعلك تنغمس في Web3 بأسرع ما يمكن حتى يكون لديك السياق والفهم الأساسي اللازمين لبدء التعلم والبدء في التطوير.
لماذا Blockchain?
إذا كنت جديدًا في هذا المجال ، فقد لا يكون واضحًا ما تقدمه “الإنترنت اللامركزية” للمطور. فكر في blockchain العامة مثل Ethereum على أنه تعريف واضح لـ “حالة” – ومصدر للحقيقة – لكل من يشارك فيها ، ويمكن الوصول إليه من قبل أي شخص متصل بالإنترنت ، وهو نظام يستخدم قوة بروتوكول المصدر المفتوح والتكرار. من شبكات نظير إلى نظير لتبقى موثوقة وآمنة. بدلاً من مطالبة كل مطور تطبيق بإنشاء الحالة الكاملة لتطبيقهم والحفاظ عليها على خوادم خاصة ، يمكن تخزين الكثير على blockchain العام واستعادته منه. خلفية عامة وموثوقة وآمنة.
السبب في إمكانية ذلك يرجع إلى الخصائص الفريدة لقاعدة بيانات blockchain. إنها للكتابة فقط: حيث يمكن لقاعدة البيانات النموذجية إضافة السجلات وإزالتها ، فإن بيانات blockchain موجودة إلى الأبد ولا يمكن إزالتها. تحتفظ شبكة العقد بقاعدة البيانات هذه على أنها “دفتر أستاذ موزع” ولها بروتوكولات صارمة حول من لديه الإذن بالكتابة في وقت معين. أحد الجوانب المثيرة للاهتمام للتكنولوجيا هو كيفية توزيع أذونات الكتابة بين العقد التي قد لا تتطلب إذنًا خاصًا للانضمام. إذا قمت بتكوين عقدة Ethereum العامة الخاصة بك ، فسيكون لديك حق الوصول للكتابة إلى الشبكة بأكملها: شريطة أن تكون قد أكملت “إثبات العمل” المطلوب لمنحك امتياز كتابة عقدة قبل أن تفعل أي عقدة أخرى.
من الأمثلة الرئيسية والنموذجية على استخدام تقنية blockchain سهولة إرسال واستقبال العملات المشفرة. يسمح دفتر الأستاذ العام لإيثريوم للمطور بتنفيذ بوابات الدفع بدون بنوك أو حسابات أو وسطاء آخرين.
يمكن للمطور إنشاء رمز Ethereum الخاص به دون الحاجة إلى إنشاء البنية التحتية اللازمة للمستخدمين لتداولها. قد تقوم منصة الألعاب عبر الإنترنت بترميز العناصر داخل اللعبة ، ويمكن للمستخدمين شراء هذه الرموز وتداولها خارج النظام الأساسي وامتلاكها بشكل منفصل عن منصة الألعاب نفسها. بالإضافة إلى تداول العناصر للاستخدام داخل اللعبة ، تتمتع المقتنيات الرقمية بإمكانيات مستقبلية هائلة. نظرًا لتزايد شعبية الرياضات الإلكترونية ، قد يكون لديك ما يعادل رمزًا رقميًا مكافئًا لـ “كرة الجري في المنزل”.
مع وجود زوج مفاتيح عام / خاص لكل مستخدم ، أصبحت مصادقة المستخدم أبسط بكثير حيث لا تحتاج التطبيقات إلا إلى التحقق من أن المستخدم يمكنه توقيع المعاملات باستخدام مفتاحه الخاص.
يمكن استخدام العقود الذكية لإنشاء أموال قابلة للبرمجة. ضع في اعتبارك استخدامًا أساسيًا لعقد ذكي قابل للبرمجة لمعالجة الموقف الذي يريد فيه مالكان شقة تقسيم مدفوعات إيجار المستأجر بنسبة 50/50. في العادة ، يتعين على المستأجر أن يدفع لكل مالك على حدة ، أو يدفع لمالك واحد أو وكيل ، ويقوم المالك أو الوكيل بصرف الأموال. في حين أن هذا الموقف لا يمثل مشكلة بشكل خاص ، ضع في اعتبارك الثقة الضمنية المطلوبة في أحد الأفراد لتزويد الآخر بنصيبه. قارن هذا بعقد ذكي بسيط يقسم برمجيًا أي أموال واردة ويرسلها إلى عنوان كل مالك. يحتاج المستأجر فقط إلى إرسال إيجاره إلى هذا العنوان وسيتلقى كل مالك حصته على الفور. نظرًا لأمان واستقرار blockchain مثل Ethereum ، يمكن ضمان كل مالك أن العقد الذكي سيعمل حسب الرغبة ، ويمكنه تدقيق الكود الخاص به.
بمجرد أن نحصل على العمود الفقري الرقمي للثقة الذي توفره blockchain ، يمكننا أيضًا تطبيق فوائد البرمجة على المشكلات الاجتماعية المهمة. يمكننا تقديم خدمة مصرفية في بضعة أسطر من التعليمات البرمجية. يمكننا تأكيد الهوية ببضع نقرات. كل ذلك باستخدام بروتوكول يمكن تشغيله على أي جهاز كمبيوتر تقريبًا في أي مكان في العالم.
نظرًا لأن المساحة جديدة ومتطورة ، فإن الفرصة متاحة للمطورين لبناء أنواع جديدة من الأدوات والتطبيقات والأنظمة ، والتوصل إلى حالات استخدام جديدة لهذه التكنولوجيا.
حل في البحث عن مشكلة?
من الأشياء الشائعة في انتقادات تقنية blockchain أنها حل في البحث عن مشكلة. يمكن القول إن العملة الرقمية كانت أول تطبيق قاتل لـ blockchain ، وأن Distributed Finance ، أو DeFi ، يتشكل ليكون التالي ، والمدى الكامل لكيفية تطبيق هذه التكنولوجيا غير معروف حاليًا وهو أحد الأسباب الرئيسية للمطورين في الفضاء تجد أنه من المثير أن تكون جزءًا منها. لأكثر من عقد من الزمان ، لم يكن لتكنولوجيا الليزر أي استخدام ظاهر ، حتى تمكن الباحثون والمجرِّبون ورجال الأعمال من تطبيقها بطرق غير متوقعة تمامًا. في حين أنه يمكن استخدام نفس الحجة لأي تقنية جديدة ، إلا أن التبني الواسع النطاق للعملة الرقمية وأكثر من 350 مليار دولار المحتواة حاليًا في سلاسل الكتل الموزعة وغير المُدارة واللامركزية ، أمر رائع للغاية.
الهيكل الأساسي للتطبيق الموزع
بشكل عام ، التطبيق الموزع هو أحد التطبيقات التي تتصل بلوكشين في مكان ما في مكدسها ، ومن المحتمل بطريقة ما أن تكون أساسية لتشغيلها. التطبيقات الموزعة هي مزيج من أنظمة الواجهة الأمامية والخلفية المعتادة التي تجدها في تطبيق ويب ولكنها ستستخدم مكتبة مثل web3.js للاتصال بشبكة Ethereum. يتم توزيع بعض التطبيقات الموزعة بالكامل: تعيش بالكامل على شبكات موزعة.
على طرف المستخدم, ميتامسك هو مكون إضافي شائع يدير محفظة Ethereum للمستخدمين. يوفر MetaMask واجهة للمستخدم لتوقيع المعاملات وإثبات “هويته”.
قد يتصل تطبيق موزع معين بـ Ethereum blockchain وأيضًا بمحفظة MetaMask للمستخدمين (أو محفظة أخرى) للمصادقة.
التواصل مع Ethereum
عادةً ، للتفاعل مع Ethereum ، ستحتاج إلى تشغيل عقدة. العقدة هي جزء أساسي من هيكل blockchain ، النظير الذي يتصل بأقران آخرين لتشكيل الهيكل اللامركزي. البروتوكول هو الملك على الشبكة الرئيسية العامة: لا يوجد خادم مركزي ، ولا سلطة ، ولا حدود لمن يمكنه تشغيل العقدة. لا يوجد سوى بروتوكول مشترك لجميع العقد المشاركة.
يفضل العديد من مطوري التطبيقات عدم تشغيل عقدة Ethereum الخاصة بهم ، لذا فإن الخدمات مثل انفورا موجودة لتوفير بوابة وواجهة برمجة تطبيقات لـ Ethereum يمكن للمطورين استخدامها بدلاً من ذلك.
العقود الذكية
في حين أن شبكة Bitcoin هي واحدة من أكثر سلاسل الكتل شهرة ، إلا أن Ethereum لديها مجموعة ميزات أكثر إثارة للمطورين لأنها تتضمن آلة افتراضية كاملة Turing يمكنها تشغيل برامج صغيرة تسمى العقود الذكية. نتيجة لذلك ، تمتلك Ethereum أقوى مجتمع مطور وأكثرهم نشاطًا بين أي من أنظمة blockchain البيئية.
تعمل العقود الذكية على العقد وتستخدم المعاملات لمدخلاتها ومخرجاتها. توجد العقود الذكية في العناوين الموجودة على blockchain ، بنفس الطريقة التي يعمل بها عنوان حساب المستخدم. للتفاعل مع عقد ذكي ، ما عليك سوى إرسال معاملة إليه مع بيانات الإدخال.
غاز
يتطلب تشغيل عقد ذكي غازًا ، وهي تكلفة صغيرة تعوض مشغلي العقدة عن خدمة تنفيذ العقد الذكي ، مع تقليل حدوث البريد العشوائي (عن طريق جعل البريد الإلكتروني العشوائي مكلفًا) ومنع العقود الذكية ذات الترميز السيئ من التكرار اللانهائي وتعطيل الشبكة.
Mainnet و Testnets والشبكات الأخرى
تشير الشبكة الرئيسية في لغة blockchain إلى الشبكة الأساسية النشطة لبروتوكول معين. في حالة Ethereum ، mainnet هي المكان الذي يتم فيه تبادل القيمة الحقيقية ، وتعتبر مصدر الحقيقة. لكن يمكن لأي مجموعة من العقد تشكيل شبكتها الخاصة. تخدم شبكات Testnets مجتمع المطورين من خلال تقديم شبكات أصغر بكثير حيث تكون Eth and Gas مجانية ، بحيث يمكن للمطورين اختبار مشاريعهم ورموزهم دون مخاطر. يتم تسمية شبكات Ethereum testnets Ropsten و Kovan و Rinkeby و Görli.
تُستخدم شبكات Ethereum أيضًا لتطبيقات المؤسسات: شبكات مخصصة تعمل على أساس إذن (مقابل الشبكة الرئيسية وشبكات testn غير المصرح بها) لتسهيل المعاملات والعمليات الأخرى بين مجموعة صغيرة من المؤسسات (على سبيل المثال). تحتوي هذه الشبكات على عدد أقل بكثير من العقد وعادة ما تخدم غرضًا محددًا. البنوك الكبيرة ، على سبيل المثال ، قد تستخدم blockchain للتسوية بين البنوك.
التطور في Ethereum
يتم التطوير في Ethereum بشكل عام أولاً على البلوكشين المحلية المغزولة بالمنزل. يتمتع المطورون بحرية استخدام شيء مثل geth ، برنامج سطر الأوامر الذي يتيح لك إنشاء شبكات Ethereum. لكن هذا يشبه البرمجة بلغة منخفضة المستوى: مما يجعل الأمور أسهل ، تخدم مجموعة Truffle العديد من احتياجات المطورين. يُسهل Ganache ، وهو جزء من المجموعة ، على المطورين تشغيل شبكة blockchain محلية لاختبار تطبيقاتهم ، ويقدم “blockchain بنقرة واحدة” لأغراض التطوير ، إلى جانب أدوات سطر الأوامر. يساعد Drizzle في تطوير الواجهة الأمامية ، ويعتبر Truffle نفسه إطار عمل لجعل تطوير العقود الذكية ونشرها أسهل.
يتطلب التفاعل مع blockchain نفسها استخدام واجهة برمجة التطبيقات (مثل web3.js) والوصول إلى عقدة ؛ بدلاً من تشغيل العقد الخاصة بهم ، سيستخدم العديد من المطورين خدمة مثل انفورا كواجهة برمجة تطبيقات Ethereum.
لغات العقد الذكية
حاليًا ، اللغة الأكثر شيوعًا لترميز العقود الذكية هي صلابة. من السهل جدًا اختيار هذه اللغة التي تشبه جافا سكريبت للمطورين الجدد ، خاصةً أولئك الذين لديهم خبرة في ترميز الويب. ريمكس هو IDE عبر الإنترنت يتيح للمطورين تجربة إنشاء عقود ذكية. هناك العديد من التفاصيل المهمة التي يجب تعلمها لمبرمجي العقود الأذكياء ، حيث تعمل العقود الذكية على الشبكة الرئيسية بقيمة حقيقية ، ولا يمكن تغييرها بمجرد نشرها (على الرغم من وجود منهجيات برمجة تساعد في ذلك).
المكدس الكامل
كما هو الحال مع جميع تطوير الويب الحديث ، هناك الكثير من الخيارات للمكونات لاستخدامها على مستويات مختلفة من المكدس. يمكنك الحصول على مزيد من التفاصيل في حزمة blockchain المحدثة دائمًا.
كومة مشروع بسيط
إليك مجموعة نموذجية من أدوات التطوير التي قد تستخدمها في مشروع بسيط:
NPM
مدير حزم العقدة ، جزء من node.js
إطار الكمأة
مجموعة من الأدوات لتسهيل التطوير
غاناش
من إطار Truffle ، تُستخدم لإطلاق blockchain خاص على جهازك الخاص
ميتامسك
واجهة مستخدم blockchain وبوابة إلى Ethereum ؛ إنه مكون إضافي للمتصفح وتطبيق للجوال يمكن لتطبيقك الاتصال به للسماح للمستخدمين بتوقيع المعاملات وتنفيذ مهام أخرى.
صلابة
لغة برمجة شائعة للعقود الذكية
HTML / CSS / JS
للواجهة الأمامية الخاصة بك
Web3.js
مكتبة Ethereum API تتيح لك الاتصال والتفاعل مع شبكة Ethereum
انفورا
خدمة Ethereum API تتيح للمطورين الوصول إلى شبكة Ethereum دون الحاجة إلى تشغيل عقدة خاصة بهم
إذا كنت مستعدًا للبدء ، فسوف يتطرق دليلنا المكون من 3 خطوات إلى مزيد من التفاصيل لتنشيطك وتشغيلك على blockchain بسرعة من خلال المشي خلال.
- إعداد المطور: الخطوة الأولى
إعداد المطور: الخطوة الأولى
إعداد المطور: الخطوة الثانية
إعداد المطور: الخطوة الثانية
إعداد المطور: الخطوة 3