برمجة Blockchain: كم عدد لغات البرمجة التي تحتاجها لـ Blockchain؟

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

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

في هذه المقالة ، سنراجع لغات البرمجة الأكثر شيوعًا المستخدمة في تطوير blockchain لمساعدتك في اختيار الخيار الأنسب. دعونا لا نخلعه بعد الآن ونتعمق في حفرة الأرانب!

أشهر لغات البرمجة في blockchain

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

ج++

لبدء مراجعة لغات برمجة blockchain ، نحتاج إلى إلقاء نظرة على جدهم – C ++. تم إصدار هذه اللغة في عام 1985 بواسطة Bjarne Stroustrup لجعل لغة C الأصلية أكثر مرونة. بعد أكثر من ثلاثة عقود ، تم استخدامه لبناء Bitcoin.

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

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

العيب الرئيسي لـ C ++ لمطوري blockchain هو أنه ليس عقدًا ذكيًا جاهزًا. هذا لا يعني أنه لا يمكن للمرء أن يرمز لعقد ذكي على C ++ ، فهذا يعني أنه يجب تنفيذ بعض التعديلات. هذا هو السبب وراء ظهور لغات خاصة بـ blockchain.

الايجابيات: مستقل ومتعدد المنصات وعالي السرعة شبيه بـ C

السلبيات: من الصعب إتقانها ، ومعقدة وأحيانًا يصعب تصحيحها ، لا توجد مجموعة قمامة

الأنسب لـ: المستخدمين المتقدمين ، فهم مبادئ البيتكوين

سي #

C # أصغر من C ++ ، لكنها قديمة جدًا أيضًا. تم إنشاؤه في نهاية التسعينيات داخل Microsoft ، وسرعان ما اكتسب قوة جذب في مجتمع المطورين. إنها لغة OOP (البرمجة الموجهة نحو الهدف) التي توفر ميزات رائعة للتطبيقات على مستوى المؤسسات ، والسحابة ، والتطوير عبر الأنظمة الأساسية. تعد هذه اللغة ، المدعومة من Microsoft إلى حد كبير ، أداة ملائمة لكل من المحترفين والمبرمجين العاديين.

ليست لغة C # مرنة وسهلة الفهم فقط إذا كنت معتادًا على C ++ أو Java ، ولكنها أيضًا مليئة بالميزات. بالإضافة إلى بعض وظائف C ++ ، يوفر C # إطار عمل .NET & مكتبة الفصول ، ووقت تشغيل اللغة العامة ، وأطر التطوير (مثل WPF و XAML و ASP.NET).

يفضل اللاعبون الكبار في blockchain C # لعدة أسباب:

  • من السهل فهم تركيبته للجزء الكبير من المطورين الذين هم بالفعل على دراية بـ ++ C (4.4 مليون مطور).

  • إنه مفتوح المصدر.

  • يسمح لكتابة كود محمول للأجهزة المحمولة.

  • إنه ميسور التكلفة بسبب برنامج BizSpark.

من بين أبرز الشركات الناشئة التي تبني كودها على C # هي NEO و Stratis. بالإضافة إلى ذلك ، لدى C # إطار عمل Bitcoin مخصص (NBitcoin). لا تتخلف Microsoft عن الركب وتقدم vNext blockchain لمنصتها Azure.

الإيجابيات: دعم كود ديناميكي موجه للكائنات ، مكتوب بقوة

السلبيات: ضعف دعم Linux

الأنسب لـ: بناء سلاسل البنية التحتية ومستخدمي Windows

جافا سكريبت

ربما تكون هذه إلى حد بعيد لغة البرمجة الأكثر شهرة في العالم. تستخدم صفحات الويب التي تتصفحها يوميًا جافا سكريبت للحصول على مظهر رائع ووظائف متقدمة. في عام 2007 صاغ جيف أتوود قانونًا:

“أي تطبيق يمكن كتابته بلغة JavaScript ، ستتم كتابته في النهاية بلغة JavaScript.”

JavaScript هي لغة OOP يسهل تعلمها بينما تكون متعددة الاستخدامات. باستخدام JS ، يمكن للمطورين كتابة التعليمات البرمجية للعملاء & الخوادم وأجهزة إنترنت الأشياء والتعلم الآلي. إحدى مزايا JavaScript الرئيسية من حيث blockchain هي ميزة تشغيل الأحداث بشكل غير متزامن ، مما يعني أنها تسمح للعقد بالتواصل بحرية وكفاءة. قوة أخرى لـ JS هي أنها لا تتطلب التجميع. في نفس الوقت ، البساطة لها تكلفة. على الرغم من كل ميزاتها ، فإن JS بعيدة كل البعد عن C ++ ، لكنها لغة رائعة للمبتدئين.

لم تكن جافا سكريبت شائعة جدًا بين مطوري blockchain حتى اندلاع ICO في عام 2017. حاليًا ، هناك العديد من الشركات الناشئة ذات الرتب العالية في CoinMarketCap والتي تعتمد على هذه اللغة ، مثل Lisk و Ark و Nimiq. يدعم Tron ، أحد أبرز منافسي Ethereum ، جافا سكريبت أيضًا.

الإيجابيات: يعتمد على الكائنات ، ويعتمد على النموذج الأولي ، ويدعم البرمجة الوظيفية

السلبيات: ديناميكي ، ضعيف الكتابة

الأنسب لـ: دخول مساحة blockchain ، بناء dApps

بايثون

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

لغة Python هي لغة OOP. إنه لمن دواعي سروري كتابة التعليمات البرمجية وهي عالمية. لترميز blockchain بسيط ، لن تحتاج إلى أكثر من 50 سطرًا. بمجرد كتابة الرمز ، يمكن تشغيله عبر أجهزة متعددة مثبت عليها نظام تشغيل مختلف. هناك أيضًا مكتبة ضخمة من الأطر ، مثل Tensorflow و Django ، على الرغم من أن توثيقها قد يكون غير مكتمل في بعض الحالات. للإضافة إلى ذلك ، توجد حاليًا مكتبات محددة مخصصة لتطوير blockchain. مثل JavaScript ، لا تتطلب Python تجميعًا ، على الرغم من إمكانية تجميعها مثل C # و C ++. اجمعها مع بيئة اختبار مخصصة تأتي معها وستحصل على سكين جيش سويسري لرحلة blockchain الخاصة بك.

تم التعرف على Python من قبل نجوم الصناعة. قام IBM Hyperledger بتطبيقه في Sawtooth وأنشأ Ethereum التكرار الخاص به لهذه اللغة: Pyethereum.

الإيجابيات: من السهل جدًا تعلم ، مكتبات وأطر عمل معدة مسبقًا ، فعالة

السلبيات: تستخدم في الغالب كلغة خادم ، وليست سياق ذكي

الأنسب لـ: بناء dApps للمبتدئين

يذهب

Golang (أو Go) هي لغة مفتوحة المصدر مشتقة من C. إنها لغة حديثة جدًا تم إطلاقها في عام 2007 بواسطة مطورين من Google. يعد تطبيق Go لبناء الجملة أشبه ببايثون – فقد أصبح من السهل توفير الكفاءة وجعل المشاريع المصممة باستخدامه متوافقة مع المستقبل.

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

Go هي لغة معروفة في مجال blockchain. ضع في اعتبارك IBM Hyperledger الذي يستخدم Golang لترميز العقود الذكية على Fabric الخاص به. Docker ليس بدء تشغيل blockchain ، ولكنه يعمل مع الأنظمة الموزعة وهو مبني مع Go.

الإيجابيات: أمن الذاكرة ، جمع البيانات المهملة ، مكتوب بقوة

السلبيات: ليس من السهل التعلم ، مجتمع صغير نسبيًا ، عدد صغير من الحزم

الأنسب لـ: إنشاء تطبيقات سحابية dApps

صلابة

الصلابة هي شابة ، مثل جولانج. تم إصداره في عام 2014 بواسطة Christian Reitwiessner وفريقه. إنها لغة تم إنشاؤها من أجل كتابة العقود الذكية على Ethereum ، وهذا هو السبب في أنها الأكثر شيوعًا في النظام البيئي Ethereum. تجدر الإشارة إلى أن النظام البيئي قد نما مئات المرات في العامين الماضيين بسبب الشركات الناشئة المختلفة التي تغرق السوق. نتيجة لذلك ، تمتلك Solidity قاعدة مستخدمين كبيرة. أصبح معيارها (ERC20) العنصر الأساسي في الصناعة.

Solidity هي لغة OOP ولغة تواصلية. إنها أيضًا تورينج كاملة ، مما يعني أنه يمكنها تفسير قواعد معالجة البيانات المختلفة. تشبه صيغة Solidity تلك الموجودة في JavaScript ، ولكن هناك بعض أوجه التشابه مع C++ & بايثون أيضًا. على الرغم من بدايتها ، فإن Solidity هي لغة وظيفية ، فهي توفر الميراث ، والمكتبات المختلفة ، وما إلى ذلك. على الجانب السلبي من الشباب ، هناك مشاكل مع التوثيق يمكن أن تترك بعض المطورين في مأزق.

حاليًا ، حالات الاستخدام الرئيسية لـ Solidity هي EVM والعقود الذكية. إنها ليست كثيرة ، لكنها مهمة للغاية ومخصصة لـ blockchain بقدر ما يمكن أن تكون. إذا كنت ترغب في بناء dApp ، فإن Solidity هي خيارك المفضل.

الإيجابيات: مكتوب بشكل إحصائي ، سهل التعلم ، عصري

السلبيات: ليست عالمية ، ضعيفة

الأنسب لـ: تطوير العقود الذكية

أساسيات الترميز على blockchain

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

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

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

  1. ج++

    كل blockchain هناك لديه كتلة أولية مشفرة ، تسمى كتلة التكوين. دعونا ننشئ واحدة.

    كتلة التكوين C ++صورة Utoday

    الآن يمكننا إنشاء كتلة أخرى. للقيام بذلك ، سنكتب getLatestBlock ().

    إضافة كتل C ++صورة Utoday

إجماع C ++صورة Utoday

آلية الإجماع هي وظيفة حلقة “for” بسيطة تعمل على جميع الكتل ، بدءًا من 1 ، لأنه لا توجد حاجة لمراجعة كتلة التكوين صفر.

  1. سي #

    تعتبر بنية البيانات الخاصة بـ blockchain على C # واضحة إلى حد ما. لديها بلوك & فئات Blockchain. ها هم.

    كتلة C #صورة UtodayC # blockchainصورة Utoday

    إذا تصورنا الهيكل ، فسيبدو كما يلي:

هيكل C # blockchainصورة من https://www.c-sharpcorner.com/

إليك كيفية إضافة الكتل الجديدة:

C # إضافة كتلصورة Utoday

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

C # الإجماعصورة Utoday

  1. جافا سكريبت

    نحن الآن نصل إلى مناطق بها لغات يمكن الوصول إليها بشكل أكبر ، ومن المفترض أن يكون هذا أكثر متعة إذا لم يكن لديك أي خبرة في البرمجة. من أجل إنشاء blockchain ، نحتاج إلى بيئة تشغيل ، مثل Node.js. ستحتوي كل كتلة إضافية على البيانات التالية: الفهرس ، ووقت الإنشاء ، ومتفرقات (مثل المرسل & عناوين المستلم والمبلغ المحول) ، تجزئة الكتلة السابقة ، التجزئة الخاصة. بمجرد الانتهاء من ذلك ، حان الوقت للانتقال إلى الترميز الثابت لقالب التكوين:

    كتلة نشأة جافا سكريبتصورة Utoday

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

    جافا سكريبت إنشاء كتلةصورة Utoday

جافا سكريبت تضيف الكتلصورة Utoday

  1. بايثون

    هذه المرة سنبدأ بفهم كيف تبدو المعاملة في بايثون. إنها رسالة بسيطة مختومة بطابع زمني مع إرفاق بعض البيانات.

    معاملة بايثونصورة Utoday

    سوف تدخل هذه المعاملات في الكتل. دعونا نقدم هذا الفصل.

كتلة بايثونصورة Utoday

سنستخدم SHA-256 الذي يتم استخدامه في Bitcoin لإنشاء تجزئة للتحقق من سلامة blockchain الخاصة بنا.

تجزئة بايثونصورة Utoday

يمكننا الآن إضافة الكتل ، ولكن أولاً ، دعنا نقدم خوارزمية إثبات العمل التي تضمن عدم تلف البيانات في blockchain.

Python PoWصورة Utoday

بعد الانتهاء من ذلك ، أصبحنا واضحين لبدء blockchain.

  1. يذهب

    سنبدأ بتحديد خصائص الكتل الخاصة بنا. BPM هي بيانات عشوائية ، مثل معاملات الشبكة والعناوين وما إلى ذلك.

    كتلة جولانجصورة Utoday

    من أجل إنشاء الكتل ، نحتاج إلى تجزئة البيانات فيها والتسلسل حسب النتائج المقابلة. يبدو رمز تجزئة البيانات داخل كتلة في Go كما يلي:

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

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

    تجزئة جولانجصورة Utoday

  2. صلابة

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

    عقد سوليديتيصورة Utoday

    هنا ، نحدد عنوان Ethereum للمالك (المالك) ، والمبلغ المتبقي للتوزيع (الوحدة) والمتغير الشرطي لحالة المالك (منطقي). تتمثل الخطوة التالية في إضافة مُعدِّلات تعمل على توسيع المنطق الشرطي لتوفير وظيفة بحالة المالك.

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

    معدلات الصلابةصورة Utoday

ملخص

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

إذا كان عليك اختيار لغة واحدة ، فعليك التفكير في السياق. إذا كنت ترغب في التركيز على بناء مشاريع البنية التحتية ، فإن C ++ و C # سوف تناسبك أكثر. في حال كنت مفتونًا أكثر بتطوير التطبيقات الموجودة أعلى blockchains الموجودة ، فإن JavaScript و Python و Go هي خيارات جيدة يجب وضعها في الاعتبار. إذا كنت ترغب فقط في إطلاق توكن ERC20 الخاص بك ، فإن Solidity ستغطي احتياجاتك بلا شك.

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