مصطلحات العملة الرقمية

ما هو هاردهات Hardhat في عالم العملات الرقمية؟

ما هو هاردهات؟

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

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

هاردهات هي بيئة تطوير يمكن أن تساعد في تسهيل عملية تطوير “dApps” القائمة على إثيريوم.

قد يكون تطوير “Web3” وبلوكتشين عملية صعبة، ومن المفيد استخدام الأدوات لجعل العملية أسهل وأكثر راحة. وهذا بالضبط ما يوفره كل من موراليس “Moralis” وهاردهات “Hardhat” لمستخدميهما، ويساعد ذلك في عملية التطوير ويجعل عمل المطورين أسهل.

ويمكن أن تساعد بيئة التطوير هذه في كل شيء بدءا من تجميع برامج إثيريوم واختبارها ونشرها وتصحيحها. إلا أن كل ذلك هو مجرد تعريف لماهية هاردهات (Hardhat).

ما هو هاردهات Hardhat؟

“Hardhat” هو أحد مطوري البيئة الذين يستخدمونه لاختبار التطبيقات اللامركزية “dApp” وتجميعها ونشرها وتصحيحها استناداً إلى إثيريوم بلوكتشين.

وبهذا الشكل فإنه يساعد المبرمجين والمطورين على إدارة العديد من المهام الملازمة لتطوير “dApps” والعقود الذكية. إلى جانب تزويد المطورين بالأدوات المناسبة لإدارة هذه العملية، يساعد هاردهات أيضاً في أتمتة بعض هذه الخطوات، كما أنه يزود المطورين بوظائف جديدة ومفيدة.

هاردهات

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

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

موجه أوامر هاردات Hardhat

“Hardhat Runner” هو أمر واجهة سطر الأوامر (CLI) المستخدم للتفاعل مع هاردهات. هذا هو موجه المهام، والذي يوفر للمستخدمين العديد من الخيارات والبدائل المختلفة. يدور تصميم موجه المهام حول الإضافات والمهام. هذا يعني أنه في كل مرة يقوم مطور البرامج بتشغيل هاردهات من “CLI” ، يقوم بتشغيل مهمة.

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

شبكة هاردهات Hardhat

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

كيف تعمل شبكة Hardhat؟

تقوم الشبكة بتعدين كتلة مع كل معاملة ودون أي تأخير. إلى جانب ذلك ، فإن الشبكة مدعومة بتطبيق “EMV” ، وهو نفس التطبيق الذي تستخدمه تطبيقات أخرى مثل “Remix” و “Ethereum Studio” و “ganache”.

كيف يمكن الاستفادة من شبكة Hardhat؟

تحتوي الشبكة على بعض المهام الافتراضية ؛ أحد الأمثلة على ذلك هو أن هاردهات يبدأ دائمًا مثيلًا إذا تم تعيين الخيار “defaultNetwork” على هاردهات أو كانت الشبكة فارغة. كما يمكننا استخدام الشبكة لإجراء الاختبارات والمهام والبرامج النصية. من الممكن أيضاً إضافة مكونات إضافية إلى شبكة هاردهات إثيريوم. بعض المكونات الإضافية القابلة للاستخدام هي “ethers.js” و “Waffle” و “Truffle” ، ويمكنهم الاتصال مباشرة بالمزود.

من الممكن أيضا للعملاء الخارجيين الاتصال بالشبكة ؛ مثال على عميل خارجي هو ميتا ماسك “MetaMask” .

تدعم الشبكة “Solidity” بالدرجة الأولى. لذلك ، فإن الشبكة تعرف العقود قيد التشغيل ، وما ينوون القيام به ، وإذا فشلت ، فإنها توفر أيضاَ سبباً.

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

رسائل الخطأ التلقائية

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

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

  • عندما يرسل شخص ما “ETH” إلى عقد بدون وظيفة استلام أو احتياطي مستحق الدفع.
  • استدعاء دالة بدون المعلمات الصحيحة.
  • استدعاء وظيفة خارجية بحساب آخر دون عقد.
  • محاولة إرسال مبلغ غير كافٍ من “ETH” .
  • استدعاء عقد مترجم بشكل غير صحيح.
  • محاولة نشر العقود على الشبكة التي تتجاوز حد حجم رمز البت.

كيفية تثبيت هاردهات Hardhat

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

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

كيفية تثبيت هاردهات Hardhat

أثناء تثبيته، تكون طريقة استخدام التثبيت المحلي من خلال الأمر “npx”. مثال هنا سيكون “npx hardhat”.

كيف تبدأ في استخدام هاردهات Hardhat

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

لبدء مشروع ما ، نحتاج إلى إنشاء مشروع عن طريق تشغيل “npx hardhat” في مجلد المشروع. بعد أن نكمل هذه المهمة، يمكننا إنشاء نموذج مشروع سنستخدمه لاستكشاف كيف نبدأ مع هاردهات. سيطلب نموذج المشروع تثبيت “هاردهات-وافل” و “هاردهات-إيثر” ، لتمكين المشروع من إجراء اختبارات الوافل.

مهام

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

مثال على مهمة في نموذج المشروع هي مهمة “الحسابات”. لتشغيل هذه المهمة ، ما عليك سوى إدخال “حسابات npx hardhat” ، وستكون النتيجة قائمة بجميع الحسابات المتصلة بالمشروع.

تجميع

الوظيفة المفيدة التالية التي يوفرها هاردهات لتطوير إثيريوم هي القدرة على ترجمة التعليمات البرمجية. لهذا ، يمكننا إلقاء نظرة على مجلد “العقود /” (contracts/) لاستكشاف العقود الذكية للمشروع. في نموذج المشروع ، سنجد “Greeter.sol”.

وذلك من خلال الأمر التالي:

تجميع

اختبار العقود

في السابق ، قمنا بتثبيت “Waffle” و “Ethers.js” على نموذج المشروع ، والذي يوفر بعض الاختبارات. ومع ذلك ، من الممكن أيضاً استخدام اختبارات أخرى من مكتبات أخرى إذا رغبت في ذلك. بالنسبة لعينة المشروع ، إذا نظرنا إلى مجلد “test /” ، فسنجد عينة اختبار.

اختبار العقود

نشر العقود

لنشر العقود بمجرد الانتهاء من الاختبارات ، من الممكن القيام بذلك من خلال برنامج نصي . داخل مجلد “scripts /” ، إذا كنا نستخدم نموذج المشروع ، فسنجد عبارة نصية: “sample-script.js”.

نشر العقود

توصيل هاردهات بميتا ماسك

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

أول شيء عليك القيام به لتوصيل هاردهات بميتا ماسك هو اتباع الخطوات المذكورة أعلاه حول كيفية تثبيت بيئة التطوير.
بمجرد اكتمال عملية التثبيت ، فإن الخطوة التالية هي تشغيل عقدة بالأمر التالي: “npx hardhat node”. من خلال القيام بذلك ، ستقوم بإنشاء عقدة إثيريوم محلية مع بعض الإضافات ، مثل القدرة على استخدام console.log ().

بمجرد تشغيل الأمر، سيتم تزويدك بعنوان أسفل الأمر المدخل مباشرة. انسخ هذا العنوان وانتقل إلى ميتا ماسك. يمكنك استخدام القائمة المنسدلة وتحديد “Custom RPC” ، واستخدام هذا العنوان عند إنشاء الشبكة.

توصيل هاردهات بميتا ماسك

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

ربط هاردهات بموراليس

بمجرد إنشاء اتصال بين هاردهات وميتا ماسك، يمكننا بدء عملية ربط هاردهات بموراليس.

أول شيء يجب القيام به هو إضافة خادم جديد إلى موراليس والتأكد من ضبط هذا الخادم على “Local Dev Chain”. بعد ذلك، نقوم بتوصيل الخادم الجديد بالسلسلة المحلية التي أنشأناها في القسم السابق عند توصيل هاردهات بميتا ماسك.

لتوصيل الخادم حتى يتمكن موراليس من معرفة ما يحدث على السلسلة المحلية ، نحتاج إلى إلقاء نظرة على تفاصيل الخادم.

بمجرد أن نتمكن من عرض التفاصيل ، يجب أن يكون هناك علامة تبويب “Devchain Proxy Server” متوفرة في أعلى اليمين. في البداية ، ستكون حالة الخادم “غير متصلة” ، ولكن يمكننا توصيل الخادم بالسلسلة المحلية باتباع الخطوات الواردة في علامة التبويب.

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

[adsforwp id="60211"]
المصدر
هنا
[adsforwp id="60211"]

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.

زر الذهاب إلى الأعلى