Ευρετητής Zaino
Το Zaino είναι ένας ευρετητής Rust για το blockchain Zcash. Διαβάζει δεδομένα της αλυσίδας από έναν πλήρη κόμβο Zebra και παρέχει τα δεδομένα που χρειάζονται τα πορτοφόλια, οι explorers, τα faucets και άλλες υπηρεσίες, χωρίς να καθιστά το ίδιο το Zebra υπεύθυνο για κάθε ευρετήριο που απευθύνεται σε clients.
Με λίγα λόγια
- Το Zebra επικυρώνει την αλυσίδα Zcash.
- Το Zaino ευρετηριάζει τα δεδομένα αλυσίδας του Zebra και εκθέτει APIs που απευθύνονται σε clients.
- Το Zallet είναι το στοιχείο πορτοφολιού στη στοίβα Z3. Στην προεπιλεγμένη διαμόρφωση Z3, το Zallet επικοινωνεί απευθείας με το Zebra και δεν απαιτεί την αυτόνομη υπηρεσία Zaino.
- Η αυτόνομη υπηρεσία Zaino είναι χρήσιμη όταν οι διαχειριστές χρειάζονται ένα gRPC endpoint συμβατό με lightwalletd, ένα JSON-RPC proxy ή υποδομή για light wallets, explorers, faucets και παρόμοιες υπηρεσίες.
- Το Zaino είναι ενεργή υποδομή, αλλά οι διαχειριστές θα πρέπει να ελέγχουν την επίσημη τεκμηρίωση του Zaino και του Z3 για τις τρέχουσες λεπτομέρειες ανάπτυξης πριν το εκτελέσουν σε παραγωγή.
Τι κάνει το Zaino
Το Zaino βρίσκεται μεταξύ του Zebra και του λογισμικού client. Το Zebra είναι ο κόμβος συναίνεσης: κατεβάζει, επαληθεύει και ακολουθεί το blockchain Zcash. Το Zaino χρησιμοποιεί το Zebra ως πηγή δεδομένων αλυσίδας και στη συνέχεια προετοιμάζει ευρετηριασμένες προβολές, τις οποίες μπορούν να υποβάλλουν αποτελεσματικά σε ερωτήματα οι εφαρμογές client.
Αυτός ο διαχωρισμός διατηρεί τους ρόλους σαφείς:
| Στοιχείο | Ρόλος |
|---|
| Zebra | Πλήρης κόμβος και επικυρωτής |
| Zaino | Ευρετητής και υπηρεσία API που απευθύνεται σε clients |
| Zallet | Υπηρεσία πορτοφολιού |
| lightwalletd | Παλαιότερος server light wallet, τον οποίο το Zaino έχει σχεδιαστεί να αντικαταστήσει ή να συμπληρώσει |
Το Zaino παρέχει λειτουργικότητα για light clients, πλήρεις clients ή πορτοφόλια και block explorers. Παρέχει πρόσβαση στην οριστικοποιημένη αλυσίδα, στην καλύτερη μη οριστικοποιημένη αλυσίδα και στα δεδομένα mempool που διατηρεί το Zebra.
Πώς εντάσσεται στην τρέχουσα στοίβα Zcash
Η τρέχουσα στοίβα Z3 βασίζεται στα Zebra, Zallet και προαιρετικό Zaino.
Στην προεπιλεγμένη ανάπτυξη Z3, τα Zebra και Zallet εκτελούνται μαζί. Το Zallet φτάνει απευθείας στο Zebra, επομένως ένας διαχειριστής που εκτελεί μόνο μια τοπική στοίβα πορτοφολιού δεν χρειάζεται να ξεκινήσει την αυτόνομη υπηρεσία Zaino.
Το Zaino προστίθεται όταν ο διαχειριστής θέλει να εξυπηρετεί εξωτερικούς clients. Στο Z3, εκτελείται πίσω από το Compose profile indexer και προσθέτει:
- ένα gRPC endpoint συμβατό με lightwalletd για clients light wallet
- ένα JSON-RPC proxy για explorers, faucets και backends υπηρεσιών
- μια βάση δεδομένων ευρετητή, ξεχωριστή από την κατάσταση αλυσίδας του Zebra
Αυτό καθιστά το Zaino ιδιαίτερα σχετικό για backends πορτοφολιών, διαχειριστές δημόσιας υποδομής, explorers, faucets και προγραμματιστές που δοκιμάζουν υπηρεσίες οι οποίες χρειάζονται ευρετηριασμένα δεδομένα αλυσίδας Zcash.
Zaino και lightwalletd
Το lightwalletd είναι ο αρχικός server light wallet. Το Zaino είναι η διαδρομή διαδόχου που βασίζεται στο Rust για αυτόν τον ρόλο. Στόχος του είναι να παρέχει συμβατά APIs όπου είναι δυνατόν, ώστε πορτοφόλια και υπηρεσίες να μπορούν να μεταβούν χωρίς να ξαναγραφούν πλήρως μονομιάς.
Αυτό δεν σημαίνει ότι κάθε ανάπτυξη 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 για light wallet. Η υπηρεσία JSON-RPC προορίζεται για loopback ή αξιόπιστα ιδιωτικά δίκτυα, εκτός αν ένα εξωτερικό επίπεδο παρέχει προστασία. Μην εκθέτεις στο δημόσιο διαδίκτυο ένα JSON-RPC endpoint χωρίς πιστοποίηση ή κρυπτογράφηση.
Μερικά διαγράμματα που δείχνουν πώς λειτουργεί το Zaino
Εσωτερική αρχιτεκτονική Zaino

Αρχιτεκτονική ζωντανής υπηρεσίας Zaino

Αρχιτεκτονική συστήματος Zaino

Συνηθισμένα λάθη
Αντιμετώπιση του Zaino ως πλήρους κόμβου. Το Zaino δεν είναι ο επικυρωτής. Το Zebra επικυρώνει την αλυσίδα· το Zaino ευρετηριάζει δεδομένα από το Zebra.
Υπόθεση ότι κάθε ανάπτυξη Z3 χρειάζεται αυτόνομο Zaino. Το Zallet μπορεί να φτάσει απευθείας στο Zebra στην προεπιλεγμένη στοίβα Z3. Ξεκίνα το Zaino όταν χρειάζεσαι την αυτόνομη υπηρεσία ευρετητή για εξωτερικούς clients.
Παρουσίαση προγραμματισμένων δυνατοτήτων ως ήδη ανεπτυγμένων. Το Zaino αναπτύσσεται ενεργά, επομένως έλεγξε τις τρέχουσες σημειώσεις έκδοσης και την τεκμηρίωση πριν περιγράψεις μια δυνατότητα ως διαθέσιμη.
Απρόσεκτη έκθεση του JSON-RPC. Η διεπαφή JSON-RPC του Zaino προορίζεται για loopback ή αξιόπιστα ιδιωτικά δίκτυα, εκτός αν προστατεύεται από άλλο επίπεδο.
Πού μπορώ να μάθω περισσότερα;
Τελευταία ενημέρωση: Αύγουστος 2026