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

Ganache

2026/10/13 15:38
#Advanced
Humanity
H$0.05672-2.52%
PX
PX$0.0113--%
Ethereum
ETH$2,410.08-2.41%
IO
IO$0.15803-2.73%

ما هو Ganache؟

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

ينشئ Ganache بيئة بلوكشين خاصة على جهاز المطور، ويحاكي كثيراً من السلوكيات المهمة للآلة الافتراضية لـ Ethereum، المعروفة اختصاراً باسم EVM.

يمكن للمطورين استخدام Ganache لإنشاء حسابات اختبار، ونشر عقود Solidity، وإرسال المعاملات، وفحص الكتل، وقياس استهلاك الغاز، ومراقبة التغييرات في حالة البلوكشين.

تصف وثائق Ganache الرسمية المؤرشفة البرنامج بأنه بلوكشين شخصي لتطوير التطبيقات اللامركزية بسرعة ضمن بيئة آمنة وحتمية.

حظي Ganache بشعبية لأنه أتاح للمطورين بدء الاختبار فوراً من دون تشغيل عقدة كاملة لبلوكشين عام أو الحصول على عملات مشفرة للاختبار.

كان من الممكن تأكيد المعاملات فوراً، وبدء الحسابات بأرصدة ETH محاكية كبيرة، وإعادة ضبط البلوكشين بالكامل عند الحاجة.

كان Ganache متاحاً عبر تطبيق رسومي لسطح المكتب، وواجهة سطر الأوامر، وحزمة JavaScript يمكن تضمينها في سير عمل التطوير.

Ganache ليس عملة مشفرة أو بلوكشيناً عاماً أو محفظة أو توكناً أو منصة تداول لامركزية.

إنه برنامج تطوير مصمم لمحاكاة سلوك البلوكشين على شبكة محلية خاضعة للتحكم.

هل لا يزال Ganache يخضع للصيانة؟

لم يعد Ganache يخضع للصيانة النشطة.

أعلنت Consensys في 21 سبتمبر 2023 إيقاف Ganache ومجموعة أدوات التطوير الأوسع Truffle.

ذكر الإعلان الرسمي عن إيقاف Ganache أن الشفرة ستظل متاحة للعامة بعد الفترة الانتقالية.

أُرشف مستودع الشفرة المصدرية لـ Ganache في 26 فبراير 2024، وأصبح للقراءة فقط.

قد يظل البرنامج المؤرشف قابلاً للاستخدام في بيئة تدعم اعتمادياته وقواعد Ethereum المتوقعة.

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

هذا القيد مهم لأن Ethereum تواصل تقديم تعليمات تشغيل جديدة، وتنسيقات معاملات، وقواعد للغاز، وميزات للحسابات، وتغييرات في التنفيذ.

قد يستخدم عقد Solidity حديث تعليمات لا يستطيع إصدار Ganache أقدم التعرف عليها.

وقد يتصرف عقد اجتاز جميع الاختبارات على Ganache على نحو مختلف على بلوكشين عام حالي إذا كان Ganache يحاكي قواعد بروتوكول أقدم.

لذلك ينبغي التعامل مع Ganache على أنه برنامج قديم لتطوير Ethereum، لا معياراً حديثاً لاختبار الأنظمة الإنتاجية.

كيف يعمل Ganache؟

يشغّل Ganache عملية بلوكشين معزولة يتحكم فيها المطور.

تحتفظ العملية بالحسابات والأرصدة والكتل والمعاملات وشفرات العقود الذكية والتخزين والسجلات وغيرها من بيانات حالة البلوكشين المحلية.

ويتيح البرنامج نقطة اتصال JSON-RPC متوافقة مع Ethereum، يمكن لبرامج التطوير والمحافظ وتطبيقات المتصفح وأدوات الاختبار الاتصال بها.

تشرح وثائق Ethereum JSON-RPC الواجهة القياسية التي تستخدمها التطبيقات للتواصل مع عملاء تنفيذ Ethereum.

عند إرسال معاملة إلى Ganache، يتحقق المحاكي من الطلب، وينفذ تعليمات EVM ذات الصلة، ويغيّر الحالة المحلية، ثم يعيد إيصال المعاملة.

يمكن لـ Ganache إنشاء كتلة جديدة فور استلام معاملة، أو تعدين الكتل وفق فاصل زمني محدد في الإعدادات.

ولأن المطور يتحكم في البلوكشين، فلا حاجة إلى منافسة مستخدمين آخرين على مساحة الكتل العامة.

كما يمكن للمطور إعادة تشغيل السلسلة أو تغيير إعداداتها أو استبدال حساباتها أو محو سجلها.

تجعل هذه الضوابط Ganache سريعاً ويمكن التنبؤ به، لكنها تجعله مختلفاً جوهرياً عن بلوكشين عام لامركزي.

ما البلوكشين الشخصي؟

البلوكشين الشخصي هو بيئة بلوكشين خاصة تُشغّل لأغراض التطوير أو التعليم أو الاختبار.

وعلى خلاف شبكة Ethereum الرئيسية، لا تؤمّنه مجموعة موزعة من المدققين المستقلين اقتصادياً.

يتحكم الشخص الذي يشغّل البلوكشين في حالته الأولية وحساباته وسلوك التعدين والطوابع الزمنية وإعدادات الشبكة.

يستطيع المشغّل عادةً إعادة ضبط البيئة المحلية أو إعادة كتابة بياناتها من دون الحصول على موافقة المشاركين الآخرين في الشبكة.

تتيح هذه المرونة للمطورين تكرار الاختبارات نفسها في ظروف متطابقة.

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

والأفضل وصف Ganache بأنه محاكي بلوكشين شخصي، لا بلوكشيناً إنتاجياً.

حسابات Ganache وETH المحاكي

تنشئ جلسة Ganache عادية عدة حسابات اختبار عند بدء البلوكشين المحلي.

ويُموَّل كل حساب عادةً برصيد كبير من ETH المحاكي.

يمكن استخدام هذا ETH لدفع رسوم الغاز المحاكية، ونشر العقود، ونقل القيمة، والتفاعل مع التطبيقات اللامركزية داخل Ganache.

ليس لـ ETH المستخدم في Ganache قيمة سوقية، لأنه لا يوجد إلا في قاعدة بيانات البلوكشين المحلية.

ولا يمكن نقله مباشرةً إلى شبكة Ethereum الرئيسية أو مبادلته بعملة مشفرة حقيقية عبر بروتوكول البلوكشين.

يمكن لـ Ganache اشتقاق حساباته من عبارة تذكّرية حتمية.

وقد يؤدي استخدام العبارة التذكّرية نفسها ومسار الاشتقاق والإعدادات نفسها إلى إعادة إنشاء العناوين والمفاتيح الخاصة نفسها في جلسة Ganache أخرى.

تفيد الحسابات الحتمية لأن الاختبارات الآلية تستطيع معرفة العناوين والأرصدة التي ستكون متاحة قبل بدء الاختبار.

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

يجب عدم إدخال عبارات استرداد المحافظ الحقيقية أو المفاتيح الخاصة المستخدمة في الإنتاج إلى Ganache مطلقاً.

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

الواجهة الرسومية لـ Ganache

وفرت الواجهة الرسومية لـ Ganache طريقة مرئية لإنشاء بلوكشين شخصي وفحصه.

عرضت شاشة الحسابات العناوين المحلية والأرصدة وعدد المعاملات والمفاتيح الخاصة.

وأتاحت شاشتا الكتل والمعاملات للمطورين مراجعة الأنشطة التي جرى تعدينها محلياً.

وكانت صفحات العقود تعرض العقود المنشورة والأحداث ومعلومات التخزين وتفاصيل التنفيذ عند توفر معلومات المشروع.

جعلت الواجهة Ganache في متناول المطورين الذين كانوا لا يزالون يتعلمون استخدام أدوات البلوكشين عبر سطر الأوامر.

وكان بإمكان المستخدمين إنشاء مساحات عمل بإعدادات مختلفة للحسابات والتعدين والشبكة والتفريع.

يشرح دليل البدء السريع المؤرشف لـ Ganache الخطوات التاريخية لإنشاء بلوكشين شخصي عبر تطبيق سطح المكتب.

أصبحت الواجهة الرسومية الآن برنامجاً قديماً، ولا ينبغي توقع دعمها ميزات Ethereum الحالية.

واجهة سطر الأوامر في Ganache

أتاحت واجهة سطر الأوامر في Ganache للمطورين بدء بلوكشين محلي وضبطه من الطرفية.

كان من الممكن عادةً بدء تثبيت قديم باستخدام أمر مثل

npx ganache
.

كان التشغيل عبر سطر الأوامر مفيداً للاختبارات الآلية والبرامج النصية وخوادم التطوير وبيئات التكامل المستمر.

وكان بإمكان المطورين ضبط الحسابات والأرصدة والعبارات التذكّرية ومعرّفات السلاسل وحدود الغاز وفواصل التعدين والتسجيل وقواعد البيانات ومنافذ الخادم وتفريعات الشبكة.

يوثّق مرجع خيارات Ganache CLI المؤرشف فئات الإعدادات التاريخية المتاحة لمطوري Ethereum.

كان بالإمكان أيضاً تشغيل برنامج سطر الأوامر في وضع منفصل، ليواصل البلوكشين المحلي العمل بصورة مستقلة عن الأمر الأصلي في الطرفية.

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

مساحات عمل Ganache

كانت مساحة عمل Ganache تحفظ إعدادات مشروع بلوكشين محلي معين.

وكان بإمكان مساحة العمل تحديد الحسابات والعبارة التذكّرية وإعدادات السلسلة وسلوك التعدين ومسار قاعدة البيانات ومشروع العقد الذكي المرتبط.

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

أما مساحة العمل المؤقتة فكان بإمكانها البدء بحالة نظيفة عند كل إعادة تشغيل لـ Ganache.

كانت الحالة المحلية الدائمة ملائمة أثناء التطوير، لكنها قد تؤدي أيضاً إلى اختلافات مربكة في nonce أو النشر أو الأرصدة بين مرات تشغيل الاختبارات.

غالباً ما تستفيد الاختبارات الآلية من بيئة نظيفة وحتمية بدلاً من قاعدة بيانات محلية قديمة تضم معاملات سابقة.

التعدين الفوري في Ganache

كان بإمكان Ganache تأكيد المعاملات فوراً عبر تعدين كتلة بمجرد استلام المعاملة.

أتاح التعدين الفوري تشغيل مجموعات اختبار العقود الذكية بسرعة أكبر بكثير من تشغيلها على بلوكشين عام.

وكان بإمكان المطورين نشر عقد والتفاعل معه من دون انتظار فاصل الكتل على شبكة عامة.

كما أمكن ضبط Ganache لتعدين الكتل على فواصل زمنية منتظمة.

وأتاحت أدوات التحكم اليدوي بالتعدين للاختبارات إنشاء معاملات معلقة قبل تحديد موعد إنتاج كتلة.

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

يجب ألا يفترض أي تطبيق لامركزي أن معاملة حقيقية ستُؤكد فوراً لمجرد تأكيدها فوراً في Ganache.

اللقطات والتراجع في Ganache

دعم Ganache إنشاء لقطات تسجل الحالة الحالية للبلوكشين المحلي.

كان بإمكان المطور إنشاء لقطة، وتنفيذ عدة معاملات، ثم إعادة البلوكشين لاحقاً إلى الحالة المحفوظة.

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

قللت اللقطات الحاجة إلى إعادة نشر كل عقد قبل كل اختبار على حدة.

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

كانت لقطة Ganache ميزة محلية للاختبار فقط، ولم يكن لها أي تأثير على بلوكشين عام.

لا يمكن للمستخدمين التراجع عن معاملات Ethereum الرئيسية النهائية باستخدام أمر لقطة في Ganache.

التحكم بالوقت في Ganache

أتاح Ganache للمطورين تقديم وقت البلوكشين والتحكم في الطوابع الزمنية للكتل المنتجة محلياً.

كانت هذه الميزة مفيدة لاختبار استحقاق التوكنات وجداول Staking وفترات الحوكمة والمزادات والمواعيد النهائية للقروض وأنظمة الاشتراك والعقود المقفلة زمنياً.

وكان بإمكان المطور محاكاة مرور عدة أشهر من دون انتظار مرور الوقت فعلياً.

كما أمكن للاختبارات فحص السلوك مباشرةً قبل موعد الانتهاء وبعده.

تُنتج الطوابع الزمنية على Ethereum العامة وفق قواعد الشبكة، ولا يتحكم فيها مطور التطبيق.

لذلك ينبغي اختبار العقود مع تغيرات واقعية في الطوابع الزمنية، لا باستخدام قيم محلية يمكن التنبؤ بها تماماً فقط.

تفريع الشبكة في Ganache

كان بإمكان Ganache إنشاء نسخة محلية متفرعة من شبكة عامة متوافقة مع Ethereum.

يبدأ التفريع من الحسابات والأرصدة وشفرات العقود والتخزين المتاحة عند كتلة بعيدة محددة.

بعد نقطة البداية، تُنفذ المعاملات الجديدة محلياً ولا تغيّر البلوكشين العام الأصلي.

أتاح التفريع للمطورين اختبار التفاعلات مع التوكنات الحالية أو بروتوكولات التمويل اللامركزي أو أنظمة العقود المنشورة.

كما أمكن أن يساعد في إعادة إنتاج خطأ تاريخي في ظروف بلوكشين مماثلة لتلك السائدة عند وقوع المشكلة.

كان استرجاع حالة البلوكشين المنسوخة يتطلب عادةً نقطة اتصال JSON-RPC بعيدة.

وكان بإمكان Ganache طلب معلومات إضافية من تلك العقدة البعيدة عندما تصل معاملة منفذة محلياً إلى حالة لم تُنزّل بعد.

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

قد يعجز إصدار Ganache مؤرشف عن تفريع شبكة حالية على نحو صحيح عند مواجهة كتل أو معاملات أو تعليمات تشغيل أو تغييرات بروتوكول غير مدعومة.

انتحال الحسابات في تفريع Ganache

كان بإمكان Ganache فتح عناوين بلوكشين محددة محلياً أو انتحالها في بيئة متفرعة.

أتاح ذلك للاختبار إرسال معاملة كما لو أنها صادرة عن حامل توكن محدد أو مسؤول أو مشارك في الحوكمة أو حساب عقد.

لم يكشف الانتحال عن المفتاح الخاص الحقيقي للعنوان.

كما لم يمنح السيطرة على العنوان في الشبكة العامة الأصلية.

لم تعمل هذه الميزة إلا لأن المطور يتحكم في المحاكي المحلي ويمكنه تغيير قواعد التفويض فيه.

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

Ganache ونشر العقود الذكية

كان بإمكان المطورين نشر عقود Solidity المترجمة على Ganache بإرسال معاملات إنشاء العقود إلى نقطة اتصال JSON-RPC المحلية.

تحتوي المعاملة على شفرة الإنشاء البرمجية وأي معلمات منشئ مشفرة.

نفّذ Ganache المنشئ وخزّن شفرة التشغيل الناتجة في عنوان عقد محلي.

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

لا يعني نجاح النشر على Ganache نشر العقد على شبكة Ethereum الرئيسية أو شبكة اختبار عامة.

لكل بلوكشين حالة عقود وسجل معاملات مستقلان.

يتطلب الانتقال من الاختبار المحلي إلى شبكة عامة معاملة نشر منفصلة ورسوم شبكة.

اختبار توكنات العملات المشفرة باستخدام Ganache

أتاح Ganache للمطورين إنشاء توكنات محلية قابلة للاستبدال واختبارها، إلى جانب NFTs وتوكنات الحوكمة وأنظمة القيمة المستقرة وعقود Staking وتطبيقات كريبتو أخرى.

وكان بإمكان المطور اختبار التحويلات والأرصدة والتفويضات والموافقات والسك والحرق والملكية وضوابط الوصول وسجلات الأحداث.

كان بإمكان الحسابات المحلية تلقي توكنات محاكية من دون أي تكلفة مالية.

وكان بإمكان المحفظة المتصلة بـ Ganache عرض توكن محلي بعد إضافة عنوان العقد المحلي الصحيح.

لا يوجد التوكن إلا على بلوكشين Ganache المحدد.

قد تؤدي إعادة ضبط البلوكشين إلى إزالة التوكن وأرصدته وسجل معاملاته بالكامل.

يظل أي توكن محلي يستخدم اسم عملة مشفرة حقيقية أو رمزها مجرد محاكاة.

يُعد البلوكشين وعنوان العقد معرّفين للتوكن أكثر موثوقية من الاسم أو الرمز المعروض.

رسوم الغاز في Ganache

حاكى Ganache الغاز في EVM ليتمكن المطورون من الاطلاع على تكلفة تنفيذ عمليات نشر العقود واستدعاء وظائفها.

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

تُدفع الرسوم المحاكية من رصيد ETH المحلي لحساب الاختبار.

لا يُستهلك أي ETH حقيقي عند تنفيذ معاملة محلية عادية في Ganache.

كان بإمكان المطورين ضبط أسعار الغاز وحدود الغاز للكتل وحدود المعاملات وغيرها من إعدادات الرسوم.

كانت هذه المرونة مفيدة لاختبار حالات نفاد الغاز والوظائف المكلفة في العقود.

لكن قياسات الغاز في Ganache قد لا تمثل Ethereum الحالية بدقة إذا كان المحاكي يستخدم EVM أقدم أو جدول غاز قديماً.

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

Ganache والاختبارات الحتمية

يعني الاختبار الحتمي أن الظروف الأولية ومدخلات المعاملات نفسها ينبغي أن تنتج النتائج المتوقعة نفسها.

دعم Ganache الحسابات والأرصدة وإنتاج الكتل ومعرّفات السلاسل وتسلسلات النشر الحتمية.

كان بإمكان مجموعة الاختبارات بدء Ganache بعبارة تذكّرية معروفة، ونشر العقود بترتيب ثابت، والتنبؤ بالعناوين المحلية الناتجة.

ثم أمكن إعادة ضبط البلوكشين قبل تشغيل الاختبارات في المرة التالية.

ساعدت هذه القدرة على التنبؤ المطورين في تحديد ما إذا كان تغيير الشفرة قد غيّر سلوك العقد.

البلوكشينات العامة الحقيقية أقل قابلية للتنبؤ، لأن المستخدمين الآخرين يستطيعون تغيير حالة العقود المشتركة وترتيب المعاملات والطلب على الغاز والسيولة والطوابع الزمنية.

لذلك ينبغي الجمع بين الاختبارات المحلية الحتمية واختبارات تكامل واختبارات عدائية أوسع نطاقاً.

Ganache مقارنةً بشبكة Ethereum الرئيسية

شبكة Ethereum الرئيسية بلوكشين عام لامركزي، وقد تكون لـ ETH والتوكنات والعقود الذكية عليه قيمة مالية حقيقية.

أما Ganache فهو محاكاة محلية خاضعة للتحكم، يمكن لمشغّلها تغيير الأرصدة وتوقيت الكتل والحسابات والسجل.

تتنافس معاملات الشبكة الرئيسية على مساحة محدودة في الكتل، وتُدفع رسومها وفق ظروف الشبكة الحالية.

يمكن لـ Ganache استخدام التعدين الفوري وإعدادات رسوم قابلة للضبط.

تضم الشبكة الرئيسية أنشطة غير متوقعة من المستخدمين والتطبيقات حول العالم.

ولا تضم سلسلة Ganache جديدة سوى الحسابات والعقود والمعاملات التي يضيفها المطور.

يعتمد أمان الشبكة الرئيسية على بروتوكول Ethereum الأوسع وشبكة المدققين.

أما أمان Ganache فيعتمد على الكمبيوتر المحلي والإعدادات التي يتحكم فيها مشغّل واحد.

اجتياز اختبارات Ganache لا يثبت أن العقد آمن أو متوافق مع سلوك الشبكة الرئيسية الحالي.

Ganache مقارنةً بشبكة اختبار عامة

شبكة الاختبار العامة بلوكشين تطوير مشترك يشغّله مشاركون كثيرون.

يشرح دليل شبكات تطوير Ethereum الاختلافات بين البيئات المحلية وشبكات الاختبار العامة المشتركة.

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

يوفر Ganache تنفيذاً أسرع وأرصدة محلية مجانية وتحكماً كاملاً وإعادة ضبط فورية للحالة.

عادةً ما يكون الاختبار المحلي أنسب لاختبارات الوحدات السريعة، بينما قد توفر شبكة اختبار عامة خاضعة للصيانة اختبارات تكامل أقوى.

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

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

Ganache مقارنةً بشبكة Ethereum خاصة

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

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

يمكن لشبكة خاصة متعددة العقد اختبار اتصالات الند للند وانتشار الكتل والمزامنة وسلوك الإجماع وتعطل العقد.

ركز Ganache بدرجة أكبر على تطوير التطبيقات بسرعة، والحسابات القابلة للتنبؤ، والوصول المحلي عبر RPC، وأدوات الاختبار الملائمة.

تشرح وثائق الشبكات الخاصة في Geth أن شبكات Ethereum الخاصة يمكن أن تدعم سيناريوهات اختبار متعددة العقد والمستخدمين.

لذلك قد يتطلب اختبار البروتوكولات المتقدم شبكة متعددة العملاء بدلاً من عملية Ganache واحدة.

قيود Ganache

لم يحاك Ganache البيئة الاقتصادية والشبكية وبيئة الإجماع والأنشطة العدائية الكاملة لشبكة Ethereum الرئيسية.

قد يخفي التأكيد الفوري مشكلات تتعلق بالمعاملات المعلقة أو تغير الرسوم الأساسية أو تعارض nonce أو قواعد الاستبدال.

وقد يخفي الترتيب المتوقع للمعاملات مخاطر الاستباق واللحاق والتنافس على التصفية وغيرها من مخاطر الترتيب.

قد تخفي أموال الاختبار غير المحدودة مشكلات تمويل الحسابات وضم المستخدمين.

لا تحتوي الشبكة المحلية تلقائياً على أوراكل حقيقية أو جسور أو مجمعات سيولة أو توكنات أو أنظمة حوكمة أو عقود خارجية أخرى.

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

وتضيف حالة Ganache المؤرشفة خطراً آخر، إذ قد لا يدعم البرنامج مخرجات المترجمات الحالية أو سلوك Ethereum.

ينبغي أن تشمل عملية الاختبار الكاملة أدوات محلية خاضعة للصيانة واختباراً على شبكة مشتركة وتحليلاً أمنياً واختبارات عشوائية ومراجعة لإعدادات النشر.

مخاطر Ganache الأمنية

حسابات Ganache غير مصممة لحماية العملات المشفرة ذات القيمة.

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

قد يتيح خادم RPC في Ganache وظائف تطوير قوية يجب ألا تكون متاحة مطلقاً لمستخدمين غير موثوق بهم عبر الإنترنت.

قد يؤدي ربط خادم تطوير محلي بواجهة شبكة عامة إلى تعريض أمني لا داعي له.

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

قد تتضمن البرامج النصية المكتوبة لـ Ganache اختصارات يصبح استخدامها خطيراً إذا أُعيد استخدامها مع مفاتيح الإنتاج.

ينبغي الفصل التام بين بيانات اعتماد التطوير والإنتاج.

لا يحتاج أي موقع أو بيئة اختبار أو ممثل دعم إلى عبارة استرداد حقيقية لإنشاء بلوكشين محلي في Ganache.

أخطاء Ganache الشائعة

قد يحدث خطأ في الاتصال عند استخدام التطبيق عنوان RPC أو منفذه أو بروتوكوله على نحو غير صحيح.

قد يحدث خطأ في معرّف السلسلة إذا ضُبطت المحفظة على شبكة محلية مختلفة.

قد يظهر خطأ nonce عندما تحتفظ المحفظة ببيانات معاملات من جلسة Ganache سابقة أُعيد ضبطها منذ ذلك الحين.

قد يحدث خطأ نقص الأموال إذا لم يكن العنوان المحدد من الحسابات المحلية الممولة.

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

قد يشير خطأ تعليمات التشغيل غير المدعومة إلى أن العقد صُرّف لإصدار EVM أحدث مما يدعمه Ganache.

قد ينتج خطأ التفريع عن عدم توفر نقطة اتصال RPC بعيدة أو عدم توافق بيانات الكتل أو قيود معدل الطلبات أو سلوك بروتوكول غير مدعوم.

قد ينتج ظهور عنوان عقد غير متوقع عن اختلاف الناشر أو nonce أو العبارة التذكّرية أو ترتيب النشر.

هل لا يزال بالإمكان استخدام Ganache؟

لا يزال بالإمكان استخدام Ganache إذا أمكن تثبيت إصدار مؤرشف منه وتشغيله بصورة صحيحة في بيئة المطور.

وقد يظل مفيداً لإعادة إنتاج نتائج اختبارات مشروع قديم أو لفهم سير عمل تطوير Ethereum التاريخي.

يمكن لمشروع قديم تثبيت إصدار محدد من حزمة Ganache وبيئة التشغيل والمترجم والاعتماديات للحفاظ على قابلية إعادة إنتاج النتائج.

لكن استمرار تشغيل البرنامج لا يعني أنه حديث أو آمن أو متوافق مع Ethereum الحديثة.

ينبغي للفرق التي تصون تطبيقات ذات قيمة مقارنة نتائج كل مجموعة اختبارات قديمة بنتائج تنفيذ EVM يخضع للصيانة النشطة.

ولا ينبغي للتطوير الجديد أن ينشئ اعتماداً إضافياً طويل الأمد على محاكي غير مدعوم.

الانتقال من Ganache

ينبغي أن يبدأ الانتقال بتسجيل إعدادات Ganache الدقيقة التي يستخدمها المشروع.

تشمل الإعدادات المهمة العبارة التذكّرية وعدد الحسابات وأرصدتها ومعرّف السلسلة ومعرّف الشبكة ومنفذ RPC ووضع التعدين وحدود الغاز والطوابع الزمنية ومسار قاعدة البيانات وإعدادات التفريع.

ينبغي للفريق تحديد الاختبارات التي تستخدم طرق RPC خاصة بـ Ganache للقطات أو تغيير الوقت أو التعدين أو تغيير الأرصدة أو انتحال الحسابات.

ويجب ضبط ميزات مكافئة في البيئة المحلية البديلة.

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

ينبغي إنشاء لقطات جديدة للغاز بدلاً من نسخ نتائج Ganache.

وينبغي إعادة اختبارات التفريع باستخدام عقدة حديثة وإصدار EVM متوافق مع شبكة النشر المستهدفة.

يجب أن يحافظ الانتقال النهائي على السلوك الوظيفي مع تحسين دعم قواعد بروتوكول Ethereum الحالية.

تطوير Ethereum محلياً في الوقت الحالي

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

تعرض وثائق شبكات تطوير Ethereum الرسمية خيارات الاختبار المحلي الحالية.

ويمكن للمطورين الذين يحتاجون إلى سلوك أقرب إلى عميل تنفيذ فعلي إنشاء سلسلة تطوير باستخدام Geth.

يشرح دليل وضع المطور في Geth كيفية بدء شبكة Ethereum محلية ونشر عقد عليها.

يمكن للفرق المتقدمة استخدام شبكات اختبار متعددة العملاء قابلة للضبط لاختبار الشبكات والإجماع والتوافق بين العملاء.

تعتمد البيئة الأنسب على لغة البرمجة والمترجم وهدف EVM وإطار الاختبار ومتطلبات التفريع وشبكة النشر.

هل لدى Ganache توكن؟

ليس لدى Ganache عملة مشفرة رسمية أو توكن متداول في السوق.

إن ETH المحاكي المستخدم داخل Ganache مجرد بيانات تطوير محلية.

لا ينبغي افتراض وجود أي صلة بين توكن يستخدم اسم Ganache وبرنامج التطوير المؤرشف.

يمكن لأي شخص إنشاء توكن وإطلاق اسم برنامج أو شركة معروف عليه.

ينبغي للمستخدمين التحقق من هوية العملات المشفرة باستخدام البلوكشين وعنوان العقد الدقيق، لا الاسم أو الشعار وحدهما.

الادعاء بإمكانية شراء ETH الاختباري في Ganache أو سحبه أو تحويله إلى ETH حقيقي علامة تحذيرية على احتمال وجود عملية احتيال.

الأسئلة الشائعة

ما Ganache باختصار؟

Ganache محاكي بلوكشين محلي لـ Ethereum يُستخدم لاختبار العقود الذكية والتطبيقات اللامركزية من دون إنفاق عملات مشفرة حقيقية.

هل لا يزال Ganache يخضع للصيانة؟

لا، أُوقف Ganache في 2023 وأُرشف مستودع شفرته المصدرية العام في 2024.

هل لا يزال بالإمكان تثبيت Ganache؟

قد يظل بالإمكان تثبيت الحزم المؤرشفة في بيئات متوافقة، لكنها برامج قديمة غير مدعومة.

هل Ganache بلوكشين حقيقي للعملات المشفرة؟

يحتفظ Ganache بكتل ومعاملات وحسابات وعقود محلية، لكنه ليس شبكة عملات مشفرة عامة لامركزية.

هل يستخدم Ganache ETH حقيقياً؟

لا، تستخدم حسابات Ganache ETH محاكياً لا قيمة له إلا داخل بلوكشين التطوير المحلي.

هل يمكن إرسال ETH الخاص بـ Ganache إلى شبكة Ethereum الرئيسية؟

لا، فأرصدة Ganache المحلية غير موجودة على شبكة Ethereum الرئيسية ولا يمكن سحبها إليها.

هل لدى Ganache توكن رسمي؟

لا، Ganache برنامج تطوير وليس لديه عملة مشفرة رسمية متداولة في السوق.

هل يمكن للمحفظة الاتصال بـ Ganache؟

نعم، يمكن لمحفظة متوافقة مع Ethereum الاتصال باستخدام نقطة RPC الخاصة بـ Ganache وإعدادات السلسلة المحلية الصحيحة.

هل يمكن لـ Ganache نشر عقود Solidity الذكية؟

نعم، يمكن نشر عقود Solidity المترجمة وتنفيذها على EVM المحلية في Ganache.

هل يمكن لـ Ganache اختبار التوكنات وNFTs؟

نعم، يمكن للمطورين نشر التوكنات المحلية واختبار التحويلات والموافقات والسك والحرق والملكية ومنطق الأذونات.

ما Ganache CLI؟

Ganache CLI هو إصدار محاكي البلوكشين المحلي الذي يعمل عبر سطر الأوامر.

ما الواجهة الرسومية لـ Ganache؟

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

ما مساحة عمل Ganache؟

مساحة العمل إعداد محفوظ في Ganache يتضمن إعدادات البلوكشين المحلي والحسابات والتعدين والمشروع.

ما لقطة Ganache؟

تسجل اللقطة حالة البلوكشين المحلي كي تتمكن الاختبارات لاحقاً من الرجوع إلى نقطة البداية نفسها.

هل يمكن لـ Ganache تغيير وقت البلوكشين؟

نعم، تتيح أدوات التطوير في Ganache تقديم الوقت وتعديل الطوابع الزمنية للكتل المحلية لأغراض الاختبار.

ما تفريع Ganache؟

ينشئ تفريع Ganache بلوكشيناً محلياً استناداً إلى بيانات الحسابات والعقود المنسوخة من كتلة محددة على شبكة عامة.

هل تؤثر معاملات تفريع Ganache في الشبكة العامة؟

لا، تظل المعاملات التي تُجرى بعد التفريع داخل المحاكي المحلي.

هل يمكن لـ Ganache انتحال عنوان عام؟

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

هل يحسب Ganache الغاز؟

نعم، يحاكي Ganache استهلاك الغاز ورسومه وفق قواعد EVM التي ينفذها إصداره المؤرشف.

هل تقديرات الغاز في Ganache دقيقة بالنسبة إلى Ethereum الحالية؟

ليس بالضرورة، لأن البرنامج قد لا يدعم ترقيات Ethereum الحديثة ومخرجات المترجمات الجديدة.

لماذا يعرض Ganache رسالة تعليمات تشغيل غير مدعومة؟

قد يستهدف العقد إصدار EVM يتضمن تعليمة لا ينفذها إصدار Ganache المثبت.

هل Ganache هو نفسه شبكة Ethereum الرئيسية؟

لا، فالشبكة الرئيسية عامة ولامركزية وتضم أصولاً حقيقية، بينما يتحكم مطور محلي في Ganache.

هل Ganache هو نفسه شبكة اختبار عامة؟

لا، شبكة الاختبار العامة مشتركة بين مشاركين كثيرين، بينما تعمل سلسلة Ganache العادية بصورة خاصة على نظام تطوير واحد.

هل يمكن استخدام Ganache من دون اتصال بالإنترنت؟

يمكن تشغيل بلوكشين Ganache محلي أساسي دون اتصال، بينما يتطلب تفريع الشبكة الوصول إلى عقدة بعيدة.

هل Ganache آمن للاستخدام الإنتاجي؟

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

هل ينبغي استيراد عبارة استرداد حقيقية إلى Ganache؟

لا، يجب عدم استخدام عبارات الاسترداد الحقيقية أو المفاتيح الخاصة الإنتاجية مطلقاً في محاكي تطوير محلي.

هل يمكن للمشاريع القديمة مواصلة استخدام Ganache؟

يمكنها الاحتفاظ بإصدار محدد لاختبارات تاريخية، لكن يُنصح بالانتقال إلى بيئة خاضعة للصيانة.

لماذا ينبغي للمطورين الانتقال من Ganache؟

يوفر الانتقال دعماً للبروتوكولات الحالية وصيانة للاعتماديات وإصلاحات أمنية وتوافقاً مع مخرجات Solidity الحديثة.

هل يثبت اجتياز اختبارات Ganache أن العقد آمن؟

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

الخلاصة

Ganache محاكي بلوكشين محلي ذو أهمية تاريخية، ساعد مطوري Ethereum على إنشاء العقود الذكية واختبارها بسرعة.

وفّر حسابات ممولة ومفاتيح حتمية وتعديناً فورياً ولقطات وأدوات للتحكم بالوقت وحساباً محلياً للغاز وتفريعاً للشبكات وانتحالاً للحسابات.

لا يوجد ETH والتوكنات المحاكية إلا داخل البلوكشين المحلي، وليس لها قيمة سوقية حقيقية.

يختلف Ganache عن شبكة Ethereum الرئيسية لأن مطوراً واحداً يتحكم في الحسابات وإنتاج الكتل والسجل وظروف الشبكة.

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

أُوقف Ganache رسمياً في 2023، وأصبح مستودع شفرته للقراءة فقط في 2024.

قد تظل الإصدارات المؤرشفة مفيدة لصيانة المشاريع القديمة، لكن لا ينبغي توقع دعمها ترقيات Ethereum الحالية أو سلوك المترجمات الحديثة.

يجب ألا يستخدم المطورون مفاتيح خاصة حقيقية، أو يكشفوا خادم RPC الخاص بـ Ganache للعامة، أو يعتبروا نجاح الاختبار المحلي دليلاً على أمان الإنتاج.

ينبغي للمشاريع التي تنتقل من Ganache الحفاظ على إعدادات الحسابات والسلسلة والتعدين واللقطات والطوابع الزمنية وRPC والغاز والتفريع ضمن بيئة بديلة خاضعة للصيانة.

من الأفضل فهم Ganache على أنه بنية تحتية قديمة لتطوير Ethereum، لا تزال مفاهيم الاختبار التي قدمها تؤثر في أدوات البلوكشين المحلية الحديثة.
BTC ETFs See $679M in Outflows
BTC ETFs See $679M in OutflowsBTC ETFs See $679M in Outflows
Citi sees BTC at $113K. What do institutions see?