ما هي الصلابة؟

متوسطNov 23, 2023
اكتشف جوهر Solidity، لغة العقود الذكية لإيثريوم، وتأثيرها على ابتكار بلوكتشين.
ما هي الصلابة؟

يعد فهم إحدى لغات البرمجة الرئيسية التي تدعم عالم التطبيقات اللامركزية والعقود الذكية خطوة أساسية لأي شخص يغامر في عالم blockchain.

Solidity ليست مجرد لغة ترميز أخرى؛ إنها القوة الدافعة وراء إنشاء العقود ذاتية التنفيذ والتطبيقات اللامركزية على Ethereum blockchain والعديد من المنصات الأخرى. ستتعمق هذه المقالة في كيفية عمل Solidity واستكشاف أهميتها وميزاتها وتطبيقاتها في العالم الحقيقي.

ما هي الصلابة؟

Solidity هي لغة برمجة عالية المستوى موجهة للكائنات لكتابة وتشغيل العقود الذكية على blockchain. تشتهر Solidity باتصالها بمنزل DeFi، Ethereum، وقد تم إنشاؤها من قبل مطوري Ethereum لإنشاء عقود ذكية تعمل مع آلة Ethereum الافتراضية على الشبكة.

في مساحة مطوري web3، تعد Solidity واحدة من أكثر لغات البرمجة استخدامًا، على الرغم من أنها تحتوي على عناصر من لغات شائعة أخرى مثل Javascript و C ++ و Python. Solidity هي لغة مكتوبة إحصائيًا تدعم الوراثة والأنواع المعقدة المحددة من قبل المستخدم والمكتبات، وهي عناصر أساسية لوظائف العقد الذكي. Solidity هو خيار شائع بين مطوري العقود الذكية لأنه سهل الاستخدام. تستبدل طبيعة لغة البرمجة (المستوى العالي) الكتابة في رمز البت (الآحاد والأصفار) بمزيج من الأحرف والأرقام.

خلفية لغة برمجة Solidity

على الرغم من سمعتها الحالية كواحدة من أكثر لغات البرمجة استخدامًا، إلا أن Solidity لديها بدايات متواضعة تعود إلى عام 2014. وفي عام ٢٠١٤، قام جافين وودز وكريستيان ريتوسنر وغيرهم من مطوري مؤسسة إيثريوم بإنشاء شركة سولديتي لدعم تطوير شبكة إيثريوم القادمة. قام المطورون بإنشاء Solidity كلغة وجدها المطورون سهلة الاستخدام ومعبرة ومتوافقة مع Ethereum Virtual Machine، وهي بيئة تشغيل مركزية لتشغيل العقود الذكية.

Solidity مستوحاة من اللغات الموجودة مثل Python و C ++ و JavaScript. ومع ذلك، تأتي أصالتها من المفاهيم الفريدة والصيغة المضمنة خصيصًا للتعامل مع العقود الذكية ومتغيرات الحالة والمعدلات والأحداث.

كيف يعمل؟

تستخدم Solidity بشكل أساسي لكتابة العقود الذكية. تعد العقود الذكية العمود الفقري لشبكة إيثريوم، وهي تشير إلى البرامج التي تعمل على آلة إيثريوم الافتراضية (EVM) وتخدم وظائف متعددة، تتضمن في الغالب التشغيل الآلي للمعاملات على الشبكة. تعمل EVM كحارس سجلات لـ «الكمبيوتر العالمي» الخاص بـ Ethereum، مما يعني أن EVM تحافظ على الحالة العالمية للشبكة، بما في ذلك العناوين وأرصدة الحسابات وأرصدة الرموز.

يتم تجميع عقود Solidity في كود بايت وقراءتها بواسطة EVM، مما يعني أنه من الناحية النظرية، يمكن للمطورين كتابة عقود إيثريوم الذكية مباشرةً باستخدام البايت كود. ومع ذلك، نادرًا ما يتم استخدام الكتابة مباشرة باستخدام bytecode لأنها أكثر تقنية وعرضة للخطأ. على هذا النحو، فإن استخدام لغات عالية المستوى مثل Solidity يسمح للمطورين بالتركيز على منطق ووظيفة الكود بدلاً من التعامل مع تعقيدات الكتابة في bytecode. ونتيجة لذلك، يمكن للمطورين البرمجة بشكل أكثر كفاءة والتركيز أكثر على إنشاء عقود ذكية يسهل قراءتها وكتابتها وصيانتها.

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

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

وتجدر الإشارة إلى أن إصدار Solidity المستخدم في وقت إنشاء العقد الذكي ضروري أيضًا، لأن ذلك سيحدد سلوك العقد الذكي وميزاته. يجب أن يبدأ كل سطر من شفرة المصدر في كل عقد ذكي من عقود Solidity الذكية، مهما كان بسيطًا، بإعلان عن إصدار مترجم Solidity الذي يجب استخدامه لهذا الجزء المحدد من التعليمات البرمجية. هذا الإعلان هو ما يعرف باسم «الإصدار البراغما».

الميزات الرئيسية للغة Solidity

تعتبر Solidity بوابة إلى عالم التطبيقات اللامركزية والعقود الذكية القائمة على blockchain. تتضمن بعض الميزات الرئيسية التي تجعل Solidity لغة برمجة منتجة ما يلي.

الوظائف المضمنة وأنواع البيانات

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

تدعم Solidity أيضًا أنواع البيانات الأكثر شيوعًا مثل الأعداد الصحيحة وأرقام الفاصلة العائمة والسلاسل والمصفوفات والخرائط. يمكن للمطورين أيضًا تحديد أنواع البيانات الخاصة بهم واستخدامها في عقودهم الذكية.

بيئة الترميز

يقوم مترجم Solidity بفحص الكود باستمرار بحثًا عن الأخطاء أثناء كتابته وينبهك بأي مشاكل محتملة. هذا مفيد بشكل خاص عند تطوير dApps الكبيرة والمعقدة والعقود الذكية.

حالات استخدام لغة برمجة Solidity

يمكن استخدام Solidity عادةً لإنشاء عقود ذكية تعزز الشفافية وإمكانية التتبع في إدارة سلسلة التوريد. يمكن أن تساعد العقود الذكية التي تعمل بنظام Solidity أيضًا في منع التزوير وتحسين الثقة في عملية سلسلة التوريد من خلال تسجيل المعاملات والتحقق من أصالة المنتجات.

تُستخدم Solidity بشكل متكرر لتطوير الألعاب القائمة على blockchain والعوالم الافتراضية التي تتميز بملكية الأصول والاقتصادات داخل اللعبة والندرة التي يمكن إثباتها. تفتح Solidity إمكانيات جديدة للأصول الرقمية الفريدة وتفاعلات اللاعبين. استخدم المطورون أيضًا Solidity لإنشاء منطق التبادل اللامركزي وآليات المزاد وبروتوكولات الإقراض والمدفوعات المشروطة وما إلى ذلك.

علاوة على ذلك، يتم استخدام Solidity لتنفيذ NFTs. وقد مكّن أيضًا من إنشاء منظمات DAOs، وهي منظمات تتمتع بالحكم الذاتي وتعمل بموجب عقود ذكية، مما يسمح بدوره باتخاذ قرارات شفافة وحوكمة شفافة.

المشاريع الداعمة للصلابة

انهيار جليدي

Avalanche هي عبارة عن منصة بلوكشين متطورة اكتسبت بعض الشهرة في عالم DeFi والعقود الذكية. في Avalanche، تتم معالجة المعاملات في ثوانٍ، مما يجعلها منصة فعالة لتطبيقات DeFi ومقايضات الرموز. يتيح توافقها مع EVM العمل بسلاسة مع العقود الذكية المكتوبة من Solidity، مما يساهم أيضًا في اعتماد Avalanche من قبل المطورين.

موناكسس

Monax هو مشروع blockchain رائد مصمم لإحداث ثورة في كيفية تعامل الشركات مع الاتفاقيات القانونية وتبسيطها وتحسينها. تتيح المنصة إنشاء اتفاقيات ملزمة قانونًا وأتمتة جوانب مختلفة من تنفيذ العقود وإدارتها. إنه مفيد بشكل خاص للمؤسسات، حيث توفر Monax لهم طريقة آمنة وفعالة لإدارة دورة حياة العقد بأكملها.

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

الصلابة مقابل الصدأ

تشترك الصلابة والصدأ في بعض أوجه التشابه الأساسية. على سبيل المثال، توفر كلتا لغتي البرمجة توافقًا متعدد السلاسل. وفي حين تم تصميم Solidity بشكل أساسي لإيثريوم، إلا أنها تدعم سلاسل بلوكتشين من الطبقة الثانية والسلاسل الجانبية وبالطبع سلاسل بلوكتشين من الطبقة الأولى المتوافقة مع EVM مثل Moonbeam وسلسلة Avalanche-C. تدعم Rust أيضًا مسردًا لسلاسل بلوكتشين مثل Near و Solana بينما لا تزال لغة البرمجة التي ألهمت لغتي Move و Sui.

بالإضافة إلى ذلك، فإن كلتا اللغتين هي لغات تورينج الكاملة. هذا يعني أن كلتا اللغتين يمكنهما حل أي مشكلة حسابية بغض النظر عن التعقيد. ورثت لغات البرمجة هذه الميزة من آلة تورينج، التي طورها آلان تورينج.

على العكس من ذلك، تمتلك الصلابة والصدأ اختلافات صارخة. على سبيل المثال، Solidity هي لغة عالية المستوى تقدم مستوى عالٍ من التجريد من بنية نظام الكمبيوتر. ونتيجة لذلك، أصبحت Solidity أسهل في التعلم والاستخدام، مما يجعلها لغة أكثر توجهاً نحو المستخدم. من ناحية أخرى، تعد لغة Rust لغة منخفضة المستوى أقرب إلى أجهزة الكمبيوتر وتوفر كفاءة وسرعة جيدة للذاكرة، مما يجعلها لغة أكثر توجهاً نحو الآلة.

علاوة على ذلك، تستخدم كلتا لغتي البرمجة نماذج برمجة مختلفة. نموذج البرمجة هو النهج المستخدم عند حل مشكلة. الصلابة، من ناحية، هي لغة موجهة للكائنات لأنها تستخدم النموذج الموجه للكائنات لحل المشكلات. من ناحية أخرى، تعد لغة Rust لغة متعددة النماذج، مما يعني أنها تسمح باستخدام نماذج أو مناهج مختلفة لحل المشكلات. بعض النماذج التي يدعمها Rust موجهة للكائنات ووظيفية وضرورية، من بين العديد من النماذج الأخرى.

الصلابة مقابل جافا سكريبت

Solidity و Javascript هما من أكثر لغات البرمجة شيوعًا ولكنهما يشتركان في عدد قليل جدًا من أوجه التشابه. كانت Javascript واحدة من أكبر مصادر الإلهام لـ Solidity، ولكن التشابه الوحيد المهم الآن هو أن Solidity تستخدم الكلمة الرئيسية «function» لتحديد الوظائف. تتميز صيغة Solidity أيضًا بمظهر يشبه JavaScript، ولكن هذا خادع بعض الشيء لأن Solidity و JavaScript يعملان بشكل مختلف تمامًا.

على العكس من ذلك، تختلف كلتا اللغتين بشكل كبير. يمكن تشغيل JavaScript مباشرة، بينما تتطلب Solidity التجميع لأن JavaScript هي لغة مترجمة وليست لغة مجمعة مثل Solidity. بالإضافة إلى ذلك، تتمتع Solidity بالقدرة على تحويل الأموال. ومع ذلك، هذه ليست سعة مضمنة، لذلك يجب على المطورين استخدام واجهة برمجة تطبيقات خارجية (API).

الفرق الآخر بين اللغتين هو أنه مع Solidity، بمجرد نشر العقد الذكي على Ethereum، يصبح غير قابل للتغيير، ولم يعد من الممكن تحرير الكود. لا تسمح JavaScript أيضًا بالتفاعل المباشر مع التعليمات البرمجية التي تعمل على خوادم أخرى، ولكن إذا كان الخادم يوفر واجهة برمجة تطبيقات تسمح بالوصول، فيمكن للمطور تحرير الشفرة.

أفضل الموارد لتعلم الصلابة

تعد Learning Solidity واحدة من الخطوات الأولى التي يجب اتخاذها عندما تصبح مطورًا للويب 3، حيث إنها لغة البرمجة الأساسية للمطورين الذين يرغبون في إنشاء العقود الذكية ونشرها على شبكة Ethereum. عند اختيار دورة للتعرف على Solidity، من الضروري تقييم الموضوعات والشكل والموارد التكميلية الأخرى المقدمة. للحصول على أفضل معرفة حول Solidity، يمكنك التفكير في بعض الموارد لاستخدامها، بما في ذلك ما يلي.

Gate Learn

تقدم Gate Learn دورة بعنوان «منصات تطوير Blockchain والعقود الذكية» حيث تقدم نظرة عامة على منصات تطوير blockchain الشائعة، بالإضافة إلى ميزاتها الرئيسية. على الرغم من أنها دورة شاملة، إلا أنها تقدم نظرة أساسية حول عملية تطوير تطبيق blockchain الأساسي باستخدام Solidity.

من خلال هذه الدورة، ستتعلم كيفية إعداد بيئة التطوير، وكتابة العقد الذكي، وتحديد متغيرات حالة العقد، وإنشاء وظائف للتفاعل مع العقد، وتجميع العقد ونشره.

تقدم Gate Learn أيضًا دورة بعنوان «العقود الذكية 101: مقدمة أساسية» حيث يمكنك التعرف على أساسيات العقود الذكية وحالات استخدامها عبر الصناعات وأيضًا التفاعل مع العقود الخارجية ونشر العقود الذكية الخاصة بك باستخدام MetaMask.

أكاديمية WTF

أكاديمية WTF هي عبارة عن منصة تعلم بلوكتشين مفتوحة المصدر يحركها المجتمع وتقدم دورات كاملة حول تطوير الويب وبلوكتشين مثل جافا سكريبت والتحليل على السلسلة ورموز تشغيل EVM و Solidity. وترعاه مؤسسة إيثريوم وستاركوير والتفاؤل. كما تلقت تبرعات من جيتكوين وميرور .

تقدم أكاديمية WTF خمس دورات في الصلابةللمبتدئين ( Solidity 101 و102 و103 وSolidity 104 Security و Solidity 104 والتحليل الضريبي). هذه الدورات مجانية وتقدم شهادات عند الانتهاء.

دورة الصلابة الكاملة - بلوكتشين - من صفر إلى خبير [Udemy]

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

في هذه الدورة، ستتعرف على لغة برمجة Solidity، وكيفية كتابة العقود الذكية، وكذلك فهم EVM، وسلسلة Ethereum blockchain، وكيفية عمل منصات blockchain الأخرى. يمكنك أيضًا تطبيق معرفتك بأكثر من 30 مهمة وتحديًا.

تعلم سوليديتي: لغة برمجة لعقود إيثريوم الذكية [مجلس بلوكتشين]

قام مجلس Blockchain مؤخرًا بتطوير برنامج Learn Solidity لمساعدة المطورين على فهم الأساسيات في غضون ساعات قليلة. مع هذه الدورة المجانية، يجب أن تكون لديك فكرة واضحة عن تطوير dApps على بلوكشين الإيثيريوم.

ستعلمك الدورة أساسيات Ethereum والعقود الذكية ومنصات blockchain الأخرى. ستتعلم أيضًا كيفية تثبيت وإعداد بيئة تطوير Solidity، وإنشاء تطبيقات حية، ونشر العقود الذكية في Solidity.

المعسكر التدريبي لمطوري إيثريوم بلوكتشين مع سولديتي [Udemy]

لا تتطلب هذه الدورة معرفة مسبقة لإكمالها. ستمنحك الدورة فهمًا نظريًا وعمليًا للعقود الذكية، وستتعلم كيفية استخدام أدوات التطوير الأساسية الرئيسية لـ Ethereum. كما أنه يحتوي على دروس فيديو خطوة بخطوة لتسهيل الفهم بشكل أفضل.

هذه الدورة هي دورة مدفوعة الأجر، ويوصى بها لأولئك الذين يهدفون إلى أن يكونوا مطورين لإيثريوم. إكمال هذه الدورة سيجعلك بارعًا في مفاهيم Solidity و Web3 و Remix و Metamask و Truffle وغيرها من مفاهيم blockchain.

learn.articles.author Tamilore
learn.articles.translator Cedar
learn.articles.reviewer Matheus、KOWEI、Ashley He
learn.articles.copyrightNoticeOne
learn.articles.copyrightNoticeTwo
learn.articles.start.now
learn.articles.start.now.voucher
learn.articles.create.account