نشر أول عقد ذكي لك
أعتقد أنك متحمس مثلنا لـنشر والتفاعل مع أول عقد ذكي لك على بلوكتشين إيثريوم.
لا تقلق، فبما أنه أول عقد ذكي لنا، سنقوم بنشره على شبكة اختبار محلية، لذا لن يكلفك نشره والتعامل معه كما تشاء أي شيء.
كتابة عقدنا
الخطوة الأولى هي زيارة ريميكس (opens in a new tab) وإنشاء ملف جديد. في الجزء العلوي الأيسر من واجهة ريميكس، أضف ملفًا جديدًا وأدخل اسم الملف الذي تريده.
في الملف الجديد، سنلصق النص البرمجي التالي.
1// SPDX-License-Identifier: MIT2pragma solidity >=0.5.17;3
4contract Counter {5
6 // متغير عام من نوع عدد صحيح غير موقّع للاحتفاظ بعدد المرات7 uint256 public count = 0;8
9 // دالة تزيد العداد الخاص بنا10 function increment() public {11 count += 1;12 }13
14 // دالة getter غير ضرورية للحصول على قيمة العد15 function getCount() public view returns (uint256) {16 return count;17 }18
19}إذا كنت معتادًا على البرمجة، فيمكنك بسهولة تخمين ما يفعله هذا البرنامج. إليك شرح سطر بسطر:
- السطر 4: نحن نعرّف عقدًا باسم
Counter. - السطر 7: يخزن عقدنا عددًا صحيحًا واحدًا غير موقَّع يسمى
countويبدأ من 0. - السطر 10: ستقوم الدالة الأولى بتعديل حالة العقد وزيادة (
increment()) متغيرناcount. - السطر 15: الدالة الثانية هي مجرد دالة getter لتتمكن من قراءة قيمة المتغير
countخارج العقد الذكي. لاحظ أنه نظرًا لأننا حددنا متغيرcountالخاص بنا كمتغير عام (public)، فهذا ليس ضروريًا ولكنه معروض كمثال.
هذا كل شيء لأول عقد ذكي بسيط لنا. كما تعلم، فهو يبدو كفئة من لغات البرمجة الشيئية (OOP) مثل جافا أو سي بلس بلس. حان الوقت الآن للتعامل مع عقدنا.
نشر عقدنا
بما أننا كتبنا أول عقد ذكي لنا، سنقوم الآن بنشره على البلوكتشين لنتمكن من التعامل معه.
نشر العقد الذكي على البلوكتشين هو في الواقع مجرد إرسال معاملة تحتوي على النص البرمجي للعقد الذكي المجمّع دون تحديد أي مستلمين.
سنقوم أولاً بـتجميع العقد من خلال النقر على أيقونة التجميع على الجانب الأيسر:
ثم انقر فوق زر التجميع:
يمكنك اختيار خيار "التجميع التلقائي"، وبذلك سيتم دائمًا تجميع العقد عند حفظ المحتوى في محرر النصوص.
ثم انتقل إلى شاشة "نشر المعاملات وتشغيلها":
بمجرد وصولك إلى شاشة "نشر المعاملات وتشغيلها"، تحقق جيدًا من ظهور اسم العقد الخاص بك وانقر على "نشر". كما ترى في الجزء العلوي من الصفحة، البيئة الحالية هي "جافا سكريبت VM"، مما يعني أننا سنقوم بنشر عقدنا الذكي والتفاعل معه على بلوكتشين اختبار محلية لنتمكن من الاختبار بشكل أسرع وبدون أي رسوم.
بمجرد النقر فوق زر "النشر"، سترى عقدك يظهر في الأسفل. انقر على السهم الموجود على اليسار لتوسيعه حتى نرى محتوى عقدنا. هذا هو متغيرنا counter، ودالتنا increment()، ودالة getter getCounter().
إذا نقرت على زر count أو getCount، فسيسترد بالفعل محتوى متغير count الخاص بالعقد ويعرضه. نظرًا لأننا لم نستدعِ دالة increment بعد، فيجب أن تعرض 0.
دعنا الآن نستدعي دالة increment بالنقر على الزر. سترى سجلات المعاملات التي يتم إجراؤها تظهر في أسفل النافذة. سترى أن السجلات مختلفة عندما تضغط على الزر لاسترداد البيانات بدلاً من زر increment. ذلك لأن قراءة البيانات على البلوكتشين لا تحتاج إلى أي معاملات (كتابة) أو رسوم. لأن تعديل حالة البلوكتشين فقط يتطلب إجراء معاملة:
بعد الضغط على زر الزيادة الذي سينشئ معاملة لاستدعاء دالة increment() الخاصة بنا، إذا نقرنا مرة أخرى على أزرار count أو getCount، فسنقرأ الحالة المحدثة حديثًا لعقدنا الذكي مع كون متغير العد أكبر من 0.
في تعليمات الاستخدام التالية، سنتناول كيفية إضافة الأحداث إلى عقودك الذكية. يُعد تسجيل الأحداث طريقة مناسبة لتصحيح أخطاء عقدك الذكي وفهم ما يحدث أثناء استدعاء دالة.
آخر تحديث للصفحة: 3 مارس 2026







