تخطٍ إلى المحتوى الرئيسي

نشر أول عقد ذكي لك

العقود الذكيه
Remix
Solidity
نشر
المستوى المبتدئ
jdourlens
3 أبريل 2020
3 دقيقة قراءة

أعتقد أنك متحمس مثلنا لـنشر والتفاعل مع أول عقد ذكي لك على بلوكتشين إيثريوم.

لا تقلق، فبما أنه أول عقد ذكي لنا، سنقوم بنشره على شبكة اختبار محلية، لذا لن يكلفك نشره والتعامل معه كما تشاء أي شيء.

كتابة عقدنا

الخطوة الأولى هي زيارة ريميكس (opens in a new tab) وإنشاء ملف جديد. في الجزء العلوي الأيسر من واجهة ريميكس، أضف ملفًا جديدًا وأدخل اسم الملف الذي تريده.

إضافة ملف جديد في واجهة ريميكس

في الملف الجديد، سنلصق النص البرمجي التالي.

1// SPDX-License-Identifier: MIT
2pragma 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) مثل جافا أو سي بلس بلس. حان الوقت الآن للتعامل مع عقدنا.

نشر عقدنا

بما أننا كتبنا أول عقد ذكي لنا، سنقوم الآن بنشره على البلوكتشين لنتمكن من التعامل معه.

نشر العقد الذكي على البلوكتشين هو في الواقع مجرد إرسال معاملة تحتوي على النص البرمجي للعقد الذكي المجمّع دون تحديد أي مستلمين.

سنقوم أولاً بـتجميع العقد من خلال النقر على أيقونة التجميع على الجانب الأيسر:

أيقونة التجميع في شريط أدوات ريميكس

ثم انقر فوق زر التجميع:

زر التجميع في مُجمِّع ريميكس solidity

يمكنك اختيار خيار "التجميع التلقائي"، وبذلك سيتم دائمًا تجميع العقد عند حفظ المحتوى في محرر النصوص.

ثم انتقل إلى شاشة "نشر المعاملات وتشغيلها":

أيقونة النشر في شريط أدوات ريميكس

بمجرد وصولك إلى شاشة "نشر المعاملات وتشغيلها"، تحقق جيدًا من ظهور اسم العقد الخاص بك وانقر على "نشر". كما ترى في الجزء العلوي من الصفحة، البيئة الحالية هي "جافا سكريبت VM"، مما يعني أننا سنقوم بنشر عقدنا الذكي والتفاعل معه على بلوكتشين اختبار محلية لنتمكن من الاختبار بشكل أسرع وبدون أي رسوم.

زر النشر في مُجمِّع ريميكس solidity

بمجرد النقر فوق زر "النشر"، سترى عقدك يظهر في الأسفل. انقر على السهم الموجود على اليسار لتوسيعه حتى نرى محتوى عقدنا. هذا هو متغيرنا counter، ودالتنا increment()، ودالة getter ‏getCounter().

إذا نقرت على زر count أو getCount، فسيسترد بالفعل محتوى متغير count الخاص بالعقد ويعرضه. نظرًا لأننا لم نستدعِ دالة increment بعد، فيجب أن تعرض 0.

زر الدالة في مُجمِّع ريميكس solidity

دعنا الآن نستدعي دالة increment بالنقر على الزر. سترى سجلات المعاملات التي يتم إجراؤها تظهر في أسفل النافذة. سترى أن السجلات مختلفة عندما تضغط على الزر لاسترداد البيانات بدلاً من زر increment. ذلك لأن قراءة البيانات على البلوكتشين لا تحتاج إلى أي معاملات (كتابة) أو رسوم. لأن تعديل حالة البلوكتشين فقط يتطلب إجراء معاملة:

سجل المعاملات

بعد الضغط على زر الزيادة الذي سينشئ معاملة لاستدعاء دالة increment() الخاصة بنا، إذا نقرنا مرة أخرى على أزرار count أو getCount، فسنقرأ الحالة المحدثة حديثًا لعقدنا الذكي مع كون متغير العد أكبر من 0.

الحالة المحدثة حديثًا للعقد الذكي

في تعليمات الاستخدام التالية، سنتناول كيفية إضافة الأحداث إلى عقودك الذكية. يُعد تسجيل الأحداث طريقة مناسبة لتصحيح أخطاء عقدك الذكي وفهم ما يحدث أثناء استدعاء دالة.

آخر تحديث للصفحة: 3 مارس 2026

هل كانت تعليمات الاستخدام هذه مفيدة؟