كيف تكتب وتنشر أول عقد ذكي لك؟
نشرت: 2020-02-13تعد العقود الذكية اتجاهًا رائدًا في تقنية Blockchain اليوم. إذا كنت تفكر في بناء مهنة في هذا المجال ، فستساعدك هذه المقالة في كل ما تحتاج إلى معرفته لكتابة أول عقد ذكي لك !
تعلم دورات البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.
جدول المحتويات
كيف تكتب عقدك الذكي الأول؟
سمح العصر الرقمي اليوم لطرفين بالدخول في اتفاقيات دون مشاركة طرف ثالث. تتم معالجة هذه العقود الرقمية بواسطة blockchain وتخزينها في قاعدة بيانات عامة. لذا ، فإن المعاملات قابلة للتتبع ولا رجعة فيها.
إذا كنت ترغب في كتابة عقدك الذكي الأول ، فستضعك الموارد المجمعة أدناه على المسار الصحيح.
قراءة: 10 اتجاهات وتوقعات لـ Blockchain لعام 2020
تحديد العقود الذكية
تم اقتراح مصطلح "العقد الذكي" لأول مرة من قبل عالم الكمبيوتر الأمريكي نيك زابو في عام 1996. وهو عبارة عن بروتوكول كمبيوتر أو بروتوكول رقمي يسهل ، ويتحقق ، ويفرض تنفيذ العقد. كعملية حسابية للأغراض العامة ، يوجد عقد ذكي في Blockchain أو دفتر الأستاذ الموزع.

بمعنى آخر ، العقد مدمج في الكود في شكل برنامج كمبيوتر. ويحصل الفاعلون المعينون على إذن بتنفيذ وظيفة البرنامج. يجب استيفاء القواعد المحددة مسبقًا من أجل التنفيذ الناجح للعقد الذكي.
خذ طلب شراء (PO) ، على سبيل المثال. إنه عقد بسيط بين البائع والمشتري. يجب استيفاء شروط معينة لتنفيذ أمر الشراء. تشمل هذه المواصفات الدفع الناجح من قبل المشتري ، وتسليم البضائع من قبل المورد وفقًا للشروط المتفق عليها وقت الشراء ، وشروط الإرجاع وما إلى ذلك.
لذلك ، يمكن للمشتري تقديم طلب ويمكن للمورد تنفيذ الطلب بتنسيق رقمي. عبر شبكة الحوسبة ، تسمى جميع الإجراءات المعاملات. ويتم التحقق من جميع المعاملات وتنفيذها من قبل الشبكة. بمجرد التأكيد ، لا يمكن التراجع عن المعاملات.
قراءة: المتطلبات الأساسية لتعلم Blockchain. ليس الأمر كما تعتقد
متطلبات إعداد العقد الذكي
تتوفر لغات برمجة مختلفة لبناء العقود الذكية. يعتمد اختيار اللغة بشكل أساسي على منصة blockchain. على سبيل المثال ، تعد Solidity و Vyper و eWASM و Ethereum bytecode من أكثر لغات العقود الذكية شيوعًا لمنصة Ethereum blockchain.
بيئة تطوير العقود الذكية
قبل كتابة أول عقد ذكي لك ، قم بإعداد الملعب لتطويره. سيكون التعمق في عالم blockchain أمرًا صعبًا بدون معرفة بيئات التطوير. يمكنك الاختيار من بين البدائل التالية.
- Remix IDE: بيئة تطوير متكاملة لبناء واختبار العقود الذكية. يوصى بشدة بهذا الخيار عبر الإنترنت تمامًا للمبتدئين ، لأنه لا يتطلب أي تثبيت. علاوة على ذلك ، فإنه يفرض تحديات أقل على النماذج الأولية والتحقق السريع من العقود الذكية.
- الإعداد المحلي: توفر الأجهزة المحلية موردًا آخر لتطوير العقود الذكية. توفر الأدوات قدرًا أكبر من المرونة للتطبيقات على مستوى المؤسسات. وعلى الرغم من أن إعداد هذه البيئة يستغرق وقتًا ، إلا أن اختيار الأدوات للتطبيقات الموزعة أو DApps يعد عملية مباشرة بشكل معقول.
هيكل العقد الذكي
دعونا نستكشف عقد أمر شراء تم تطويره باستخدام لغة برمجة Solidity.
يتبع عقد سوليديتي الذكي هيكلًا قياسيًا يتكون من "البيانات" و "الوظيفة". بينما تحافظ البيانات على الحالة الحالية للعقد الذكي ، تطبق الوظيفة المنطق لتحويل هذه الحالة.
يبدأ العقد ببيان يسمى " توجيه براغما ". تتيح الكلمة الأساسية "pragma" عمليات تحقق المترجم أو الميزات. ضع في اعتبارك البيان أدناه:
صلابة براغما> = 0.4.0 <= 0.6.0
يهدف الإعلان إلى ضمان عدم ترجمة العقد الذكي بإصدار مترجم أقدم من 0.40 وبعد 0.60.
بعد ذلك يأتي " إعلان العقد ". يستخدم البيان التالي الكلمة الأساسية "عقد" ويحدد عقدًا فارغًا باسم "أمر الشراء".
أمر شراء بموجب عقد {}
تخزين البيانات
يحتوي كل عقد أو برنامج كمبيوتر على بيانات مخزنة فيه. توفر المتغيرات طريقة لتخزين البيانات وتسميتها واستردادها ومعالجتها. يوجد نوعان من المتغيرات في Solidity - Value و Reference. يتم نسخ متغيرات نوع القيمة دائمًا عند استخدامها كوسيطات دالة ، مثل القيم المنطقية والأعداد الصحيحة وما إلى ذلك.
حيث أن متغيرات نوع المرجع تخزن موقع البيانات. أي تغيير في متغير مرجعي واحد يؤثر على متغير آخر. لذلك ، يجب إدارتها بعناية. تتضمن الأمثلة المصفوفات والبنى.
مضيفا البيانات
في أمر الشراء عادةً ما يكون هناك كمية منتج مرتبطة به. الآن ، دعونا نضيف متغير بيانات إلى العقد الذكي. سنضيف منتجًا_كمية متغيرًا بافتراض أنه سيكون له قيم موجبة فقط.
أولاً ، نقدم عددًا صحيحًا بدون إشارة يمثله uint256. هنا ، تعني كلمة (u) غير الموقعة نوع المتغير الذي يمكن أن يمثل فقط أعدادًا صحيحة موجبة ، و 256 تشير إلى تخزين 256 بت.

أمر شراء بموجب عقد {uint256 product_quantity؛}
البناء
يقوم المُنشئ بتهيئة العقد الذكي ببعض القيم عند نشر العقد. افترض أن كمية المنتج مضبوطة على 100.
مُنشئ () عام {product_quantity = 100 ؛}
وتجدر الإشارة إلى أن الكلمة المفتاحية أو معدّل الوصول "عام" يحدد أن الوظيفة غير مقيدة. لذلك ، يمكن لأي شخص الوصول إليه.
إضافة وظائف
إضافة وظائف تجعل برنامجك تفاعليًا. هذه إمكانات خاضعة للرقابة مسبوقة بالكلمة الأساسية "وظيفة". يتضمن الإعلان اسم الوظيفة ومعدل الوصول ومحول الحالة وقيمة الإرجاع.
لقراءة القيمة المخزنة ، نضيف "get function". مع "get_quantity" ، تحصل هذه الوظيفة على القدرة على استرداد أو قراءة البيانات المخزنة. انظر إلى البيان الوارد أدناه.
دالة get_quantity () إرجاع طريقة العرض العامة (uint256) {return product_quantity؛}
بتقسيمها أكثر ، نرى ما يلي:
- اسم الوظيفة: get_quantity (تعني "()" عدم تمرير أي معلمات)
- معدل الوصول: عام (الوصول غير مقيد)
- State Mutator: رأي (يشير إلى أن الوظيفة لا تغير حالة العقد ، بل تقرأه فقط)
- إرجاع: يحدد ما يتم إرجاعه بواسطة الوظيفة ، أي متغير من النوع uint256
وظائف واضعة
تأتي وظيفة الضبط في الصورة عندما تريد كتابة البيانات أو تحديثها. تأخذ هذه الوظيفة معلمة إدخال من المستخدم ، بناءً على تحديثها لقيمة متغير "كمية_المنتج". يتم توصيل وظيفة المجموعة (update_quantity) على النحو التالي:
update_quantity (uint256 value) public {product_quantity = product_quantity + value؛}
الآن ، قم بتوصيل جميع العبارات الواردة أعلاه لكتابة عقدك الذكي الأول .

نشر العقد الذكي
بمجرد الانتهاء من الخطوات كما ذكرنا سابقًا ، حان الوقت لاختبار عقدك الذكي. يمكنك أن تفعل الشيء نفسه باستخدام Remix IDE ، والذي يوفر إمكانية مترجم Solidity لإنشاء واختبار والتحقق من صحة عقدك الذكي عبر الإنترنت.
فيما يلي التعليمات التدريجية لتصميم ونشر عقد ذكي مع Remix Online IDE:
- انقر فوق أيقونة علامة الجمع لإنشاء ملف جديد (فارغ)
- انقر لفتح الملف الفارغ
- الصق عقدك في هذا الملف
- انتقل إلى القائمة اليسرى وانقر على الرمز الثاني ، أسفل رمز الملف مباشرة. مع هذا ، سيظهر خيار مترجم الصلابة
- انتقل إلى تسمية المترجم لتحديد إصدار المترجم
- انقر فوق الملف لتجميع العقد الذكي
- بعد التجميع ، انقر فوق زر تفاصيل المترجم لفهم الرمز الثانوي والواجهة الثنائية للتطبيق. يحتوي Bytecode على الكود التشغيلي لـ Ethereum ومنطق العقد الذكي بعد التحويل والتجميع
- في القائمة اليسرى ، انقر فوق الرمز الموجود أسفل رمز الترجمة لنشر عقدك الذكي
التعامل مع العقد المنشور
توفر الأساليب العامة المذكورة في العقد طرقًا للتفاعل مع العقد المنشور. في سياق "أمر الشراء" ، "كمية التحديث" و "الحصول على الكمية" هما طريقتان متاحتان للتفاعل. يمكنك أيضًا إدخال المعلمات الخاصة بك باستخدام مربع الإدخال. تذكر أن أي عملية تغير متغيرات العقد ستؤدي إلى معاملة.
من خلال هذا ، قمنا بتغطية أساسيات كيفية كتابة عقدك الذكي الأول ، وكيفية اختباره ونشره باستخدام لغة برمجة Solidity في بيئة تطوير عبر الإنترنت. لقد فهمنا أيضًا عملية التفاعل مع العقد الذكي وبدء المعاملات. لذلك ، قم بتطبيق ما تعلمته وإنشاء عقد ذكي اليوم. بعد كل شيء ، الممارسة تجعل من الكمال!
تغليف
هناك ارتفاع في الوظائف في تقنية blockchain وقد غيرت blockchain بشكل كبير وجه صناعة التكنولوجيا إلى الأبد. إذا كنت مهتمًا بأن تصبح مطور blockchain وأن تنشئ عقودًا ذكية ورموز سلسلة ، فراجع برنامج الشهادة المتقدم IIIT-B & upGrad في تقنية blockchain
ما هي بعض التطبيقات الممكنة للعقود الذكية؟
العقود الذكية هي برامج كمبيوتر تنفذ شروط العقد تلقائيًا. يستخدمون تقنية blockchain ، وهي قاعدة بيانات موزعة تتيح معاملات آمنة وشفافة ومقاومة للعبث. تأجير السيارات وحجوزات الفنادق وتذاكر الأحداث هي مجرد أمثلة قليلة لكيفية توظيف العقود الذكية.
لماذا تعتبر العقود الذكية أكثر أمانًا من العقود العادية؟
نظرًا لأن العقود الذكية يتم تنفيذها على شبكة blockchain ، فإنها تعتبر أكثر أمانًا من العقود التقليدية. blockchain هي قاعدة بيانات موزعة مؤمنة بشكل مشفر. هذا يعني أنه لا يمكن التلاعب بالمعلومات الموجودة على blockchain أو اختراقها. نتيجة لذلك ، فإن تنفيذ العقد الذكي مضمون ليكون دقيقًا ويمكن الاعتماد عليه. إنها أيضًا عامة وقابلة للتدقيق ، مما يعني أن كل شخص على blockchain يمكنه عرض شروط العقد والتحقق من تنفيذه. من ناحية أخرى ، يمكن أن تساعد العقود الذكية في تقليل مخاطر الاحتيال والصراعات. خلاصة القول هي أن لديهم الكثير من الميزات وسهلة الاستخدام.
لماذا تزداد شعبية العقود الذكية؟
تتمثل إحدى أهم مزايا العقود الذكية في أنها قد تساعد المؤسسات في أتمتة الإجراءات وخفض التكاليف. على سبيل المثال ، قد تستخدم الشركة اتفاقية ذكية للدفع لمورديها فور إجراء التسليم. سيؤدي ذلك إلى تقليل حاجة الشركة إلى معالجة المدفوعات يدويًا ، مما يوفر الوقت والمال. يمكن استخدامه أيضًا لبناء الثقة بين الشركات وعملائها. على سبيل المثال ، يمكن استخدام عقد ذكي لإنشاء نظام دفع آمن عبر الإنترنت. سيسمح هذا للعملاء بإجراء مدفوعات دون خوف من تعرض معلوماتهم الشخصية للخطر. أخيرًا وليس آخرًا ، يمكن استخدامه لبناء هويات رقمية لكل من الأفراد والشركات. ستكون الشركات قادرة على مصادقة هويات عملائها وحمايتهم من الاحتيال نتيجة لذلك.