بعد إنهاء هذا الدليل ستكتب عقدا ذكيا بلغة سوليديتي (Solidity) وتنشره على شبكة اختبار إيثريوم (Ethereum) وتربطه بواجهة ويب تتفاعل مع محفظة رقمية. كل ما تحتاجه هو فهم أساسي لجافاسكريبت (JavaScript) وقبول فكرة أن المنطق الذي تنشره على البلوكشين يصبح عاما وغير قابل للتعديل بسهولة.
ما الذي تحتاجه قبل البدء؟
تحتاج إلى أربعة أشياء فقط: معرفة بسيطة بجافاسكريبت، محفظة رقمية، شبكة اختبار، ومحرر أكواد.
معرفة مبدئية بجافاسكريبت (JavaScript) ولغة ترميز HTML. يمكنك تقويتها من خلال تعلم React من الأساسيات لاحقا لأن أغلب واجهات التطبيقات اللامركزية تبنى بها.
إضافة متصفح ميتاماسك (MetaMask) مع محفظة تجريبية.
بيئة تشغيل نود جي إس (Node.js) ومدير الحزم npm.
أداة تطوير هاردات (Hardhat) أو فاوندري (Foundry). سنستخدم Hardhat في هذا الدليل.
رموز اختبار من صنبور شبكة سيبيوليا (Sepolia) بعد إنشاء حساب مجاني.
قبل الدورة، ما هو إيثريوم (Ethereum) وما هي سوليديتي (Solidity)؟
إيثريوم هو شبكة بلوكشين تدير آلة افتراضية تسمى EVM تنفذ العقود الذكية. سوليديتي هي اللغة العليا لكتابة تلك العقود، وتشبه جافاسكريبت في تركيبها لكنها مصممة لإدارة القيمة والتحقق من التوقيعات.
الفرق الجوهري: إيثريوم هو المكان الذي يعمل فيه الكود، وسوليديتي هي الطريقة التي تكتب بها التعليمات. عندما تنشر عقدا على إيثريوم، تحصل على عنوان دائم يقرأ منه أي متصفح أو تطبيق.
كيف تطور أول تطبيق لامركزي من الصفر على بلوكشين ايثريوم؟
أسرع طريقة للفهم هي بناء عقد تخزين بسيط يسمى SimpleStorage يخزن رقما ويقرؤه. هذا المسار العملي يختصر خطوات Building Your First DApp With Solidity.
شغل
npx hardhat initداخل مجلد جديد واختر قالب JavaScript.أنشئ ملف
SimpleStorage.solبعقد يحتوي متغيرuint256 valueودالتينsetوget.اكتب اختبارا يستدعي الدالتين ثم نفذه بـ
npx hardhat test.اضبط شبكة Sepolia في ملف الإعداد، ثم انشر العقد بـ
npx hardhat run scripts/deploy.js --network sepolia.اربط العقد بواجهة رياكت (React) باستخدام مكتبة إيثرز جي إس (ethers.js) وأضف زراً يوقع معاملة
set.
ثلاثة أخطاء توقف أغلب المبتدئين:
نشر العقد قبل كتابة الاختبارات.
استخدام محفظة تحوي أموالا حقيقية أثناء التجربة.
تجاهل تحذيرات المترجم أو رسوم الغاز المرتفعة.
المطور الذي ينجح لا يتعلم كتابة العقود فقط، بل يتعلم قراءة مخرجات المترجم واختراق كوده قبل أن يفعله غيرك.
التطبيقات اللامركزية (dApps): كيف تعمل وما مخاطرها؟
التطبيق اللامركزي هو واجهة ويب تتصل بعقد ذكي عبر محفظة المستخدم، وينفذ منطقه الأساسي على البلوكشين بدلا من خادم تديره شركة واحدة.
عندما تضغط زر set، تطلب المحفظة توقيع المعاملة، وتدفع رسوم غاز، ثم يسجل العقد القيمة الجديدة على السلسلة. لا يوجد خادم وسيط يملك بياناتك، لكن لا يوجد أيضا زر استرجاع إن أخطأت.
أبرز المخاطر العملية:
ثغرات العقد الذكي القابلة للاستغلال المالي.
رسوم الغاز المتقلبة على شبكة إيثريوم الرئيسية.
واجهات مزيفة تنتحل أسماء تطبيقات معروفة.
غياب الدعم الفني المركزي عند فقدان التوكنات.
لفهم أسس المحافظ والعملات قبل التعامل مع العقود، ارجع إلى البيتكوين للمبتدئين.
ماذا تكتسب من دورة تعلم تطوير تطبيقات البلوكشين اللامركزية Dapps باستخدام Solidity؟
ستخرج من الدورة التدريبية وقد أنجزت أربعة أشياء: كتابة عقد ذكي، اختباره، نشره على شبكة اختبار، وربطه بواجهة تتفاعل مع المحفظة.
كتابة عقود سوليديتي مع إدارة الصلاحيات والأحداث.
استخدام هاردات أو فاوندري للاختبار والنشر.
الربط بين الواجهة والعقد عبر ethers.js.
قراءة الكود البرمجي بحثا عن الثغرات الشائعة.
المصادر المجانية المتاحة الآن تناسب المبتدئ: منصة Cyfrin Updraft تقدم مسارا تفاعليا مجانيا، ودورة WTF Solidity تغطي الأساسيات بأمثلة قابلة للتشغيل، وسلسلة Ethernaut من أوبن زيبلين (OpenZeppelin) تحول تعلم الثغرات إلى تحديات. قبل اختيار الدورة، راجع مواقع ومنصات وتطبيقات تعليمية مجانية. إن أردت مسارا مدفوعا يقودك من إنشاء بلوكشين إلى عقد ذكي، جرب دورة Blockchain A-Z لبناء بلوكشين وعقود ذكية.
ماذا تفعل الآن؟
أنشئ مجلد مشروع فورا وشغل أمر npx hardhat init. لا تنتظر أن تكمل كل فيديو تعليمي قبل كتابة أول سطر كود.
بعد أن تنشر أول عقد وتربطه بواجهة، انتقل إلى بناء تطبيق يسمح لمستخدمين آخرين بالتفاعل معه، ثم ادرس تحديات الاختراق على Ethernaut. هذه هي النقلة من متعلم إلى مطور بلوكشين يملك مشروعا يمكن عرضه.
هل أحتاج خبرة في البرمجة لتعلم Solidity؟
نعم، تحتاج إلى معرفة أساسية بمفاهيم البرمجة مثل المتغيرات والدوال. معرفة جافاسكريبت تختصر الطريق، لكن يمكنك تعلمها بالتوازي مع بناء عقود بسيطة.
كم يستغرق بناء أول تطبيق لامركزي؟
إذا خصصت ساعتين يوميا، يمكنك نشر أول عقد بسيط على شبكة اختبار خلال أسبوع واحد. إضافة واجهة ويب كاملة تحتاج أسبوعا إضافيا غالبا.
ما الفرق بين Ethereum و Solidity؟
Ethereum هي شبكة البلوكشين التي تنفذ العقود الذكية، بينما Solidity هي لغة البرمجة المستخدمة لكتابة تلك العقود. الأولى هي مكان التنفيذ والثانية هي طريقة كتابة التعليمات.
هل يمكن تطوير DApp بدون معرفة بالواجهة الأمامية؟
يمكنك كتابة العقود ونشرها باستخدام أدوات مثل Hardhat فقط، لكن المستخدمين لن يستطيعوا التفاعل معها بسهولة. واجهة بسيطة بلغة React أو حتى HTML مع ethers.js تجعل التطبيق قابلا للاستخدام.
ما تكلفة نشر عقد ذكي على إيثريوم؟
على شبكة اختبار Sepolia، تستخدم رموز اختبار مجانية ولا تدفع أموالا حقيقية. على الشبكة الرئيسية تدفع رسوم غاز تتغير حسب ازدحام الشبكة وتعقيد العقد.
