ما Hardhat؟
Hardhat بيئة تطوير مفتوحة المصدر تُستخدم لكتابة العقود الذكية على Ethereum وتجميعها واختبارها وتصحيحها ونشرها والتحقق منها.توفر للمطورين مساحة عمل منظمة لبناء تطبيقات تعمل على آلة Ethereum الافتراضية، المعروفة اختصارًا بـ EVM.Hardhat ليست بلوكتشين أو عملة مشفرة أو محفظة أو توكنًا أو لغة برمجة للعقود الذكية.إنها أداة للمطورين تنسق المترجمات ومشغلات الاختبار وشبكات البلوكتشين المحاكية وأنظمة النشر والمكتبات والبرامج النصية والإضافات.تصف وثائق Hardhat الرسمية Hardhat بأنها بيئة مرنة وقابلة للتوسعة لكتابة برمجيات Ethereum واختبارها وتصحيحها ونشرها.
يمكن للمطورين استخدام Hardhat لاختبار سلوك العقود محليًا قبل إرسال المعاملات إلى بلوكتشين عامة، حيث قد تصبح الأخطاء دائمة ومكلفة.تتولى مؤسسة Nomic Foundation صيانة Hardhat لمجتمع تطوير Ethereum.إصدار Hardhat الحالي
Hardhat 3 هو الإصدار الرئيسي الحالي من بيئة التطوير.اعتبارًا من 13 يوليو 2026، أحدث إصدار موسوم هو Hardhat 3.9.1، الذي صدر في 2 يوليو 2026.
يشمل خط الإصدار الحالي نظام إضافات معاد التصميم، واختبارات مكتوبة بلغة Solidity، وتغطية مدمجة للشفرة، ومحاكاة متعددة السلاسل، وعناصر build مكتوبة الأنواع، وملفات تعريف للبناء، ومدير شبكات جديدًا.ينبغي للمطورين الذين يديرون مشاريع أقدم التحقق من دعم إضافاتهم وملفات إعداداتهم لـ Hardhat 3 قبل الترقية.ينبغي تثبيت تبعيات التطوير في المشروع بدل قبول كل إصدار رئيسي مستقبلي تلقائيًا.لماذا تُستخدم Hardhat في تطوير الكريبتو؟
قد تتحكم العقود الذكية في التوكنات وخزائن البروتوكولات ومراكز الإقراض وأنظمة Staking والحوكمة اللامركزية وغيرها من أصول الكريبتو القيّمة.قد يؤدي خطأ برمجي إلى تجميد الأموال أو السماح بتحويلات غير مصرح بها أو احتساب أرصدة بصورة خاطئة أو إيجاد ثغرة اقتصادية.تساعد Hardhat المطورين على اكتشاف المشكلات قبل نشر العقود على بلوكتشين نشطة.يمكنها تجميع شفرة Solidity وتنفيذ الاختبارات المؤتمتة ومحاكاة المعاملات وعرض آثار التنفيذ وتقدير استخدام الغاز ونشر العقود عبر إجراءات متكررة.كما تساعد فرق التطوير على توحيد بنية المشروع وأتمتة العمل باستخدام البرامج النصية وأنظمة التكامل المستمر.تحسن Hardhat عملية التطوير، لكنها لا تضمن أمان العقد الذكي.تظل المراجعة المستقلة ونمذجة التهديدات والاختبار والمراقبة وضوابط الوصول الدقيقة ضرورية لتطبيقات الكريبتو الإنتاجية.بنية Hardhat 3
تفصل Hardhat 3 كثيرًا من وظائفها بين بيئة تشغيل أساسية وإضافات اختيارية.تحمّل البيئة الأساسية إعدادات المشروع وتدير المهام وتنشئ اتصالات البلوكتشين وتتيح خدمات التطوير للبرامج النصية والاختبارات.يمكن للإضافات إضافة مكتبات العقود وأدوات التحقق والتوكيدات ووظائف النشر وخدمات التحقق ومشغلات الاختبار ودعم التوقيع بالأجهزة وغيرها.يتيح هذا التصميم المعياري للمشروع تثبيت الأدوات التي يحتاج إليها فقط.ويعني أيضًا أن سلوك مشروعي Hardhat قد يختلف عند استخدامهما مجموعات مختلفة من الإضافات.ينبغي للمطورين توثيق جميع الإضافات المطلوبة وتثبيت الإصدارات المتوافقة في إعدادات حزم المشروع.بيئة تشغيل Hardhat
بيئة تشغيل Hardhat هي الكائن المركزي الذي تصل عبره البرامج النصية والمهام والإضافات إلى ميزات Hardhat.يُختصر اسمها عادةً إلى HRE.قد توفر HRE بيانات الإعدادات واتصالات الشبكة وعناصر العقود وإضافات البرامج ووظائف المهام.يمكن لـ Hardhat 3 إنشاء أكثر من بيئة تشغيل مستقلة برمجيًا.يفيد ذلك في البرامج النصية المتقدمة وأنظمة الاختبار والتطبيقات التي تحتاج إلى إعدادات معزولة أو اتصالات متزامنة بشبكات متعددة.تشرح وثائق بيئة تشغيل Hardhat كيفية ربط بيئة التشغيل بإعدادات المشروع والإضافات وسير عمل التطوير.
بنية مشروع Hardhat
مشروع Hardhat المعتاد حزمة npm تضم ملف إعداد للمشروع وعدة مجلدات للتطوير.يُسمى ملف الإعداد الرئيسي عادةً
يضم مجلد
ويضم مجلد
ويضم مجلد
أما مجلد
ويحتوي المشروع أيضًا على ملف
تثبيت Hardhat
تُثبت Hardhat عادةً كتبعية تطوير داخل مشروع JavaScript أو TypeScript.يتطلب الإعداد الرسمي الحالي Node.js الإصدار 22.13.0 أو أحدث.يمكن تهيئة مشروع جديد باستخدام الأمر
توضح سياسة دعم Node.js الرسمية إصدارات Node.js المدعومة في Hardhat 3.
إعداد Hardhat
يحدد ملف إعداد Hardhat كيفية تجميع المشروع واختباره والاتصال بالشبكات ونشر العقود.وقد يحدد إصدارات مترجم Solidity وإعدادات المحسن والإضافات والشبكات ومصادر الحسابات وملفات تعريف البناء وخيارات المهام.تستخدم ملفات إعداد Hardhat 3 وحدات ECMAScript افتراضيًا.وقد تظل البرامج النصية والاختبارات قادرة على استخدام تنسيقات وحدات أخرى إذا دعمتها بيئاتها.ينبغي مراجعة الإعدادات بعناية، لأن اختلاف إعدادات المترجم أو المحسن قد ينتج شيفرة bytecode منشورة مختلفة.ينبغي التحقق من العقد باستخدام إصدار المترجم والإعدادات نفسها التي أنتجت الشيفرة المنشورة.متغيرات الإعدادات والأسرار
تحتاج مشاريع تطوير الكريبتو غالبًا إلى مفاتيح خاصة وعناوين استدعاء الإجراءات عن بُعد وقيم حساسة أخرى.تدعم Hardhat 3 متغيرات إعدادات تُحمّل عند الحاجة فقط، ولا تُحمّل إلا عندما تحتاج إليها مهمة فعلية.يمكن تخزين هذه القيم خارج مستودع الشفرة لتقليل مخاطر نشرها عن طريق الخطأ.يشرح دليل متغيرات إعداد Hardhat كيفية التحقق من القيم وتنسيقها وتوفيرها عبر أنظمة تخزين خارجية.
توفر Hardhat أيضًا إضافة رسمية لخزنة مفاتيح يمكنها تخزين قيم مختارة بصيغة مشفرة.لا يجعل التشفير حاسوبًا ضعيفًا أو كلمة مرور مسروقة آمنة.ينبغي حماية مفاتيح النشر الإنتاجية بضوابط وصول قوية وأرصدة محدودة وتوقيع بالأجهزة وتفويض متعدد التوقيع أو عملية أخرى لإدارة المفاتيح خضعت للمراجعة.تجميع عقود Solidity
تجمع Hardhat شفرة Solidity المصدرية في bytecode يمكن تشغيله على EVM.ينتج عن التجميع أيضًا ABI، أي الواجهة الثنائية للتطبيق.تصف ABI دوال العقد القابلة للاستدعاء وأحداثه وأخطاءه وأنواع معلماته.تستخدم المحافظ والبرامج النصية وتطبيقات الواجهة الأمامية والعقود الأخرى معلومات ABI لترميز التفاعلات وفك ترميزها.يمكن لـ Hardhat دعم عدة إصدارات من مترجم Solidity في المشروع الواحد عندما تحتاج ملفات مصدر مختلفة إليها.ينبغي تجنب تنويع إصدارات المترجم من دون حاجة، لأنه يزيد تعقيد المراجعة والتحقق.ينبغي ضبط المترجم صراحةً بدل الاعتماد على إعداد افتراضي مفترض.عناصر البناء في Hardhat
تنشئ Hardhat بعد التجميع عناصر بناء تحتوي على معلومات عن كل عقد.قد يتضمن العنصر اسم العقد وABI وbytecode الإنشاء وbytecode المنشور ومراجع الربط ومعلومات المصدر.تنشئ Hardhat 3 أيضًا تعريفات TypeScript للعناصر المكتوبة الأنواع افتراضيًا.يمكن لهذه العناصر مساعدة أدوات التطوير على اكتشاف أسماء الدوال أو أنواع المعلمات أو تفاعلات العقود غير الصحيحة قبل وقت التشغيل.توثق مواصفات عناصر Hardhat بنية عناصر العقود ومعلومات البناء.
ينبغي إنشاء العناصر من شفرة مصدرية موثوقة وإعدادات مترجم قابلة لإعادة الإنتاج.ينبغي تنظيف العناصر القديمة عند حدوث تغييرات كبيرة في إعدادات المترجم أو أسماء العقود أو التبعيات.ملفات تعريف البناء
تدعم Hardhat 3 ملفات تعريف للبناء تحدد إعدادات مترجم مختلفة لسير عمل مختلف.قد يعطي ملف التطوير الأولوية لسرعة التجميع ومعلومات تصحيح مفصلة.وقد يفعّل ملف الإنتاج إعدادات المحسن الدقيقة المقصودة للنشر.وقد يغير ملف التغطية bytecode لقياس مسارات الشفرة المنفذة.تقلل ملفات تعريف البناء الحاجة إلى إعادة كتابة إعداد واحد باستمرار.لكن يجب على الفرق تحديد الملف الذي أنتج كل عملية نشر بوضوح.قد يؤدي نشر عقد باستخدام ملف تعريف غير مقصود إلى اختلاف bytecode أو سلوك الغاز أو نتائج التحقق.شبكات البلوكتشين المحاكية
تتضمن Hardhat شبكات محاكاة تعمل محليًا للتطوير والاختبار.تتيح الشبكة المحاكية للمطورين نشر العقود وإرسال المعاملات دون إنفاق عملات مشفرة حقيقية.ويمكنها إنشاء حسابات اختبار ممولة وتعدين الكتل فورًا وتعديل الطوابع الزمنية وتغيير الأرصدة وانتحال الحسابات وإعادة ضبط الحالة.تتيح هذه الإمكانات اختبار ظروف غير مألوفة يصعب أو يكلف تكرارها على بلوكتشين عامة.تستخدم Hardhat 3 بيئة تشغيل محاكاة مدعومة بـ EDR ومكتوبة بلغة Rust.صُممت البيئة المحاكية لاختبارات سريعة وأخطاء مفصلة وآثار تنفيذ وحالة بلوكتشين يمكن التحكم بها.المحاكاة المحلية مفيدة، لكنها لا تستطيع إعادة إنتاج جميع ظروف الشبكات الفعلية بدقة تامة.المحاكاة متعددة السلاسل
صُممت Hardhat 3 لدعم التطوير عبر أنواع مختلفة من السلاسل المتوافقة مع EVM.يمكن للمشروع إعداد شبكات محاكاة متعددة ذات سلوكيات مختلفة.تشير الوثائق الرسمية إلى دعم محاكاة مدمج لكل من Ethereum Mainnet وOP Mainnet، مع نوع سلسلة عام لبيئات متوافقة أخرى.تشرح وثائق Hardhat متعددة السلاسل كيف تساعد أنواع السلاسل الشبكات المحاكية على إعادة إنتاج سلوك خاص بكل سلسلة بدقة أكبر.
ينبغي للمطورين الاختبار وفق قواعد التنفيذ الفعلية لكل شبكة سيُنشر عليها العقد.قد يعمل العقد بصورة صحيحة في إعداد شبكة معين، لكنه يتصرف بصورة مختلفة عند تغير قواعد الغاز أو العقود المنشورة مسبقًا أو تنسيقات المعاملات.مدير شبكات Hardhat
يدير مدير شبكات Hardhat الاتصالات بالشبكات المحاكية وشبكات البلوكتشين الخارجية.تتيح Hardhat 3 للمهام والبرامج النصية إنشاء أكثر من اتصال شبكي في الوقت نفسه.يفيد ذلك في تطبيقات السلاسل المتقاطعة واختبار الجسور وتنسيق النشر والتطبيقات التي تقرأ من سلسلة وتكتب إلى أخرى.أسماء الشبكات في الإعدادات هي تسميات للاتصال، ولا تثبت أن الاتصال يصل إلى البلوكتشين المتوقع.ينبغي للمطورين التحقق من معرّف السلسلة والكتلة الأحدث وأرصدة الحسابات ووجهة النشر قبل توقيع المعاملات.يشرح دليل إدارة الشبكات كيفية اتصال Hardhat بالشبكات المحاكية ونقاط نهاية JSON-RPC البعيدة.
إنشاء نسخة متفرعة من شبكة بلوكتشين
يتيح تفريع الشبكة لمحاكاة Hardhat المحلية نسخ حالة البلوكتشين من كتلة مختارة على شبكة عامة.يمكن للبيئة المحلية عندها التفاعل مع العقود والأرصدة والحسابات والتخزين الموجود من دون تغيير الشبكة الحقيقية.يفيد اختبار النسخ المتفرعة في اختبار تكامل البروتوكولات وسيناريوهات التصفية وتغييرات الحوكمة وسلوك التوكنات وترقيات العقود.ينبغي تثبيت النسخة المتفرعة عند رقم كتلة معين عندما تكون النتائج القابلة للتكرار مهمة.قد يؤدي الاختبار على أحدث كتلة غير محددة إلى نتائج مختلفة مع تغير الحالة العامة.وقد يحد مزود البيانات البعيد من الطلبات أو يسجل نشاط المشروع أو يعيد مؤقتًا معلومات غير مكتملة.يجب عدم الخلط بين اختبار النسخة المتفرعة والتفويض بالسيطرة على حسابات أو أصول حقيقية.اختبار العقود الذكية باستخدام Hardhat
يُعد الاختبار المؤتمت من أهم وظائف Hardhat.تدعم Hardhat 3 الاختبارات المكتوبة مباشرةً بـ Solidity واختبارات التكامل المكتوبة بـ TypeScript.يمكن استخدام أسلوبي الاختبار معًا في المشروع نفسه.تفيد اختبارات Solidity في اختبار سلوك العقود على نحو مركز، لأنها تُنفذ داخل بيئة EVM.وتفيد اختبارات TypeScript في اختبار سير عمل التطبيقات والحسابات المتعددة والمنطق خارج السلسلة والبيانات الخارجية وسلوك التكامل الأوسع.يشرح عرض Hardhat الرسمي للاختبارات مزايا كلا الأسلوبين.
ينبغي لمجموعة الاختبارات القوية تغطية العمليات الناجحة والإخفاقات المتوقعة وقيود الوصول والمدخلات القصوى وانتقالات الحالة وترتيب المعاملات غير المعتاد.اختبارات Solidity
تتعرف Hardhat على ملفات اختبارات Solidity وفق أعراف المجلدات وأسماء الملفات المدعومة.يمكن لدوال الاختبار العامة نشر العقود واستدعاء الدوال وفحص الحالة والإخفاق عندما لا يتحقق شرط متوقع.يمكن لاختبارات Solidity استخدام أوامر محاكاة لتغيير بيئة الاختبار.تستطيع هذه الأوامر تغيير المستدعي أو تقديم الوقت أو تغيير الأرصدة أو توقع أحداث أو حالات تراجع أو فحص التخزين.تسهل هذه الضوابط اختبار ظروف تتطلب في غير ذلك انتظارًا طويلًا أو إعدادًا معقدًا.تؤثر أوامر المحاكاة في بيئة الاختبار المحاكية، وليست دوالًا متاحة للمستخدمين العاديين على بلوكتشين عامة.اختبار Fuzz
ينفذ اختبار Fuzz دالة عقد مرارًا باستخدام قيم إدخال مولدة.وقد يكشف حالات طرفية لم يدرجها المطورون في الأمثلة المكتوبة يدويًا.قد يعمل حساب التوكن للقيم الشائعة لكنه يفشل عند الصفر أو الحد الأقصى لعدد صحيح أو حد التقريب أو تركيبة حالة غير متوقعة.ينبغي أن تحدد اختبارات Fuzz افتراضات واقعية كي تظل القيم المولدة ذات معنى.لا تثبت حملة Fuzz ناجحة أمان العقد، لأنها لا تستكشف إلا المدخلات والخصائص المضبوطة.ينبغي تحديد الثوابت المهمة صراحةً كي يعرف نظام الاختبار السلوك الذي يجب أن يظل صحيحًا دائمًا.اختبار الثوابت
الثابت خاصية ينبغي أن تظل صحيحة عبر تسلسلات كثيرة محتملة من الإجراءات.قد يشترط بروتوكول إقراض أن يساوي إجمالي الدين المسجل مجموع ديون المستخدمين.وقد يشترط توكن أن يساوي إجمالي المعروض مجموع الأرصدة المتتبعة وفق نموذج المحاسبة الخاص به.وقد يشترط نظام سوق آلي بقاء علاقات معينة بين الاحتياطيات صحيحة.يمكن لاختبارات الثوابت إنشاء تسلسلات معاملات والتحقق من بقاء الخاصية صحيحة.وتكتسب هذه الاختبارات قيمة خاصة في بروتوكولات الكريبتو ذات الحالة، حيث لا تظهر الثغرات إلا بعد تنفيذ عدة عمليات بترتيب معين.اختبارات TypeScript
تتفاعل اختبارات TypeScript مع العقود عبر مكتبات التطوير واتصالات البلوكتشين.يستخدم إعداد Hardhat 3 الموصى به مشغل اختبارات Node.js مع viem.وتدعم الإضافات الرسمية أيضًا إعدادًا قائمًا على ethers مع Mocha.يمكن لاختبارات TypeScript تنسيق عدة عقود وحسابات وملفات وواجهات API واتصالات شبكية.كما يمكنها اختبار سير العمل نفسه الذي تستخدمه البرمجيات خارج السلسلة للتطبيق اللامركزي.ينبغي تجنب اعتماد الاختبارات دون حاجة على خدمات خارجية مباشرة، لأن عدم توافرها قد يجعل النتائج غير موثوقة.تغطية الشفرة
تقيس تغطية الشفرة عبارات العقود وفروعها ودوالها ومساراتها التي نُفذت أثناء الاختبارات.تتضمن Hardhat 3 تغطية مدمجة لشفرة Solidity.يمكن طلب التغطية باستخدام خيار الاختبار
يوضح دليل Hardhat لتغطية الشفرة أن الأداة تضيف علامات إلى العقود أثناء عمليات قياس التغطية.
يختلف bytecode المعدل عن bytecode الإنتاج العادي، وقد يستهلك غازًا أكثر.لا تثبت التغطية العالية أن الاختبارات تتضمن توكيدات مفيدة أو أن العقد آمن.قد ينفذ الاختبار كل سطر من دون التحقق من أهم نتيجة اقتصادية.إحصاءات الغاز ولقطاته
يمكن لـ Hardhat قياس الغاز الذي تستهلكه دوال العقود العامة أثناء الاختبارات.يمكن لخيار
تصحيح الأخطاء باستخدام Hardhat
يمكن لـ Hardhat عرض أخطاء Solidity والسجلات المفككة وآثار المكدس وآثار التنفيذ.يوضح أثر التنفيذ تسلسل استدعاءات العقود والعمليات المرتبطة بالمعاملة.يشرح دليل Hardhat لآثار التنفيذ كيف تتحكم إعدادات الإسهاب في مقدار مخرجات التصحيح.
قد تكشف الآثار التفصيلية الاستدعاء الذي تراجع والدالة التي نُفذت وكيف تطورت التفاعلات المتداخلة بين العقود.يفيد التتبع خصوصًا في البروتوكولات التي تستخدم الوكلاء والاستدعاءات الراجعة والخطافات وتحويلات التوكنات وعدة عقود مترابطة.قد تتضمن مخرجات تصحيح الأخطاء عناوين أو معلمات أو معلومات تطوير حساسة أخرى، لذا ينبغي التعامل مع السجلات المشتركة بحذر.تسجيل Console في Solidity
تدعم Hardhat تسجيلًا عبر Console لأغراض التطوير في شفرة Solidity ضمن البيئات المحاكية.يمكن للمطورين طباعة القيم أثناء تنفيذ اختبار أو معاملة محلية.وقد يسهل ذلك فحص الحالة والمستدعين والأرصدة والحسابات الوسيطة.ينبغي عدم الإبقاء على تسجيل التطوير في الشفرة الإنتاجية دون سبب واضح.قد تؤثر أدوات التسجيل في bytecode وحجم العقد وسلوك النشر.ينبغي استبدال عبارات التصحيح المؤقتة باختبارات وتوكيدات مؤتمتة قبل الإصدار.مهام Hardhat
مهمة Hardhat أمر مسمى يؤتمت جزءًا من سير عمل التطوير.قد تجمع المهمة العقود أو تفحص الحسابات أو تنشئ تقارير أو تدير عمليات النشر أو تنفذ عملية خاصة بالمشروع.يمكن للإضافات تسجيل مهام تصبح متاحة عبر واجهة سطر الأوامر.ينبغي للمهام المخصصة التحقق من هوية الشبكة ومدخلات المستخدم قبل إرسال المعاملات.يجب ألا تستخدم مهمة خطرة بصمت الحساب المتاح الأول أو تختار شبكة إنتاج افتراضيًا.تقلل أسماء الأوامر الواضحة وفحوص التأكيد مخاطر النشر أو تحويل الأموال عن طريق الخطأ.البرامج النصية في Hardhat
برامج Hardhat النصية برامج TypeScript أو JavaScript تستخدم بيئة التشغيل والإضافات المثبتة.يمكن للبرنامج النصي نشر العقود أو استدعاء الدوال أو قراءة الحالة أو نقل الأدوار الإدارية أو إنشاء سجلات النشر.توفر البرامج النصية مرونة، لكنها تحمل المطور مسؤولية أكبر من نظام نشر منظم.قد يفشل البرنامج بعد إتمام عدة معاملات بينما تظل معاملات لاحقة غير منفذة.ينبغي تصميم البرامج النصية لاكتشاف الحالة القائمة وتجنب تكرار العمليات الخطرة.ينبغي لبرامج الإنتاج تسجيل هاشات المعاملات والعناوين المنشورة والمعلمات ومعرّفات الشبكات والنتائج.Hardhat Ignition
Hardhat Ignition نظام النشر التصريحي الرسمي المقدم لمشاريع Hardhat.يصف المطورون مثيلات العقود والعمليات التي يريدونها عبر وحدات النشر.تحلل Ignition هذه التعريفات وتحدد طريقة تنفيذ النشر.يمكنها إرسال معاملات مستقلة بالتوازي والتعافي من أخطاء معينة واستئناف عمليات النشر المتوقفة.يشرح دليل نشر Hardhat Ignition كيفية جمع العقود واستدعاءات ما بعد النشر في وحدات.
يقلل النشر التصريحي بعض مخاطر البرامج النصية اليدوية، لكن يجب مراجعة منطق الوحدات ومعلماتها بعناية.قد يكرر النظام المؤتمت الخطأ نفسه باستمرار إذا كان تعريف النشر غير صحيح.نشر العقود الذكية
يرسل النشر معاملات إنشاء العقود إلى شبكة بلوكتشين.تتضمن المعاملة bytecode الإنشاء المجمّع ومعلمات المُنشئ.بعد تأكيدها، يحصل العقد على عنوان تحدده قواعد الإنشاء في البلوكتشين.ينبغي أن يستخدم النشر المترجم والمحسن ومعلمات المُنشئ والحساب والسلسلة وإعدادات الغاز المقصودة.ينبغي للفرق إجراء نشر محاكى نهائي باستخدام عناصر الإنتاج نفسها تمامًا قبل إرسال معاملة حية.كما ينبغي التحقق من الأدوار الإدارية والملكية وأذونات الترقية وعناوين الخزانة وضوابط الطوارئ فور النشر.يجب عدم إدراج المفاتيح الخاصة مباشرةً في ملف إعداد Hardhat أو مستودع الشفرة المصدرية.التحقق من العقود الذكية
يربط التحقق من العقد الذكي bytecode المنشور بالشفرة المصدرية المعلنة وإعدادات المترجم.تتيح الشفرة التي تم التحقق منها للمستخدمين والمدققين والمحافظ وأدوات المراقبة فحص السلوك المقصود للعقد.توفر Hardhat إضافة رسمية للتحقق.يوضح دليل Hardhat للتحقق أن التحقق يثبت إنتاج bytecode المنشور من شفرة مصدرية محددة.
لكنه لا يثبت أن الشفرة المصدرية آمنة أو عادلة أو خالية من مخاطر اقتصادية خفية.يجب أن تتطابق معلمات المُنشئ والمكتبات المرتبطة وإعدادات المحسن والبيانات الوصفية وإصدارات المترجم مع عملية النشر.ينبغي للفرق الاحتفاظ بمعلومات البناء حتى يتسنى إعادة التحقق لاحقًا.إضافات Hardhat
توسع الإضافات وظائف التطوير في Hardhat.تدعم الإضافات الرسمية viem وethers وأدوات التوكيد ومساعدات الشبكة والتحقق من العقود ونشر Ignition وتخزين الإعدادات المشفر وموقّعي الأجهزة ومشغلات الاختبار.يسرد دليل الإضافات الرسمي الإضافات التي تتولى Nomic Foundation صيانتها.
قد تضيف إضافات المجتمع ميزات مفيدة، لكنها قد لا تخضع للمستوى نفسه من المراجعة أو الصيانة.قد تتمكن إضافة خبيثة من قراءة ملفات المشروع ومتغيرات البيئة والمفاتيح وبيانات النشر وحركة مرور الشبكة.ينبغي للمطورين فحص مالك الإضافة وسجل تحديثاتها وشفرتها المصدرية وتبعياتها وأذوناتها وتوافقها قبل تثبيتها.أمان التبعيات
يعتمد مشروع Hardhat على حزم Node.js قد تنفذ شفرة أثناء التثبيت أو الاختبار أو النشر.قد تحاول تبعية مخترقة سرقة متغيرات البيئة أو المفاتيح الخاصة أو الشفرة المصدرية أو بيانات اعتماد النشر.ينبغي للمشاريع حفظ ملف قفل ومراجعة تغييرات التبعيات غير المتوقعة.ينبغي تنفيذ عمليات النشر الإنتاجية على أنظمة نظيفة ذات برامج محدودة وإصدارات حزم موثقة.يجب عدم دمج تحديثات التبعيات المؤتمتة دون اختبار ومراجعة.لا تضمن شعبية الحزمة أمان كل إصدار منها.Hardhat والمفاتيح الخاصة
قد تحتاج Hardhat إلى الوصول إلى حساب توقيع عند نشر العقود أو استدعائها على شبكة خارجية.يشكل استخدام مفتاح خاص خام في ملف إعداد نصي عادي خطرًا أمنيًا جسيمًا.ينبغي ألا تحتوي مفاتيح التطوير إلا على أموال اختبارية.ينبغي حماية مفاتيح الإنتاج عبر تخزين مشفر أو توقيع بالأجهزة أو أذونات محدودة أو إجراءات متعددة التوقيع.ويُفضّل أن يحتفظ حساب النشر بالمبلغ المطلوب للمعاملة المخططة فقط متى أمكن.يمكن نقل الملكية الإدارية إلى حساب أكثر أمانًا بعد النشر.ينبغي فحص السجلات وتقارير الأخطاء للتأكد من عدم كشفها قيم إعدادات حساسة.Hardhat ومحافظ الأجهزة
يمكن لمحفظة الأجهزة توقيع معاملات نشر Hardhat أو إدارته عبر إضافة وسير عمل متوافقين.وقد يُبقي ذلك المفتاح الخاص خارج حاسوب التطوير.ينبغي أن يعرض الجهاز الوجهة والشبكة والقيمة وبيانات العقد متى أمكن.قد يصعب فهم عمليات نشر العقود المعقدة على شاشة جهاز صغيرة.لا تستطيع محفظة الأجهزة تحديد أن عملية نشر ضارة لمجرد أن Hardhat أنشأت المعاملة.يجب مراجعة الشفرة المصدرية وعناصر التجميع ومعلمات المُنشئ وبيانات المعاملة بصورة مستقلة.أخطاء أمنية شائعة في Hardhat
من الأخطاء الشائعة إدراج مفتاح خاص أو عبارة استرداد في مستودع الشفرة.ومنها النشر على بلوكتشين خاطئة بسبب الثقة باسم الشبكة دون التحقق من معرّف السلسلة.ومنها استخدام إعدادات مترجم مختلفة للاختبار والنشر والتحقق.ومنها اختبار الإجراءات الناجحة فقط وتجاهل المتصلين غير المصرح لهم وظروف الفشل.ومنها الاعتماد على نسخة متفرعة من حالة بلوكتشين متغيرة دون تثبيت رقم الكتلة.ومنها تثبيت إضافات غير مراجعة يمكنها الوصول إلى أسرار النشر.ومنها افتراض أن التغطية الكاملة للشفرة تعادل تدقيقًا أمنيًا.ومنها منح حساب النشر سيطرة دائمة على جميع وظائف البروتوكول.ومنها عدم التحقق من العناوين المنشورة والملكية بعد انتهاء النشر.ومنها إرسال أموال حقيقية إلى عناوين تطوير مولدة محليًا لم تُؤمَّن مفاتيحها قط.أفضل ممارسات Hardhat
ثبّت إصدارات Hardhat والإضافات والمكتبات والمترجم في ملفات تبعيات المشروع.استخدم إصدارًا مدعومًا من Node.js وملف قفل للحزم محفوظًا في المشروع.أبقِ المفاتيح الخاصة ونقاط الاتصال الحساسة خارج مستودع الشفرة.استخدم حسابات منفصلة للاختبار المحلي والاختبار العام والنشر والإدارة طويلة الأجل.اكتب اختبارات للوحدات والتكامل وFuzz والثوابت وضوابط الوصول وشروط الفشل.شغّل اختبارات تغطية الشفرة مع تذكر أن التغطية تقيس التنفيذ لا الصحة.استخدم اختبارات النسخ المتفرعة المثبتة عند كتل معروفة لاختبار تكامل البروتوكولات بصورة قابلة للتكرار.راجع تغيرات الغاز وحجم العقد قبل النشر.تحقق من الشفرة المصدرية واحتفظ بمعلومات البناء بعد النشر.استعن بمراجعة أمنية مستقلة للعقود التي تتحكم في قيمة معتبرة من العملات المشفرة.قيود Hardhat
لا تستطيع Hardhat إثبات سلامة التصميم الاقتصادي للعقد.ولا تضمن أن مجموعة الاختبارات تشمل كل مسارات الهجوم.ولا تستطيع إعادة إنتاج كل ظروف شبكات الإنتاج بدقة تامة.ولا تمنع المطور من توقيع معاملة بالحساب أو الشبكة الخطأ.ولا تؤمن مفتاحًا خاصًا مخزنًا بإهمال في المشروع.ولا تجعل تبعية خارجية غير آمنة موثوقة.ولا تحل محل التحقق الرسمي والتدقيق ومكافآت اكتشاف الأخطاء والمراقبة والتخطيط للاستجابة للحوادث.تكون Hardhat أكثر فاعلية عند استخدامها كجزء من عملية تطوير آمنة أوسع.الأسئلة الشائعة
ما Hardhat في مجال العملات المشفرة؟
Hardhat بيئة تطوير تُستخدم لتجميع العقود الذكية على Ethereum والسلاسل المتوافقة مع EVM واختبارها وتصحيحها ونشرها والتحقق منها.هل Hardhat بلوكتشين؟
لا، Hardhat أداة لتطوير البرمجيات وليست شبكة بلوكتشين.هل Hardhat عملة مشفرة؟
لا، لا تمثل Hardhat عملة أو توكنًا.من يطور Hardhat؟
تطور مؤسسة Nomic Foundation Hardhat لمجتمع تطوير Ethereum.ما الإصدار الرئيسي الحالي من Hardhat؟
Hardhat 3 هو خط الإصدار الرئيسي الحالي.ما أحدث إصدار من Hardhat؟
اعتبارًا من 13 يوليو 2026، أحدث إصدار موسوم هو Hardhat 3.9.1.ما لغات البرمجة المستخدمة في Hardhat؟
تستخدم مشاريع Hardhat عادةً Solidity للعقود الذكية وTypeScript أو JavaScript للإعدادات والبرامج النصية واختبارات التكامل.ما الذي تجمعه Hardhat؟
تجمع Hardhat شفرة Solidity المصدرية في bytecode لـ EVM وABI وعناصر البناء والمعلومات المرتبطة بها.هل تتضمن Hardhat بلوكتشين محلية؟
تتضمن Hardhat شبكات بلوكتشين محاكية مصممة للتطوير المحلي والاختبار المؤتمت.هل تدعم Hardhat اختبارات Solidity؟
نعم، تدعم Hardhat 3 اختبارات مكتوبة مباشرةً بـ Solidity، إضافةً إلى اختبارات قائمة على TypeScript.هل تستطيع Hardhat إجراء اختبار Fuzz؟
نعم، يمكن لاختبارات Solidity توليد مدخلات متنوعة لاختبار الخصائص والحالات الطرفية.هل تستطيع Hardhat اختبار ثوابت العقود؟
نعم، يمكن للمطورين تحديد خصائص ينبغي أن تظل صحيحة عبر تسلسلات مولدة من إجراءات العقود.ما Hardhat Ignition؟
Hardhat Ignition نظام النشر التصريحي الرسمي لتحديد عمليات نشر العقود الذكية وتنفيذها واستئنافها وتسجيلها.هل تستطيع Hardhat نشر العقود على شبكات عامة؟
نعم، يمكن لـ Hardhat الاتصال بنقطة نهاية JSON-RPC خارجية وإرسال معاملات نشر موقعة.هل تحتاج Hardhat إلى عملات مشفرة حقيقية للاختبار المحلي؟
لا، توفر الشبكات المحاكية حسابات وأرصدة تطوير لا قيمة لها في العالم الحقيقي.ما تفريع الشبكة في Hardhat؟
ينسخ تفريع الشبكة حالة البلوكتشين من كتلة مختارة على شبكة عامة إلى محاكاة محلية للاختبار.هل تستطيع Hardhat التحقق من عقد ذكي؟
نعم، يمكن لإضافة التحقق الرسمية إرسال الشفرة المصدرية ومعلومات البناء إلى خدمات تحقق مدعومة.هل يثبت التحقق من العقد أنه آمن؟
لا، يربط التحقق الشفرة المصدرية بـ bytecode المنشور، لكنه لا يثبت أمان المنطق أو سلامته الاقتصادية.هل تعني التغطية العالية للشفرة أن العقد آمن؟
لا، توضح التغطية العالية أن الشفرة نُفذت أثناء الاختبارات، ولا تثبت التحقق من الخصائص الصحيحة.هل تستطيع Hardhat تقدير استخدام الغاز؟
نعم، يمكن لـ Hardhat إنشاء إحصاءات الغاز ولقطاته أثناء عمليات الاختبار المدعومة.هل يمكن لـ Hardhat الاتصال بعدة شبكات بلوكتشين؟
نعم، تستطيع Hardhat 3 إدارة اتصالات شبكية متعددة وإعدادات لسلاسل محاكية.هل تخزين مفتاح خاص في إعداد Hardhat آمن؟
لا، ينبغي تحميل المفاتيح الخاصة عبر نظام خارجي محمي، لا حفظها كنص عادي في المشروع.هل يمكن لـ Hardhat استخدام محفظة أجهزة؟
نعم، يمكن لإضافات وسير عمل متوافقين استخدام جهاز لتوقيع معاملات نشر وإدارة محددة.هل جميع إضافات Hardhat آمنة؟
لا، قد تصل الإضافات إلى موارد حساسة في المشروع، لذا ينبغي مراجعتها قبل التثبيت.هل يمكن لـ Hardhat أن تحل محل تدقيق العقد الذكي؟
لا، تدعم Hardhat التطوير والاختبار، لكنها لا تحل محل تقييم أمني مستقل.لماذا ينبغي تثبيت كتلة محددة لاختبار النسخة المتفرعة؟
يجعل تثبيت الكتلة حالة البلوكتشين المنسوخة ثابتة، بحيث تظل عمليات الاختبار المستقبلية قابلة لإعادة الإنتاج.هل تستطيع Hardhat منع النشر على الشبكة الخطأ؟
يمكن لـ Hardhat دعم عمليات التحقق، لكن يظل على المطورين فحص معرّف السلسلة والحساب ونقطة النهاية ومعلمات النشر.الخلاصة
Hardhat بيئة تطوير شاملة لإنشاء برمجيات العقود الذكية على Ethereum والسلاسل المتوافقة مع EVM.تجمع التجميع وعناصر البناء والشبكات المحاكية والاختبار وتصحيح الأخطاء والنشر والتحقق والبرامج النصية والمهام والإضافات ضمن بنية مشروع واحدة.Hardhat 3 هو الإصدار الرئيسي الحالي، ويضيف اختبارات Solidity أصلية ومحاكاة متعددة السلاسل وعناصر مكتوبة الأنواع وملفات تعريف للبناء وتغطية للشفرة وإدارة أكثر مرونة للشبكات.يمكن للمطورين استخدام Hardhat لاختبار العقود محليًا قبل إنفاق عملات مشفرة حقيقية أو تعريض أصول المستخدمين للخطر.يوفر Hardhat Ignition نظام نشر منظمًا يمكنه استئناف العمل المتوقف وتسجيل حالة النشر.يتيح اختبار النسخ المتفرعة إعادة إنتاج حالة بلوكتشين عامة واختبار التفاعلات مع العقود الموجودة.قد تكشف آثار التنفيذ وتقارير التغطية واختبارات Fuzz والثوابت وإحصاءات الغاز كثيرًا من المشكلات التقنية قبل النشر.لا تضمن هذه الأدوات الأمان، إذ تظل جودة النتائج معتمدة على الشفرة المصدرية والاختبارات والافتراضات والتبعيات والمفاتيح وعملية النشر.ينبغي إبقاء المفاتيح الخاصة خارج مستودعات الشفرة المصدرية وحمايتها بإجراءات قوية للتوقيع والتحكم في الوصول.ينبغي مراجعة الإضافات وتبعيات الحزم لأنها قد تصل إلى موارد تطوير حساسة.ينبغي أن تستخدم العقود الإنتاجية إعدادات مترجم مثبتة وبناءً قابلًا لإعادة الإنتاج وشفرة مصدرية موثقة ومراجعة مستقلة ومراقبة بعد النشر.بالنسبة إلى مطوري العملات المشفرة، من الأفضل فهم Hardhat على أنها مساحة عمل قوية للحد من مخاطر تطوير العقود الذكية، لا بديلًا عن الهندسة الدقيقة والمراجعة الأمنية.قد يعجبك أيضاً
WhatsMiner M30S++
نطاقات Web3
مشاريع Web3
رائج
العملات المشفرة الرائجة حاليًا والتي تحظى باهتمام كبير في السوق
الأعلى حجماً
العملات المشفرة ذات أعلى حجم تداول
مضاف حديثا
العملات المشفرة المدرجة مؤخرًا والمتاحة للتداول

