ما بلوكتشين Ganache؟
بلوكتشين Ganache محاكي بلوكتشين محلي صُمم لمساعدة المطورين على إنشاء العقود الذكية المتوافقة مع Ethereum ونشرها واختبارها وتصحيحها، من دون إنفاق عملات مشفرة حقيقية.ينشئ Ganache بيئة بلوكتشين خاصة على حاسوب المطور، ويحاكي كثيراً من سلوكيات آلة Ethereum الافتراضية.يمكن للمطورين استخدام Ganache لإنشاء الكتل وإرسال المعاملات ونشر العقود وفحص أرصدة الحسابات واختبار استهلاك الغاز وتعديل ظروف البلوكشين ضمن بيئة محكومة.تصف وثائق Ganache الرسمية المؤرشفة الأداة بأنها بلوكتشين شخصي لتطوير التطبيقات الموزعة بسرعة.
استُخدم Ganache على نطاق واسع مع مشروعات Solidity، لأنه وفر حسابات اختبار ممولة وتأكيداً فورياً للمعاملات ومفاتيح خاصة يمكن التنبؤ بها وسجلات تنفيذ مفصلة.كان متاحاً كتطبيق مكتبي بواجهة رسومية، وبرنامج لسطر الأوامر، ومكتبة JavaScript يمكن تضمينها في الاختبارات الآلية.لا يتصل Ganache بشبكة Ethereum الرئيسية الحقيقية، إلا إذا أُعدت ميزة التفرع عمداً لنسخ البيانات من شبكة أخرى.لا تحمل العملات المشفرة والتوكنات التي تُنشأ داخل نسخة Ganache عادية قيمة سوقية، ولا يمكن نقلها مباشرةً إلى بلوكتشين عامة.هل ما زال تطوير بلوكتشين Ganache مستمراً؟
لم يعد Ganache أداة نشطة الصيانة لتطوير Ethereum.أعلنت Consensys في سبتمبر 2023 إيقاف Ganache ومجموعة أدوات التطوير الأوسع Truffle.أوصى الإعلان الرسمي عن إيقاف Ganache المطورين بالانتقال إلى بيئات تطوير Ethereum تتلقى صيانة نشطة.
أُرشف مستودع الشيفرة المصدرية لـGanache في فبراير 2024، وأصبح للقراءة فقط.
يمكن عموماً الاستمرار في تنزيل البرامج المؤرشفة وتثبيتها ودراستها واستخدامها ضمن بيئات متوافقة.لكن المشروع المؤرشف لا يتلقى عادةً دعماً لترقيات Ethereum الجديدة أو صيانة للتبعيات أو تصحيحات أمنية أو إصلاحات للأخطاء أو تحسينات للتوافق.وهذا التمييز مهم، لأن Ethereum تواصل التطور عبر ترقيات الشبكة التي تضيف قواعد جديدة للمعاملات ورموز تشغيل وتكاليف غاز وميزات للعقود الذكية.قد يتصرف عقد يعمل على نحو صحيح في بيئة Ganache قديمة بطريقة مختلفة على شبكة Ethereum الحالية.لذلك ينبغي للمشروعات الإنتاجية الجديدة استخدام شبكة تطوير محلية تتلقى صيانة نشطة وتدعم إصدار EVM المقصود.كيف يعمل بلوكتشين Ganache؟
يشغّل Ganache عملية بلوكتشين معزولة بأسلوب Ethereum على حاسوب المطور.وتوفر العملية نقطة اتصال Ethereum JSON-RPC يمكن للمحافظ والبرامج النصية وأطر الاختبار والتطبيقات اللامركزية استخدامها كما تستخدم عقدة بلوكتشين عادية.توضح وثائق Ethereum JSON-RPC الرسمية كيفية استخدام التطبيقات أساليب موحدة لقراءة بيانات البلوكشين وإرسال المعاملات.
عندما يرسل المطور معاملة إلى Ganache، يتحقق البرنامج المحلي من الطلب وينفذ تعليمات EVM ويحدّث حالة البلوكشين الخاصة، ثم يعيد إيصال المعاملة.يمكن لـGanache تعدين الكتل فور تلقي المعاملات، أو اتباع فاصل زمني قابل للضبط بين الكتل.وبما أن البلوكشين يعمل محلياً، لا يحتاج المطور إلى انتظار المدققين أو المعدّنين العموميين لإدراج معاملات الاختبار.كما يتحكم المطور في أرصدة الحسابات وقواعد الغاز والطوابع الزمنية ومعرّفات السلاسل وسلوك التعدين وإعدادات شبكة كثيرة أخرى.يجعل هذا التحكم Ganache مفيداً للاختبارات القابلة للتكرار، إذ يمكن للإعداد الأولي نفسه إنتاج الحسابات وحالة البداية نفسيهما عبر جولات اختبار متعددة.حسابات بلوكتشين Ganache
تنشئ جلسة Ganache عادية عدة حسابات اختبار عند بدء البلوكشين المحلي.تُموَّل هذه الحسابات عادةً بأرصدة كبيرة من ETH المحاكى، ليتمكن المطورون من نشر العقود وإرسال المعاملات بحرية.يوجد ETH هذا داخل بلوكتشين Ganache المحلي فقط، ولا قيمة له خارج تلك البيئة.يمكن لـGanache اشتقاق الحسابات من عبارة تذكّرية حتمية.قد تؤدي إعادة استخدام العبارة التذكّرية وإعدادات الاشتقاق نفسها إلى إنشاء عناوين الاختبار والمفاتيح الخاصة نفسها في جلسة Ganache أخرى متوافقة.يفيد هذا التوقع في الاختبارات الآلية، إذ يمكن للبرامج النصية معرفة الحسابات التي ستكون موجودة مسبقاً.يمكن الوصول عمداً إلى المفاتيح الخاصة التي يعرضها Ganache، لأن الحسابات مخصصة للتطوير لا لحفظ الأصول الحقيقية.يجب عدم إعادة استخدام عبارة تذكّر أو مفتاح خاص من Ganache مع حساب يحتوي على عملات مشفرة حقيقية.يمكن لأي شخص يعرف أحد مفاتيح التطوير هذه التحكم في العنوان المرتبط به على أي شبكة استُخدم عليها المفتاح نفسه.واجهة Ganache الرسومية وGanache CLI
وُزّع Ganache في صورة تطبيق مكتبي بواجهة رسومية وواجهة لسطر الأوامر.قدمت النسخة الرسومية صفحات مرئية للحسابات والكتل والمعاملات والعقود والأحداث وسجلات التنفيذ.كانت شائعة بين المبتدئين، إذ أمكنهم مراقبة نشاط البلوكشين من دون استخدام أوامر الطرفية.وفرت نسخة سطر الأوامر خيارات ضبط أكثر، وكان إدراجها في البرامج النصية وخوادم التطوير وخطوط الاختبار الآلي أسهل.قد يبدأ مشروع قديم نسخة سطر الأوامر بأمر مثل
توثق مرجعية خيارات Ganache CLI المؤرشفة مجموعات الإعدادات الخاصة بسلوك السلسلة والمحافظ والتعدين وقواعد البيانات والسجلات والتفرعات وخوادم الشبكة.
كان بإمكان أداة سطر الأوامر العمل في وضع منفصل، ليستمر تشغيل البلوكشين المحلي بعد انتهاء الأمر الأصلي.خدمت النسختان الغرض العام نفسه، لكنهما وفرتا مستويين مختلفين من الأتمتة والفحص المرئي.ما البلوكشين الشخصي؟
البلوكشين الشخصي بيئة بلوكتشين معزولة يتحكم بها مطور واحد أو فريق تطوير.وهو ليس شبكة عامة لامركزية تضم مدققين ومستخدمين مستقلين اقتصادياً.يمكن للمشغّل إعادة تشغيل السلسلة وتغيير إعداداتها وإنشاء حسابات ممولة ومحو سجلها والتحكم في إنتاج الكتل.تجعل هذه الإمكانات البلوكشين الشخصي ملائماً للاختبار، لكنها تحول دون محاكاته جميع الظروف الموجودة في شبكة عملات مشفرة عامة.تتنافس معاملة Ethereum العامة على مساحة الكتل، وتدفع رسوم ETH حقيقية، وتتفاعل مع نشاط غير متوقع، وتتحقق منها شبكة موزعة.أما معاملة Ganache فتُنفذ عادةً في بيئة محلية يمكن التنبؤ بها، ويتحكم المطور في جميع المشاركين فيها.لذلك يُعد نجاح الاختبار المحلي مرحلة مبكرة من التطوير، لا دليلاً على جاهزية العقد للاستخدام الإنتاجي.بلوكتشين Ganache مقابل شبكة Ethereum الرئيسية
شبكة Ethereum الرئيسية هي الشبكة العامة الحية التي قد تكون لـETH والتوكنات والعقود الذكية ومعاملات البلوكشين فيها قيمة مالية حقيقية.أما Ganache فهو محاكاة خاصة يتحكم مشغّلها في الحسابات والأرصدة والتعدين والطوابع الزمنية وسجل السلسلة.تحتوي كتل الشبكة الرئيسية على معاملات من مستخدمين وتطبيقات لا علاقة لها ببعضها حول العالم.ولا تتضمن نسخة Ganache أساسية عادةً سوى المعاملات التي ترسلها أدوات المطور نفسه.تستجيب أسعار الغاز في الشبكة الرئيسية للطلب الفعلي على مساحة الكتل المحدودة، بينما يمكن لـGanache استخدام إعدادات ثابتة أو مبسطة للغاز.صُممت معاملات الشبكة الرئيسية لتكون دائمة بعد الإنهاء، بينما يمكن التراجع عن حالة Ganache أو حذفها فوراً.يمكن لعقود الشبكة الرئيسية التفاعل مع التوكنات الحية والبروتوكولات والأوراكل والسيولة، بينما تبدأ شبكة Ganache جديدة من دون هذه الأنظمة.لا يستطيع الاختبار على Ganache محاكاة جميع ظروف الشبكة الرئيسية، بما فيها الازدحام والمستخدمون المعادون وترتيب المعاملات وسلوك المدققين والبيانات الخارجية المتغيرة.بلوكتشين Ganache مقابل شبكة اختبار عامة
شبكة الاختبار العامة بلوكتشين مشتركة يستخدمها كثير من المطورين لاختبار التطبيقات قبل نشرها على الشبكة الرئيسية.تحدد وثائق شبكات تطوير Ethereum الحالية شبكات الاختبار العامة التي تتلقى صيانة وخيارات التطوير المحلية.
توفر شبكة الاختبار العامة اتصالاً شبكياً وتوقيتاً للكتل وعقوداً مشتركة وتفاعلات مع مستخدمين مستقلين، وهي أقرب إلى الواقع من سلسلة Ganache خاصة.لكن شبكات الاختبار العامة قد تكون أبطأ وأقل قابلية للتنبؤ، وقد تتطلب الحصول على عملات مشفرة للاختبار.يمكن بدء Ganache فوراً وإنشاء حسابات ممولة تلقائياً وإعادة ضبط الحالة عند الحاجة.تبدأ عملية اختبار قوية غالباً باختبارات وحدات محلية سريعة، ثم تنتقل إلى شبكة اختبار عامة تتلقى الصيانة لاختبار التكامل.لا يغني الاختبار المحلي أو على شبكة اختبار عن مراجعة أمنية للعقد الذكي في التطبيقات التي ستتحكم بعملات مشفرة ذات قيمة.التعدين الفوري في Ganache
يمكن لـGanache تعدين كتلة جديدة فور تلقي معاملة.يسرّع التعدين الفوري الاختبارات، إذ يمكن تأكيد نشر العقود واستدعاء الوظائف من دون انتظار الفاصل الزمني للكتل العامة.يمكن للمطورين أيضاً ضبط زمن للكتلة لمحاكاة سلسلة تنتج الكتل على فواصل منتظمة.قد يساعد التعدين اليدوي في اختبار المعاملات المعلقة وترتيبها والتطبيقات التي تستجيب للكتل الجديدة.تُعد هذه الخيارات مفيدة للتطوير، لكنها قد تخفي مشكلات التوقيت التي تظهر على الشبكات العامة.ينبغي ألا يفترض التطبيق اللامركزي أن كل معاملة مرسلة ستُؤكد فوراً.ينبغي أن تراعي اختبارات الإنتاج تأخر الإدراج والمعاملات البديلة ورسوم الغاز المتغيرة والمعاملات التي تظل معلقة.اللقطات والتراجع عن الحالة
يدعم Ganache اللقطات التي تسجل الحالة الحالية للبلوكشين المحلي.يمكن للمطور إنشاء لقطة قبل الاختبار، وتنفيذ المعاملات، ثم الرجوع إلى الحالة السابقة.تتيح هذه الميزة بدء اختبارات عديدة من الأرصدة نفسها ومحتوى تخزين العقود ورقم الكتلة وإعدادات الحسابات نفسها.قد تسرّع اللقطات مجموعات الاختبار، إذ لا يحتاج التطبيق إلى إعادة نشر كل عقد قبل كل اختبار.كما تفيد في تقصي خطأ، إذ يستطيع المطور تكرار سلسلة المعاملات نفسها انطلاقاً من نقطة بداية معروفة.معرّف اللقطة محلي لعملية التطوير، ولا معنى له على شبكة Ethereum الرئيسية.لا يستطيع مستخدمو البلوكشين العامة عادةً عكس سجل الشبكة المؤكد باستدعاء وظيفة لقطة.التلاعب بالوقت في Ganache
يتيح Ganache للمطورين تعديل وقت البلوكشين أو تقديم الطابع الزمني المستخدم في الكتل المستقبلية.تفيد هذه الإمكانية في اختبار استحقاق التوكنات والمزادات وفترات التصويت في الحوكمة ومواعيد الإقراض وجداول Staking والعقود الذكية المقيدة زمنياً.يمكن للمطور محاكاة مرور أيام أو أشهر من دون انتظار الوقت الفعلي.يساعد التلاعب بالوقت أيضاً في اختبار الظروف التي تقع مباشرةً قبل موعد نهائي أو بعده.لكن طوابع Ethereum الزمنية تُحدد ضمن قيود البروتوكول، ولا يتحكم بها مطور التطبيق.ينبغي ألا يفترض العقد أن الطوابع الزمنية في بيئة الإنتاج ستطابق القيم المستخدمة في الاختبار المحلي تماماً.ينبغي أن تراعي منطقية الوقت الحساسة أمنياً الاختلافات الواقعية، وأن تُختبر على بيئة EVM حديثة.تفرع شبكة Ganache
يمكن لـGanache إنشاء نسخة محلية متفرعة من شبكة متوافقة مع Ethereum موجودة.تقرأ البيئة المتفرعة أرصدة الحسابات ورمز العقود ومحتوى تخزينها من كتلة بعيدة محددة، مع معالجة المعاملات الجديدة محلياً.يتيح ذلك للمطورين اختبار التفاعل مع العقود المنشورة من دون تعديل الشبكة الحقيقية.يمكن للمطور انتحال عنوان موجود وإضافة أرصدة اختبار محلية ومحاكاة معاملات معقدة على الحالة المنسوخة.يفيد التفرع في إعادة إنتاج الأخطاء واختبار عمليات التكامل وتقييم ترقيات العقود ودراسة ظروف البلوكشين التاريخية.تبقى الشبكة البعيدة دون تغيير، لأن معاملات التفرع الجديدة لا توجد إلا داخل عملية Ganache المحلية.يتطلب التفرع عادةً الوصول إلى عقدة JSON-RPC بعيدة متوافقة.قد لا تتمكن نسخة Ganache المؤرشفة من محاكاة سلوك الشبكة الحالية إذا كانت السلسلة المستهدفة تستخدم أنواع معاملات أو رموز تشغيل أو قواعد انقسام صلب أحدث.انتحال الحسابات
يتيح انتحال الحساب لشبكة تطوير محلية إرسال معاملات كما لو أنها صادرة عن عنوان بلوكتشين محدد.كان بإمكان Ganache انتحال عنوان في بيئة متفرعة من دون امتلاك المفتاح الخاص الحقيقي لذلك العنوان.هذه الإمكانية متاحة لأن المطور يتحكم في المحاكي المحلي.وقد تساعد في اختبار الوظائف الإدارية أو التفاعلات مع حاملي التوكنات أو إجراءات الحوكمة أو العقود التي تعتمد على متصل محدد.لا يكشف الانتحال المفتاح الخاص الحقيقي ولا يمنح السيطرة على العنوان في البلوكشين العامة الأصلية.ترفض شبكة الإنتاج معاملة عادية لا تتضمن توقيعاً صالحاً من الحساب الفعلي.ينبغي للمطورين التمييز بوضوح بين انتحال المحاكاة والتفويض الحقيقي للمحفظة.Ganache وEthereum JSON-RPC
يوفر Ganache أساليب تتبع واجهة Ethereum JSON-RPC التي تستخدمها المحافظ والتطبيقات اللامركزية.يمكن لتطبيق محلي طلب الأرصدة وفحص الكتل واستدعاء وظائف العقود وتقدير الغاز وإرسال المعاملات الموقعة واسترجاع إيصالات المعاملات.تشمل الأساليب الشائعة
معرّف سلسلة Ganache ومعرّف الشبكة
يحدد معرّف السلسلة البلوكشين التي وُقعت معاملة Ethereum من أجلها.ويساعد في منع إعادة بث معاملة موقعة لسلسلة معينة تلقائياً على سلسلة أخرى.استخدم Ganache عادةً معرّف السلسلة الافتراضي 1337، مع إمكانية ضبط المطور قيمة أخرى.معرّف الشبكة معرّف مرتبط به يُعاد عبر واجهة الشبكات ويمكن ضبطه بشكل منفصل.يجب أن تستخدم المحافظ وملفات إعداد التطبيقات عنوان RPC المحلي الصحيح ومعرّف السلسلة المطابق عند الاتصال بـGanache.قد يؤدي تعارض معرّفات السلسلة إلى تعامل المحفظة مع شبكتين منفصلتين كما لو كانتا البيئة نفسها.لا ينبغي تفسير معرّفات التطوير المحلية على أنها دليل على أن الشبكة عامة أو آمنة أو ذات قيمة اقتصادية.رسوم الغاز على بلوكتشين Ganache
يحاكي Ganache استهلاك الغاز ليتمكن المطورون من معرفة مقدار العمل الذي تتطلبه معاملة ضمن EVM.قد يؤثر في استهلاك الغاز المحاكى نشر العقود وكتابة البيانات في التخزين والاستدعاءات الخارجية وسجلات الأحداث وبيانات المعاملة والعمليات الحسابية.لا تملك ETH المحلية المستخدمة لدفع رسوم الغاز في Ganache قيمة سوقية حقيقية.يمكن للمطورين ضبط حدود الغاز للكتلة والمعاملة وأسعار الغاز وسلوك التعدين.تساعد هذه المرونة في اختبار أخطاء نفاد الغاز وتقدير تكلفة تنفيذ وظيفة في العقد.لكن تقديرات الغاز في Ganache قد لا تطابق سلوك الشبكة الرئيسية الحالي عندما يستخدم المحاكي أسعاراً قديمة لرموز التشغيل أو قواعد EVM قديمة.ينبغي إعادة قياس الغاز باستخدام مترجم حديث وهدف حديث للانقسام الصلب وبيئة تنفيذ تتلقى صيانة نشطة.نشر العقود الذكية على Ganache
يمكن نشر عقد ذكي مُجمّع على Ganache بإرسال معاملة إنشاء عقد إلى نقطة اتصال JSON-RPC المحلية.تتضمن المعاملة رمز الإنشاء الثنائي المجمّع وأي وسيطات منشئ مشفرة.ينفذ Ganache المُنشئ ويخزن رمز وقت التشغيل الناتج ويعيد عنوان عقد محلياً.يمكن للمطور بعد ذلك استدعاء العقد عبر البرامج النصية أو محفظة أو تطبيق متصفح أو عقد ذكي آخر.لا يوجد العنوان إلا على سلسلة Ganache هذه، إلا إذا نتج عن معاملة النشر نفسها، مصادفةً، عنوان مطابق في مكان آخر.لا يعني نجاح النشر على Ganache نشر العقد على شبكة Ethereum الرئيسية أو أي شبكة اختبار عامة.يتطلب كل نشر عام معاملة موقعة منفصلة ورسوم شبكة حقيقية.اختبار التوكنات باستخدام Ganache
يمكن للمطورين نشر عقود محلية للتوكنات القابلة للاستبدال أو NFT أو التوكنات المرتبطة بقيمة مستقرة أو الحوكمة أو Staking أو غيرها من العملات المشفرة على Ganache.ويمكنهم توزيع توكنات الاختبار على الحسابات المحلية والتحقق من الأرصدة والتحويلات والموافقات والسك والحرق وقواعد الأذونات.يمكن إضافة توكن محلي إلى محفظة متوافقة بإدخال عنوان عقد Ganache الخاص به عندما تكون المحفظة متصلة بالشبكة المحلية.يختفي التوكن من تلك البيئة عند إعادة ضبط البلوكشين المحلي، ما لم تُحفظ حالته بصورة دائمة.يظل التوكن الذي يستخدم الاسم والرمز نفسهما لعملة مشفرة حقيقية مجرد محاكاة عند نشره على Ganache.تعتمد هوية التوكن على البلوكشين وعنوان العقد، لا على الاسم المعروض وحده.اختبار العقود الذكية بطريقة حتمية
يعني الاختبار الحتمي أن ظروف البداية والمدخلات نفسها ينبغي أن تنتج النتيجة المتوقعة نفسها.دعم Ganache حسابات وأرصدة وسلوك كتل ونشر عقود وتسلسلات معاملات حتمية.سهّل هذا التوقع كتابة اختبارات آلية لوظائف العقود الذكية.يمكن للاختبار نشر عقد واستدعاء وظيفة من حساب معروف والتحقق من التغير المتوقع في التخزين أو الرصيد.ثم يمكن إعادة ضبط السلسلة أو الرجوع عنها قبل الاختبار التالي.تُعد الاختبارات الحتمية مفيدة، لكن بيئات البلوكشين الحقيقية تتضمن نشاطاً غير متوقع للمستخدمين وترتيباً غير متوقع للمعاملات وطوابع زمنية وظروف رسوم وبيانات خارجية.لذلك ينبغي أن تشمل اختبارات الإنتاج سيناريوهات تتجاوز المسار المحلي المثالي.أمان بلوكتشين Ganache
أُنشئ Ganache لأغراض التطوير، ولا ينبغي استخدامه شبكةً إنتاجية للعملات المشفرة.تكون حساباته ومفاتيحه الافتراضية ظاهرة للعموم أو سهلة الاستنساخ.يتمتع المشغّل المحلي بالسيطرة الكاملة على إنتاج الكتل وحالة الحسابات والوقت وسجل المعاملات.قد يكشف خادم RPC للتطوير المفاتيح الخاصة وأساليب اختبار قوية إذا كان متاحاً عبر شبكة غير موثوقة.ينبغي للمطورين ربط الخادم بالواجهات الضرورية فقط، وتجنب إتاحته مباشرةً على الإنترنت العام.يجب عدم استيراد عبارات الاسترداد الحقيقية أو المفاتيح الخاصة الإنتاجية أو العملات المشفرة ذات القيمة إلى Ganache مطلقاً.قد تعرض بيئة متفرعة من الشبكة الرئيسية عناوين وأرصدة حقيقية، لكن المحاكي المحلي لا يملك تلك الأصول.ينبغي مراجعة أي برنامج نصي يتعامل مع مفاتيح التطوير قبل إعادة استخدامه مع بيانات اعتماد الإنتاج.قيود بلوكتشين Ganache
لا يحاكي Ganache اللامركزية الكاملة أو الإجماع أو الاتصال الشبكي أو البيئة الاقتصادية لشبكة Ethereum الرئيسية.قد يخفي التعدين الفوري تأخير المعاملات والتنافس على مساحة الكتل.وقد تخفي حسابات الاختبار الممولة مشكلات الأرصدة غير الكافية أو تهيئة المحافظ للمستخدمين.قد يخفي ترتيب المعاملات المتوقع مخاطر الاستباق وإعادة الترتيب ومخاطر الترتيب الأخرى.قد لا تعيد الاختبارات المحلية محاكاة سلوك المدققين أو إعادة تنظيم السلسلة أو ظروف مجمع المعاملات العام أو السيولة الحقيقية.يجب نشر الأنظمة الخارجية، مثل أوراكل الأسعار والجسور والتوكنات وعقود الإقراض، محلياً أو الوصول إليها عبر التفرع.وتضيف حالة Ganache المؤرشفة قيداً آخر، إذ لا يتتبع البرنامج تطور بروتوكول Ethereum الحالي على نحو موثوق.لذلك ينبغي اعتبار نجاح اختبار Ganache دليلاً على التطوير، لا برهاناً على التوافق أو الأمان على الشبكة الرئيسية.Ganache والانقسامات الصلبة الحالية لشبكة Ethereum
قد تضيف ترقيات Ethereum رموز تشغيل وأنواع معاملات وجداول غاز وسلوك حسابات وافتراضات جديدة مرتبطة بالإجماع.لا يُتوقع أن يدعم رمز Ganache المؤرشف الأخير ترقيات Ethereum الصادرة بعد انتهاء تطويره النشط.قد ينشئ مترجم Solidity رمزاً ثنائياً يحتوي على تعليمات لا تتعرف إليها EVM القديمة في Ganache.وقد تفشل المعاملة محلياً عندئذٍ رغم صلاحيتها على الشبكة الحديثة المقصودة.وقد تحدث المشكلة العكسية أيضاً، إذ قد يقبل Ganache سلوكاً لم يعد ممثلاً لقواعد الإنتاج الحالية.ينبغي للمطورين الذين يصونون مشروع Ganache قديماً تحديد الانقسام الصلب الذي جرى ضبطه ومقارنته بشبكة النشر المستهدفة.ينبغي اختبار العقود الحديثة على شبكة تطوير تتلقى صيانة نشطة وتدعم هدف EVM المحدد للمترجم.هل يمكن الاستمرار في استخدام Ganache للمشروعات القديمة؟
قد يظل Ganache مفيداً لصيانة مشروع قديم صُمم واختُبر وفق سلوكه.قد يحتفظ الفريق بإصدار محدد من Ganache لإعادة إنتاج الاختبارات التاريخية، بينما يخطط لانتقال أوسع.ينبغي تسجيل إصدار الحزمة وإصدار بيئة التشغيل ونظام التشغيل والمترجم وتبعيات المشروع لضمان إمكانية إعادة الإنتاج.قد يصعب تثبيت التبعيات المؤرشفة عندما تزيل بيئات البرامج الأحدث الواجهات القديمة.وقد تبقى الثغرات الأمنية في الحزم الانتقالية من دون معالجة.ينبغي في نهاية المطاف مقارنة مجموعة الاختبارات القديمة بتنفيذ EVM يتلقى الصيانة قبل نشر تغييرات الإنتاج.ينبغي للفرق ألا تزيد اعتمادها على Ganache لمجرد أن المشروع الحالي ما زال يبدأ بنجاح.بدائل حديثة لبلوكتشين Ganache
يتوفر لمطوري Ethereum الآن عدد من الخيارات المحلية التي تتلقى صيانة نشطة لاختبار العقود الذكية.يوصي دليل شبكات تطوير Ethereum الحالي بالبدء بإطار تطوير حديث يتضمن شبكة محلية مدمجة.
توفر Hardhat Network بيئة Ethereum محلية لنشر العقود وتشغيل الاختبارات الآلية وفحص آثار التنفيذ وتصحيح شيفرة Solidity.أما Anvil فهي عقدة Ethereum محلية سريعة تُستخدم عادةً مع مجموعة أدوات تطوير Foundry.ويمكن تشغيل Geth في وضع المطور للاختبار باستخدام تنفيذ عميل Ethereum فعلي.يوضح دليل وضع المطور في Geth الرسمي كيفية بدء سلسلة تطوير محلية وربط أدوات التطوير بها.
يمكن لـKurtosis إنشاء شبكات اختبار Ethereum متعددة العملاء وقابلة لإعادة الإنتاج، لاختبار البروتوكول والبنية التحتية المتقدم.يعتمد البديل الأنسب على لغة برمجة المشروع وإطار الاختبار وطرق RPC المطلوبة واحتياجات التفرع وأهداف النشر.الانتقال من Ganache
ينبغي أن يبدأ الانتقال بتوثيق كيفية تشغيل المشروع لـGanache والخيارات المخصصة التي يستخدمها.ينبغي للفريق تسجيل معرّف السلسلة ومعرّف الشبكة والعبارة التذكّرية وعدد الحسابات والأرصدة الأولية ووقت الكتلة وحدود الغاز وإعدادات التفرع ومنفذ RPC.ينبغي مراجعة الاختبارات بحثاً عن أساليب JSON-RPC الخاصة بـGanache والمتعلقة باللقطات والتلاعب بالوقت والتعدين وانتحال الحسابات.يجب إعداد أساليب أو دوال مساعدة مكافئة في البيئة البديلة.ينبغي اختبار البرامج النصية لنشر المشروع، لأن إيصالات المعاملات وتقدير الغاز ورسائل الأخطاء والتعامل مع الحسابات قد تختلف.ينبغي إعادة إنشاء قياسات الغاز بدلاً من نسخها تلقائياً من البيئة القديمة.ينبغي أن تستخدم اختبارات التفرع موفر عقدة حديثاً وكتلة تدعمها شبكة التطوير الجديدة.كما ينبغي أن تتضمن مجموعة الاختبارات بعد الانتقال فحوصاً لميزات EVM الأحدث التي يستخدمها ناتج مترجم المشروع.المشكلات الشائعة في بلوكتشين Ganache
غالباً ما يحدث خطأ الاتصال عندما يستخدم التطبيق مضيف RPC محلياً أو منفذاً أو بروتوكول نقل غير صحيح.وقد يحدث خطأ معرّف السلسلة عندما تتوقع المحفظة إعداد شبكة محلية مختلفاً.قد ينتج خطأ الرقم المتسلسل عن إعادة تشغيل جزء من بيئة التطوير مع بقاء حالة الحساب القديمة في جزء آخر.وقد يحدث خطأ نقص الأموال عندما يستخدم التطبيق حساباً غير مدرج ضمن قائمة المحافظ الممولة في Ganache.قد ينتج فشل نفاد الغاز عن حد غير كافٍ لغاز المعاملة أو عن تراجع استدعاء عقد ذكي.وقد يشير خطأ رمز التشغيل غير المدعوم إلى أن العقد المجمّع يستهدف إصدار EVM أحدث من الإصدار الذي ينفذه Ganache.قد ينتج خطأ التفرع عن عدم توفر نقطة الاتصال البعيدة أو عدم دعم كتلة محددة أو عدم توافق بيانات الشبكة.وقد تنتج عناوين العقود غير المتوقعة عن اختلاف حساب الناشر أو أرقام المعاملات المتسلسلة أو العبارات التذكّرية أو تسلسل النشر.هل Ganache بلوكتشين حقيقي؟
ينفذ Ganache سلسلة محلية عاملة من الكتل والمعاملات والحسابات ورموز العقود والحالة.لذلك يمكن وصفه بأنه عملية بلوكتشين حقيقية بالمعنى التقني المتعلق بالتطوير.لكنه ليس شبكة عملات مشفرة عامة لامركزية.لا يأتي أمانه من مدققين مستقلين اقتصادياً أو إجماع عالمي أو مشاركة مفتوحة.يمكن للمشغّل المحلي تعديل السلسلة أو إعادة ضبطها أو حذفها في أي وقت.من الأفضل فهم Ganache على أنه محاكي Ethereum أو بلوكتشين تطوير شخصي، لا اقتصاد بلوكتشين إنتاجياً.هل لدى Ganache عملة مشفرة؟
ليس لدى Ganache عملة مشفرة رسمية متداولة في السوق.إن أرصدة ETH المحاكاة المخصصة للحسابات المحلية ليست إلا أرصدة اختبار داخل سلسلة التطوير الخاصة.لا يمكن سحبها إلى شبكة Ethereum الرئيسية أو بيعها بعملة وطنية أو استخدامها لشراء سلع حقيقية، إلا إذا قرر طرف آخر غير ذي صلة التعامل معها طوعاً على أنها ذات قيمة.ولا ينبغي افتراض أن أي توكن يستخدم اسم Ganache مرتبط ببرنامج التطوير المؤرشف.ينبغي للمستخدمين التحقق من التوكن عبر عنوان البلوكشين والعقد الدقيقين، لا الاعتماد على اسمه أو شعاره.الأسئلة الشائعة
ما بلوكتشين Ganache ببساطة؟
بلوكتشين Ganache محاكي Ethereum محلي يتيح للمطورين اختبار العقود الذكية والمعاملات من دون استخدام عملات مشفرة حقيقية.هل ما زال Ganache نشطاً؟
لا، أوقفت Consensys Ganache، وأصبح مستودع شيفرته المصدرية مؤرشفاً وللقراءة فقط.هل ما زال بالإمكان تنزيل Ganache؟
قد تظل الإصدارات المؤرشفة متاحة، لكن ينبغي التعامل معها على أنها برامج قديمة غير مدعومة.هل Ganache آمن للاستخدام الإنتاجي؟
لا، فهو أداة تطوير ذات حالة قابلة للتحكم ومفاتيح اختبار مكشوفة، وليس بلوكتشين إنتاجياً آمناً.هل يستخدم Ganache عملة ETH حقيقية؟
لا، فأرصدة ETH الافتراضية فيه أموال محاكاة لا قيمة لها إلا داخل البلوكشين المحلي.هل يمكن تحويل ETH في Ganache إلى شبكة Ethereum الرئيسية؟
لا، فأرصدة Ganache المحلية غير موجودة على الشبكة الرئيسية ولا يمكن سحبها إليها.هل يحتاج Ganache إلى اتصال بالإنترنت؟
يمكن تشغيل سلسلة Ganache محلية أساسية من دون اتصال بالإنترنت، بينما يتطلب تفرع الشبكة الوصول إلى عقدة بلوكتشين بعيدة.ما معرّف السلسلة الافتراضي في Ganache؟
يستخدم Ganache عادةً معرّف السلسلة 1337 افتراضياً، مع إمكانية تغييره من خلال الإعدادات.ما عنوان RPC الافتراضي لـGanache؟
يعتمد العنوان الدقيق على الإصدار والإعدادات، لكن نسخ Ganache المحلية تستمع عادةً إلى منفذ HTTP على المضيف المحلي.ما حسابات Ganache؟
حسابات Ganache عناوين تطوير ذات مفاتيح خاصة متاحة وأرصدة ETH محاكاة.هل يمكن توصيل محفظة بـGanache؟
نعم، يمكن لمحفظة متوافقة الاتصال باستخدام نقطة اتصال RPC المحلية ومعرّف السلسلة المطابق.هل يستطيع Ganache نشر عقود Solidity؟
نعم، يمكن نشر رمز Solidity الثنائي المجمّع وتنفيذه على EVM المحلية في Ganache.ما التفرع في Ganache؟
ينشئ التفرع في Ganache بيئة محلية استناداً إلى الحالة المنسوخة من كتلة محددة في بلوكتشين عامة.هل تؤثر معاملة Ganache المتفرعة في الشبكة الرئيسية؟
لا، تبقى المعاملات المنفذة بعد التفرع محلية ولا تعدل الشبكة العامة الأصلية.هل يمكن لـGanache انتحال حساب؟
نعم، يمكن لبيئته المحلية محاكاة معاملات صادرة عن عناوين محددة من دون التحكم في تلك العناوين على الشبكة الحقيقية.ما لقطة Ganache؟
تسجل اللقطة حالة البلوكشين المحلي ليتمكن الاختبار لاحقاً من العودة إلى النقطة نفسها تماماً.هل يمكن لـGanache تغيير وقت البلوكشين؟
نعم، يمكن لأساليب التطوير تقديم الوقت أو تعديل الطوابع الزمنية لاختبار العقود الذكية التي تعتمد على الوقت.لماذا يُعدّن Ganache الكتل فوراً؟
يقلل التعدين الفوري وقت الانتظار أثناء التطوير ويسرّع إكمال الاختبارات الآلية.هل يحسب Ganache الغاز؟
نعم، يحاكي Ganache استهلاك الغاز ورسوم المعاملات وفق قواعد EVM التي ينفذها إصداره.هل تقديرات الغاز في Ganache دقيقة بالنسبة إلى Ethereum الحالية؟
ليس بالضرورة، فقد لا تدعم إصدارات Ganache المؤرشفة قواعد الغاز ورموز التشغيل وسلوك المعاملات الحالية في Ethereum.لماذا يفشل عقد حديث برمز تشغيل غير مدعوم في Ganache؟
قد يكون العقد قد جُمّع لإصدار EVM أحدث مما يدعمه برنامج Ganache المؤرشف.هل Ganache هو نفسه شبكة الاختبار؟
لا، فـGanache سلسلة محلية خاصة عادةً، بينما تشترك شبكة الاختبار العامة فيها جهات تطوير وعقد مستقلة عديدة.هل Ganache هو نفسه شبكة Ethereum الرئيسية؟
لا، تحمل شبكة Ethereum الرئيسية أصولاً حقيقية وحالة عامة لامركزية، بينما يتحكم المشغّل المحلي في Ganache.هل يستطيع Ganache اختبار التوكنات وNFT؟
نعم، يمكن للمطورين نشر عقود التوكنات واختبار التحويلات والموافقات والسك والحرق ومنطق الملكية محلياً.هل يمكن استخدام Ganache لتدقيق العقود الذكية؟
يمكن لـGanache دعم الاختبارات، لكنه لا يحل محل المراجعة اليدوية أو التحليل الرسمي أو الاختبارات العدائية أو التدقيق الأمني المستقل.ما البديل الذي ينبغي استخدامه بدلاً من Ganache؟
ينبغي للمطورين اختيار شبكة Ethereum محلية تتلقى صيانة نشطة وتدعم إطار العمل وإصدار المترجم واحتياجات الاختبار وهدف EVM الخاص بهم.هل يمكن للمشروعات القديمة مواصلة استخدام Ganache؟
يمكنها استخدام إصدار مؤرشف محدد مؤقتاً، لكن مخاطر التوافق والأمان تجعل الانتقال خياراً موصى به.هل لدى Ganache توكن رسمي؟
لا، فـGanache برنامج تطوير وليس مشروع عملة مشفرة لديه توكن رسمي متداول في السوق.هل ينبغي إدخال عبارات استرداد حقيقية في Ganache؟
لا، يجب عدم استخدام عبارات الاسترداد ومفاتيح الإنتاج الخاصة مطلقاً في بيئة تطوير محلية.الخلاصة
بلوكتشين Ganache سلسلة Ethereum تطويرية شخصية تتيح للمطورين اختبار المعاملات والعقود الذكية والتوكنات واستهلاك الغاز والتطبيقات اللامركزية محلياً.جعلت حساباته الممولة والتعدين الفوري والمفاتيح الحتمية واللقطات وعناصر التحكم بالوقت وانتحال الحسابات وتفرع الشبكات منه أداة مهمة في بدايات تطوير Ethereum.يمكن لـGanache محاكاة كثير من سلوكيات EVM، لكنه لا يعيد إنتاج اللامركزية أو النشاط العام أو الأمان الاقتصادي أو الظروف غير المتوقعة لشبكة Ethereum الرئيسية.لا تملك ETH والتوكنات المحاكاة فيه قيمة سوقية حقيقية، ولا يمكن سحبها مباشرةً إلى شبكة عامة.أُوقف Ganache رسمياً في 2023، وأُرشف مستودعه في 2024.قد يظل البرنامج مفيداً لإعادة إنتاج الاختبارات القديمة، لكن لا ينبغي اعتباره تطبيقاً حديثاً لـEthereum أو جاهزاً للاستخدام الإنتاجي.قد تفتقر إصدارات Ganache المؤرشفة إلى دعم رموز التشغيل وأنواع المعاملات وقواعد الغاز ومخرجات المترجم وترقيات الشبكة الحديثة.ينبغي للمشروعات الجديدة استخدام شبكة تطوير محلية تتلقى صيانة نشطة، واختبار عمليات التكامل المهمة على شبكة اختبار عامة تتم صيانتها قبل النشر على الشبكة الرئيسية.ينبغي للمطورين الذين ينقلون مشروعاً قديماً إعادة إنشاء إعدادات الحسابات والسلسلة والتعدين واللقطات والوقت وRPC والتفرع في البيئة البديلة.من الأفضل فهم بلوكتشين Ganache على أنه بنية تحتية مهمة تاريخياً لاختبار Ethereum، وتستمر أفكارها الأساسية في أدوات تطوير البلوكشين المحلية الأحدث.قد يعجبك أيضاً
WhatsMiner M30S++
نطاقات Web3
مشاريع Web3
رائج
العملات المشفرة الرائجة حاليًا والتي تحظى باهتمام كبير في السوق
الأعلى حجماً
العملات المشفرة ذات أعلى حجم تداول
مضاف حديثا
العملات المشفرة المدرجة مؤخرًا والمتاحة للتداول

