Zaino المفهرس
Zaino هو مفهرس Rust لسلسلة كتل Zcash. يقرأ بيانات السلسلة من عقدة كاملة Zebra ويقدّم البيانات التي تحتاجها المحافظ والمستكشفات والحنفيات والخدمات الأخرى، من دون جعل Zebra نفسه مسؤولًا عن كل فهرس موجّه للعملاء.
الخلاصة
- Zebra يتحقق من سلسلة Zcash.
- Zaino يفهرس بيانات سلسلة Zebra ويعرض واجهات API موجّهة للعملاء.
- Zallet هو مكوّن المحفظة في حزمة Z3. في إعداد Z3 الافتراضي، يتواصل Zallet مع Zebra مباشرةً ولا يتطلب خدمة Zaino المستقلة.
- تكون خدمة Zaino المستقلة مفيدة عندما يحتاج المشغّلون إلى نقطة نهاية gRPC متوافقة مع lightwalletd، أو وكيل JSON-RPC، أو بنية تحتية للمحافظ الخفيفة والمستكشفات والحنفيات والخدمات المشابهة.
- Zaino بنية تحتية نشطة، لكن ينبغي للمشغّلين مراجعة وثائق Zaino الرسمية ووثائق Z3 للاطلاع على تفاصيل النشر الحالية قبل تشغيله في بيئة الإنتاج.
ما الذي يفعله Zaino
يقع Zaino بين Zebra وبرامج العملاء. Zebra هو عقدة الإجماع: إذ ينزّل سلسلة كتل Zcash ويتحقق منها ويتابعها. يستخدم Zaino Zebra مصدرًا لبيانات السلسلة، ثم يُعِدّ عروضًا مفهرسة يمكن لتطبيقات العملاء الاستعلام عنها بكفاءة.
يحافظ هذا الفصل على وضوح الأدوار:
| المكوّن | الدور |
|---|
| Zebra | عقدة كاملة ومدقّق |
| Zaino | مفهرس وخدمة API موجّهة للعملاء |
| Zallet | خدمة محفظة |
| lightwalletd | خادم محافظ خفيفة أقدم صُمّم Zaino لاستبداله أو استكماله |
يوفّر Zaino وظائف للعملاء الخفيفين والعملاء الكاملين أو المحافظ ومستكشفات الكتل. ويتيح الوصول إلى السلسلة النهائية، وأفضل سلسلة غير نهائية، وبيانات mempool التي يحتفظ بها Zebra.
كيف يندمج في حزمة Zcash الحالية
تُبنى حزمة Z3 الحالية حول Zebra وZallet وZaino الاختياري.
في نشر Z3 الافتراضي، يعمل Zebra وZallet معًا. يصل Zallet إلى Zebra مباشرةً، لذلك لا يحتاج المشغّل الذي يدير حزمة محافظ محلية فقط إلى بدء خدمة Zaino المستقلة.
يُضاف Zaino عندما يرغب المشغّل في خدمة عملاء خارجيين. في Z3، يعمل خلف ملف Compose الخاص بـ indexer ويضيف:
- نقطة نهاية gRPC متوافقة مع lightwalletd لعملاء المحافظ الخفيفة
- وكيل JSON-RPC للمستكشفات والحنفيات والواجهات الخلفية للخدمات
- قاعدة بيانات مفهرس منفصلة عن حالة سلسلة Zebra
يجعل ذلك Zaino ذا صلة خاصة بالواجهات الخلفية للمحافظ، ومشغّلي البنية التحتية العامة، والمستكشفات، والحنفيات، والمطورين الذين يختبرون خدمات تحتاج إلى بيانات سلسلة Zcash المفهرسة.
Zaino وlightwalletd
lightwalletd هو خادم المحافظ الخفيفة الأصلي. Zaino هو مسار الخلف المبني بلغة Rust لهذا الدور. وهدفه تقديم واجهات API متوافقة حيثما أمكن، كي تتمكن المحافظ والخدمات من الانتقال من دون إعادة كتابتها بالكامل دفعة واحدة.
لا يعني ذلك أن كل عمليات نشر lightwalletd قد انتقلت بالفعل إلى Zaino. ينبغي للمشغّلين التعامل مع Zaino بوصفه جزءًا من الحزمة الحالية المعتمدة على Zebra، ومراجعة أحدث وثائق المشروع والإصدارات ولوحات معلومات الخدمة قبل اختيار ما سيشغّلونه.
ملاحظات للمشغّلين
أسهل مسار نشر موثوق هو مستودع Z3. يتضمن Z3 Zaino كخدمة اختيارية:
Code-highlight
docker compose --env-file .env.<network> --profile indexer up -d
شغّل إعداد Z3 المعتاد أولًا وانتظر حتى تتزامن Zebra قبل بدء الخدمات التابعة على mainnet أو testnet.
يعرض Zaino نوعين من خدمات الشبكة. خدمة gRPC هي واجهة API الموجّهة للمحافظ الخفيفة. أما خدمة JSON-RPC فمخصصة للشبكة المحلية أو الشبكات الخاصة الموثوقة، ما لم توفّر طبقة خارجية حماية. لا تعرّض نقطة نهاية JSON-RPC غير موثقة أو غير مشفرة للإنترنت العام.
بعض المخططات التي توضّح كيفية عمل Zaino
البنية الداخلية لـ Zaino

بنية الخدمة الحية لـ Zaino

بنية النظام لـ Zaino

أخطاء شائعة
التعامل مع Zaino بوصفه عقدة كاملة. Zaino ليس المدقّق. يتحقق Zebra من السلسلة؛ ويفهرس Zaino البيانات من Zebra.
افتراض أن كل نشر لـ Z3 يحتاج إلى Zaino مستقل. يستطيع Zallet الوصول إلى Zebra مباشرةً في حزمة Z3 الافتراضية. ابدأ Zaino عندما تحتاج إلى خدمة المفهرس المستقلة للعملاء الخارجيين.
عرض الميزات المخطط لها على أنها منشورة بالفعل. يجري تطوير Zaino بنشاط، لذا راجع ملاحظات الإصدار والوثائق الحالية قبل وصف ميزة بأنها متاحة.
تعريض JSON-RPC بإهمال. واجهة JSON-RPC الخاصة بـ Zaino مخصصة للشبكة المحلية أو الشبكات الخاصة الموثوقة، ما لم تكن محمية بطبقة أخرى.
أين يمكنني معرفة المزيد؟
آخر تحديث: أغسطس 2026