Εκτέλεσε έναν πλήρη κόμβο σε Raspberry Pi 4 (Zebra + Zallet)
Μεταφέρθηκε από τον αρχικό οδηγό που βασιζόταν στο zcashd. Το zcashd έφτασε στην αυτόματη διακοπή της Υποστήριξης Τέλους Ζωής στις 18 Ιουλίου 2026, επομένως αυτός ο οδηγός χρησιμοποιεί πλέον το Zebra (τον τρέχοντα πλήρη κόμβο, που συντηρείται από το Zcash Foundation) και το Zallet (το πορτοφόλι που δημιουργήθηκε για να αντικαταστήσει το ενσωματωμένο πορτοφόλι του zcashd).
Τι θα μάθεις
- Πώς να εγγράψεις και να ρυθμίσεις το Ubuntu Server 22.04+ (64-bit) σε Raspberry Pi 4 για χρήση χωρίς οθόνη
- Πώς να εγκαταστήσεις και να εκτελέσεις το Zebra, είτε μέσω του Docker είτε με ένα προδημιουργημένο δυαδικό αρχείο
- Πώς να εγκαταστήσεις, να ρυθμίσεις και να αρχικοποιήσεις το Zallet, συμπεριλαμβανομένης της ρύθμισης κρυπτογράφησης του πορτοφολιού
- Πώς να μεταφέρεις προαιρετικά μια υπάρχουσα ρύθμιση/πορτοφόλι του zcashd στο Zallet
Τι άλλαξε από τον παλιό οδηγό
Η προηγούμενη έκδοση αυτού του οδηγού εξηγούσε τη μεταγλώττιση του zcashd απευθείας σε Pi 4 — μια μονονηματική μεταγλώττιση που διαρκούσε 3–4 ώρες, επειδή το Pi 4 δεν διαθέτει αρκετή μνήμη για παράλληλη κατασκευή (-j$(nproc)). Το Zebra και το Zallet διαθέτουν πλέον αμφότερα επίσημα προδημιουργημένα δυαδικά αρχεία ARM64 και εικόνες Docker, επομένως στις περισσότερες περιπτώσεις δεν χρειάζεται πλέον να μεταγλωττίσεις τίποτα από τον πηγαίο κώδικα στο ίδιο το Pi.
Προαπαιτούμενα
- Ένα Raspberry Pi 4 (συνιστώνται 4 GB RAM ή περισσότερα)
- Μια κάρτα microSD (32 GB+) για το λειτουργικό σύστημα
- Έναν εξωτερικό SSD/HDD με υποστήριξη USB 3.0 — το Zebra χρειάζεται περίπου 300 GB για δεδομένα Mainnet στην cache, και το μέγεθος αυξάνεται με τον χρόνο, επομένως μην επιχειρήσεις να το εκτελέσεις μόνο από την κάρτα microSD
- Έναν υπολογιστή με υποδοχή κάρτας microSD (για την εγγραφή της εικόνας του λειτουργικού συστήματος)
- Ενσύρματη σύνδεση Ethernet ή Wi-Fi
- Βασική εξοικείωση με τη γραμμή εντολών μέσω SSH
Βήμα 1: Εγγραφή του Ubuntu Server 22.04+ (64-bit)
Τα προδημιουργημένα δυαδικά αρχεία των Zebra και Zallet, καθώς και οι εικόνες Docker, απαιτούν glibc 2.34+, που σημαίνει Ubuntu Server 22.04 ή νεότερο (64-bit/aarch64).
- Εγκατάστησε το Raspberry Pi Imager στον κύριο υπολογιστή σου.
- Τοποθέτησε την κάρτα microSD.
- Επίλεξε Other general-purpose OS → Ubuntu → Ubuntu Server 22.04 LTS (64-bit) (ή νεότερο).
- Χρησιμοποίησε τις προηγμένες επιλογές του Imager (εικονίδιο γραναζιού) για να προκαθορίσεις το hostname, να ενεργοποιήσεις το SSH και να ορίσεις διαπιστευτήρια Wi-Fi, αν χρειάζεται, για την πρώτη εκκίνηση χωρίς οθόνη.
- Εγγράψε την εικόνα, τοποθέτησε την κάρτα και ενεργοποίησε το Pi.
- Συνδέσου μέσω SSH:
ssh <username>@<pi-hostname-or-ip>
Βήμα 2: Σύνδεση και προσάρτηση εξωτερικού χώρου αποθήκευσης
- Σύνδεσε τον εξωτερικό SSD/HDD μέσω USB 3.0.
- Αναγνώρισε τη συσκευή:
lsblk
- Διαμόρφωσέ τη (αν είναι καινούργια) και προσάρτησέ τη, π.χ. στο
/mnt/zcash-data, με μια τυπική ρύθμιση mkfs/fstab ώστε να προσαρτάται αυτόματα κατά την επανεκκίνηση.
Βήμα 3: Ενημέρωση του συστήματος
Code-highlight
sudo apt update && sudo apt full-upgrade -y
sudo reboot
Βήμα 4: Εγκατάσταση και εκτέλεση του Zebra
Επιλογή Α — Docker (συνιστάται)
Code-highlight
sudo apt install -y docker.io
sudo usermod -aG docker $USER # log out/in after this
docker run -d \
--name zebra \
-p 8233:8233 \
-v /mnt/zcash-data/zebra:/home/zebra/.cache/zebra \
zfnd/zebra:latest
Έλεγξε την πρόοδο: docker logs -f zebra
Επιλογή Β — Προδημιουργημένο δυαδικό αρχείο μέσω cargo binstall
Code-highlight
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
cargo install cargo-binstall
cargo binstall zebrad
zebrad start
Αυτό εγκαθιστά ένα προδημιουργημένο δυαδικό αρχείο του aarch64 — δεν απαιτείται μεταγλώττιση.
Για τον χρόνο συγχρονισμού: περίμενε ότι αυτό θα διαρκέσει αρκετά — τα συχνά αναφερόμενα στοιχεία για τον πρώτο συγχρονισμό (περίπου 2 ώρες) προέρχονται από υλικό αναφοράς ισχυρότερο από την CPU ενός Pi 4, επομένως ο πραγματικός χρόνος συγχρονισμού σε πραγματικό υλικό Pi 4 πιθανότατα θα είναι μεγαλύτερος.
Βήμα 5: Εγκατάσταση του Zallet
Το Zallet βρίσκεται επί του παρόντος σε alpha — περίμενε ασύμβατες αλλαγές και μην το θεωρείς ακόμη έτοιμο για production custody σημαντικών κεφαλαίων.
Επιλογή Α — Docker (συνιστάται)
Code-highlight
docker pull zodlinc/zallet:latest
Αυτή η εικόνα υποστηρίζει ARM64 (μέσω κατασκευής βασισμένης σε Nix) και εκτελείται από ένα ελάχιστο σύστημα αρχείων χωρίς shell — όρισε ρητά τις διαδρομές ρυθμίσεων και δεδομένων μέσω του --datadir και των volume mounts (βλ. Βήμα 6).
Επιλογή Β — Κατασκευή από τον πηγαίο κώδικα
Code-highlight
# Requires Rust 1.85+ (see Step 4B for rustup install)
sudo apt install -y clang libclang-dev protobuf-compiler
cargo install --locked --git https://github.com/zcash/wallet.git
Τα crates του Zallet δεν έχουν ακόμη δημοσιευτεί στο crates.io κατά τη φάση alpha, επομένως η απευθείας εγκατάσταση από το αποθετήριο git είναι η υποστηριζόμενη μέθοδος εκτός Docker.
Βήμα 6: Ρύθμιση του Zallet
Δημιούργησε το zallet.toml στον datadir που επέλεξες (π.χ. /mnt/zcash-data/zallet):
Code-highlight
[builder.limits]
[consensus]
network = "main"
[database]
[external]
[features]
as_of_version = "0.0.0"
[features.deprecated]
[features.experimental]
[indexer]
validator_address = "127.0.0.1:8232" # Zebra's JSON-RPC endpoint
[keystore]
[note_management]
[rpc]
bind = ["127.0.0.1:SOMEPORT"]
Προσάρμοσε το validator_address, αν το Zebra εκτελείται σε διαφορετικό host/port, και ρύθμισε τα validator_cookie_auth/validator_user/validator_password κάτω από το [indexer] ώστε να ταιριάζουν με τη ρύθμιση RPC auth του Zebra.
Μεταφέρεις από το zcashd; Αν εξακολουθείς να έχεις ένα παλιό zcash.conf:
Code-highlight
zallet migrate-zcash-conf --datadir /path/to/old/zcashd/datadir -o /mnt/zcash-data/zallet/zallet.toml
Βήμα 7: Ρύθμιση κρυπτογράφησης πορτοφολιού
Το Zallet κρυπτογραφεί όλο το υλικό κλειδιών χρησιμοποιώντας age/rage:
Code-highlight
cargo install rage
rage -p -o /mnt/zcash-data/zallet/encryption-identity.txt <(rage-keygen)
Αυτό εμφανίζει ένα δημόσιο κλειδί και μια φράση πρόσβασης που δημιουργείται αυτόματα — αποθήκευσε τη φράση πρόσβασης· δεν μπορείς να ανακτήσεις το αρχείο ταυτότητας χωρίς αυτήν.
Βήμα 8: Αρχικοποίηση και εκκίνηση του πορτοφολιού
Code-highlight
zallet -d /mnt/zcash-data/zallet init-wallet-encryption
zallet -d /mnt/zcash-data/zallet generate-mnemonic
Εκτέλεσε το generate-mnemonic μόνο μία φορά, εκτός αν θέλεις σκόπιμα πολλαπλές ανεξάρτητες ρίζες δαπάνης.
Code-highlight
zallet -d /mnt/zcash-data/zallet start
Βήμα 9: Μεταφορά υπάρχοντος πορτοφολιού zcashd (προαιρετικό)
Code-highlight
zallet -d /mnt/zcash-data/zallet migrate-zcashd-wallet --zcashd-datadir /path/to/old/zcashd/datadir
Αυτό απαιτεί το εργαλείο db_dump (που έχει κατασκευαστεί με Berkeley DB 6.2.23) — από εγκατάσταση συστήματος ή τοπική κατασκευή από τον πηγαίο κώδικα του zcashd. Αν δεν έχεις πλέον εγκατεστημένο το zcashd, αυτό είναι το μοναδικό βήμα μεταφοράς που δεν είναι ακόμη πλήρως αυτοτελές στο Zallet.
Βήμα 10: Επαλήθευσε ότι όλα λειτουργούν
Code-highlight
zallet -d /mnt/zcash-data/zallet help
Επιβεβαίωσε ότι το πορτοφόλι ανταποκρίνεται και, μόλις το Zebra ολοκληρώσει τον συγχρονισμό, ότι τα υπόλοιπα/οι διευθύνσεις αντιστοιχούν στις προσδοκίες σου.
Αντιμετώπιση προβλημάτων
- Προβλήματα κατασκευής/χρόνου εκτέλεσης του Zebra σε ARM: αν κάνεις κατασκευή από τον πηγαίο κώδικα, εγκατάστησε το ARM toolchain του Rust — η εκτέλεση εργαλείων κατασκευής x86_64 σε υλικό ARM θα είναι αισθητά πιο αργή, σύμφωνα με την τεκμηρίωση του Zebra.
- Ο χώρος αποθήκευσης γεμίζει: το αποτύπωμα περίπου 300 GB του Zebra συνεχίζει να αυξάνεται — προγραμμάτισε επαρκή ελεύθερο χώρο.
- Σφάλματα δικαιωμάτων του Docker: αποσυνδέσου και συνδέσου ξανά αφού προσθέσεις τον χρήστη σου στην ομάδα
docker ή χρησιμοποίησε προσωρινά το sudo.
- Το container Zallet δεν έχει shell: η επίσημη εικόνα
zodlinc/zallet είναι από σχεδιασμό from-scratch — όριζε πάντα ρητά το --datadir και προσάρτησε τον κατάλογο δεδομένων σου ως volume.
Σημειώσεις για το υλικό σε σύγκριση με τον παλιό οδηγό zcashd
Τα Zebra και Zallet είναι γενικά ελαφρύτερα για την CPU κατά την εγκατάσταση από ό,τι ήταν η μεταγλώττιση του zcashd, αφού εκτελείς προδημιουργημένα δυαδικά αρχεία/containers. Τα 4 GB RAM είναι ένα λογικό σημείο εκκίνησης· παρακολούθησε με το htop και σκέψου την παραλλαγή Pi 4 με 8 GB, αν παρατηρήσεις έντονο swapping.
Πρόσθετοι πόροι
Αν βρήκες χρήσιμο αυτόν τον οδηγό, σκέψου να υποστηρίξεις το ZecHub: [εισήγαγε την τρέχουσα θωρακισμένη διεύθυνση δωρεών του ZecHub από το zechub.wiki/donation — δεν περιλαμβάνεται εδώ, επειδή δεν μπορούσα να επαληθεύσω ότι εξακολουθεί να είναι τρέχουσα].