Πώς να εκτελέσεις το Zebra στο Akash Network
Οδηγός βήμα προς βήμα για την ανάπτυξη ενός πλήρους κόμβου Zebra Zcash χρησιμοποιώντας το Akash Console.
Τι αναπτύσσεις
Έναν πλήρη κόμβο Zebra που θα:
-> Συγχρονίσει ολόκληρο το blockchain Zcash (100GB+ για mainnet, ~40GB για testnet)
-> Κοστίζει περίπου $15/μήνα ανάλογα με τις τιμές των token AKT
-> Χρειαστεί από αρκετές ώρες έως ημέρες για να συγχρονιστεί πλήρως
-> Χρησιμοποιεί 4 vCPU, 16GB RAM, 350GB αποθήκευση (mainnet) ή 2 vCPU, 8GB RAM, 50GB (testnet)
Σημαντικό: Αντιστοίχιση θυρών στο Akash
Όταν εκθέτεις μια θύρα στο Akash (π.χ. τη θύρα 8233 για P2P Zebra), ΔΕΝ δεσμεύεται σε αυτήν ακριβώς τη θύρα στη δημόσια IP του παρόχου. Αντίθετα, ο πάροχος εκχωρεί μια τυχαία υψηλή θύρα (όπως 31234 ή 42567) και τη συνδέει μέσω αντίστροφου proxy με τη θύρα 8233 του container σου.
Αυτό γίνεται εκ σχεδιασμού — οι πάροχοι εκτελούν πολλαπλές αναπτύξεις και θα υπήρχαν συγκρούσεις αν όλοι προσπαθούσαν να χρησιμοποιήσουν απευθείας τη θύρα 8233.
Τι σημαίνει αυτό για εσένα:
-> Ρυθμίζεις τη θύρα 8233 στο SDL (την τυπική θύρα P2P του Zebra)
-> Το Akash σού δίνει ένα URI όπως provider.com:31234
-> Άλλοι κόμβοι Zcash συνδέονται μαζί σου στο provider.com:31234
-> Μέσα στο container σου, το Zebra εξακολουθεί να ακούει στη θύρα 8233
Αυτό διαχειρίζεται αυτόματα. Απλώς χρησιμοποίησε το URI που σου δίνει το Akash.
Προϋποθέσεις
- Εγκατεστημένη επέκταση προγράμματος περιήγησης Keplr Wallet (Chrome/Brave/Firefox)
- Token AKT — Πάρε 50-100 AKT από ένα ανταλλακτήριο (Coinbase, Kraken, Osmosis)
- 5 λεπτά για να κάνεις κλικ στο UI του Console
Βήμα 1: Σύνδεσε το πορτοφόλι σου
-> Πήγαινε στο https://console.akash.network
-> Κάνε κλικ στο «Connect Wallet» επάνω δεξιά
-> Επίλεξε Keplr (ή το προτιμώμενο πορτοφόλι Cosmos)
-> Έγκρινε τη σύνδεση όταν εμφανιστεί το Keplr
Το υπόλοιπό σου σε AKT θα πρέπει να εμφανιστεί επάνω δεξιά. Αν είναι μηδενικό, πρόσθεσε πρώτα χρήματα στο πορτοφόλι σου.
Βήμα 2: Δημιούργησε ανάπτυξη
-> Κάνε κλικ στο κουμπί «Deploy» (μεγάλο μπλε κουμπί, στο κέντρο της σελίδας)
-> Επίλεξε «Build your template» (ή προχώρησε απευθείας στη μεταφόρτωση SDL)
Επιλογή A: Μεταφόρτωση αρχείου SDL (συνιστάται)

Επιλογή B: Χρήση του επεξεργαστή SDL
Αν θέλεις να επικολλήσεις χειροκίνητα το SDL:
-> Αντέγραψε τα περιεχόμενα του zebra-akash.yml
-> Επικόλλησέ τα στον επεξεργαστή SDL
-> Τροποποίησέ τα όπως χρειάζεται (δες την ενότητα ρυθμίσεων παρακάτω)
-> Κάνε κλικ στο «Create Deployment»
Βήμα 3: Έλεγξε και έγκρινε την κατάθεση
Το Console θα σου εμφανίσει:
-> Κατάθεση ανάπτυξης: ~5 AKT (τα παίρνεις πίσω όταν κλείσεις την ανάπτυξη)
-> Εκτιμώμενο κόστος: Βάσει της τιμολόγησης του SDL σου
Κάνε κλικ στο «Approve» και υπέγραψε τη συναλλαγή στο Keplr.
Βήμα 4: Επίλεξε πάροχο
Μετά από ~ 30 δευτερόλεπτα, θα δεις προσφορές από παρόχους. Κάθε προσφορά εμφανίζει:
-> Τιμή ανά μπλοκ (σε AKT ή USDC)
-> Εκτιμώμενο μηνιαίο κόστος
-> Στοιχεία παρόχου (χρόνος λειτουργίας, περιοχή κ.λπ.)
Μην επιλέξεις απλώς τον φθηνότερο. Έλεγξε:
-> Ποσοστό χρόνου λειτουργίας (στόχευσε σε > 95%)
-> Περιοχή (όσο πιο κοντά σου, τόσο καλύτερη η καθυστέρηση, αλλά δεν έχει μεγάλη σημασία για κόμβους blockchain)
-> Κατάσταση ελέγχου (πράσινο σημάδι ελέγχου = πιο αξιόπιστος)
Κάνε κλικ στο «Accept Bid» για τον πάροχο που επέλεξες και υπέγραψε στο Keplr.
Βήμα 5: Περίμενε την ανάπτυξη
Το Console θα:
-> Δημιουργήσει τη μίσθωση με τον πάροχο που επέλεξες
-> Στείλει το manifest (λέει στον πάροχο τι να εκτελέσει)
-> Εκκινήσει το container σου
Αυτό διαρκεί 1-2 λεπτά. Θα βλέπεις ενημερώσεις κατάστασης στο UI.
Βήμα 6: Επιβεβαίωσε ότι εκτελείται
Μόλις αναπτυχθεί, θα δεις:
-> Καρτέλα Services: Εμφανίζει την υπηρεσία zebra με την κατάστασή της
-> Καρτέλα Logs: Ζωντανά logs του container
-> Καρτέλα Leases: Λεπτομέρειες για την ανάπτυξή σου (DSEQ, πάροχος, κόστος)
Έλεγξε τα logs
Κάνε κλικ στα Logs και θα πρέπει να δεις το Zebra να ξεκινά:
Code-highlight
Loading config from environment variables
Mainnet network selected
Listening for peer connections on [::]:8233
Starting initial sync...
Ο συγχρονισμός θα διαρκέσει από ώρες έως ημέρες ανάλογα με το δίκτυο. Παρακολούθησε για:
-> Αυξανόμενα ύψη μπλοκ
-> Συνδέσεις με peers (θα πρέπει να υπάρχουν 10-30 peers)
-> Απουσία επαναλαμβανόμενων σφαλμάτων
Βήμα 7: Πάρε τη διεύθυνση του κόμβου σου
Κάνε κλικ στην καρτέλα Leases, έπειτα στο URIs.
Θα δεις κάτι όπως:
Code-highlight
zebra-8233: provider-hostname.com:31234
Αυτό είναι το δημόσιο endpoint P2P του κόμβου σου. Άλλοι κόμβοι Zcash θα συνδέονται μαζί σου σε αυτήν τη διεύθυνση.
Σημείωσε την αντιστοίχιση θυρών: Ρύθμισες τη θύρα 8233 στο SDL, αλλά το Akash την εκχώρησε σε διαφορετική δημόσια θύρα (31234 σε αυτό το παράδειγμα). Αυτό είναι φυσιολογικό — δες την ενότητα «Αντιστοίχιση θυρών στο Akash» στην αρχή, αν αυτό σε μπερδεύει. Ο κόμβος σου είναι προσβάσιμος σε όποια θύρα εμφανίζει εδώ το Akash, όχι απαραίτητα στη 8233.
Αν ενεργοποίησες RPC (είναι σχολιασμένο από προεπιλογή στο SDL), θα δεις επίσης εδώ το endpoint RPC με τη δική του αντιστοιχισμένη θύρα.
Επιλογές ρυθμίσεων
Μετάβαση σε testnet
Το SDL χρησιμοποιεί από προεπιλογή το Mainnet. Για να χρησιμοποιήσεις αντί αυτού το Testnet:
-> Σχολίασε τη ρύθμιση Mainnet στην ενότητα env:
Code-highlight
# - "ZEBRA_NETWORK__NETWORK=Mainnet"
# - "ZEBRA_NETWORK__LISTEN_ADDR=[::]:8233"
-> Κατάργησε το σχόλιο από τη ρύθμιση Testnet:
Code-highlight
- "ZEBRA_NETWORK__NETWORK=Testnet"
- "ZEBRA_NETWORK__LISTEN_ADDR=[::]:18233"
-> Ενημέρωσε την εκτεθειμένη θύρα στην ενότητα expose:
Code-highlight
# Comment out Mainnet port:
# - port: 8233
# as: 8233
# to:
# - global: true
# proto: tcp
# Uncomment Testnet port:
- port: 18233
as: 18233
to:
- global: true
proto: tcp
-> Προαιρετικά: Μείωσε τους πόρους για το Testnet στο profiles.compute.zebra.resources:
Code-highlight
cpu:
units: 2 # Down from 4
memory:
size: 8Gi # Down from 16Gi
storage:
- size: 50Gi # Down from 150Gi
-> Προαιρετικά: Μείωσε την τιμολόγηση στο profiles.placement.akash.pricing:
Code-highlight
amount: 5000 # Down from 10000
Ενεργοποίηση πρόσβασης RPC
Το RPC είναι απενεργοποιημένο από προεπιλογή για λόγους ασφάλειας. Για να το ενεργοποιήσεις:
Για Mainnet:
-> Κατάργησε το σχόλιο στην ενότητα env:
Code-highlight
- "ZEBRA_RPC__LISTEN_ADDR=0.0.0.0:8232"
- "ZEBRA_RPC__COOKIE_DIR=/home/zebra/.cache/zebra"
-> Κατάργησε το σχόλιο από τη θύρα RPC Mainnet στο expose:
Code-highlight
- port: 8232
as: 8232
to:
- global: false # Keep internal for security
proto: tcp
Για Testnet:
-> Κατάργησε το σχόλιο στην ενότητα env:
Code-highlight
- "ZEBRA_RPC__LISTEN_ADDR=0.0.0.0:18232"
- "ZEBRA_RPC__COOKIE_DIR=/home/zebra/.cache/zebra"
-> Κατάργησε το σχόλιο από τη θύρα RPC Testnet στο expose:
Code-highlight
- port: 18232
as: 18232
to:
- global: false
proto: tcp
Προειδοποίηση: Αν ορίσεις global: true για RPC, το εκθέτεις στο διαδίκτυο. Το Zebra χρησιμοποιεί από προεπιλογή έλεγχο ταυτότητας cookie, αλλά και πάλι — μην το κάνεις αυτό, εκτός αν ξέρεις τι κάνεις.
Υπενθύμιση αντιστοίχισης θυρών: Ακόμη κι αν εκθέσεις το RPC καθολικά, το Akash θα το αντιστοιχίσει σε μια τυχαία υψηλή θύρα (όχι 8232/18232). Έλεγξε τα URI στην ανάπτυξή σου για να δεις το πραγματικό δημόσιο endpoint. Για global: false (συνιστάται), το endpoint RPC είναι προσβάσιμο μόνο μέσα στο δίκτυο ανάπτυξης του Akash, όχι από το δημόσιο διαδίκτυο.
Ενεργοποίηση metrics (Prometheus)
Για να συλλέγεις metrics για παρακολούθηση:
-> Κατάργησε το σχόλιο στο env:
Code-highlight
- "ZEBRA_METRICS__ENDPOINT_ADDR=0.0.0.0:9999"
-> Κατάργησε το σχόλιο από τη θύρα metrics στο expose:
Code-highlight
- port: 9999
as: 9999
to:
- global: false
proto: tcp
Προσαρμογή πόρων/τιμολόγησης
Αν δεν λαμβάνεις προσφορές ή θέλεις να βελτιστοποιήσεις το κόστος:
Για παρόχους χαμηλότερων προδιαγραφών, μείωσε στην ενότητα profiles.compute.zebra.resources:
-> CPU: units: 2 (ελάχιστο για λογική ταχύτητα συγχρονισμού)
-> Μνήμη: size: 12Gi (ελάχιστο για σταθερότητα)
-> Αποθήκευση: size: 120Gi (ελάχιστο για mainnet)
Για να προσελκύσεις περισσότερες προσφορές, αύξησε στο profiles.placement.akash.pricing:
-> Mainnet: Δοκίμασε amount: 1000000 uakt/block
-> Testnet: Δοκίμασε amount: 1000000 uakt/block
Ενημέρωση της ανάπτυξής σου
Χρειάζεται να αλλάξεις ρυθμίσεις μετά την ανάπτυξη;
-> Πήγαινε στο My Deployments στο Console
-> Βρες την ανάπτυξή σου Zebra
-> Κάνε κλικ στο «Update Deployment»
-> Επεξεργάσου το SDL
-> Κάνε κλικ στο «Update» και έγκρινε στο Keplr
Σημείωση: Η ενημέρωση θα επανεκκινήσει το container σου. Ο κόμβος θα συνεχίσει από την αποθηκευμένη κατάστασή του (μόνιμη αποθήκευση), αλλά να περιμένεις 1-2 λεπτά διακοπής λειτουργίας.
Παρακολούθηση
Μέσω Console
-> Καρτέλα Logs: Ζωντανά logs του container
-> Καρτέλα Shell: Άνοιξε ένα shell μέσα στο container (χρήσιμο για αποσφαλμάτωση)
-> Καρτέλα Events: Συμβάντα Kubernetes (ως επί το πλείστον άχρηστα, εκτός αν κάτι έχει χαλάσει)
Μέσω RPC (αν είναι ενεργοποιημένο)
Αν ενεργοποίησες RPC, μπορείς να υποβάλεις ερωτήματα στον κόμβο σου ως έναν κανονικό πλήρη κόμβο zebrad (επειδή είναι!)
Κλείσιμο της ανάπτυξής σου
Όταν τελειώσεις ή θέλεις να σταματήσεις να πληρώνεις:
-> Πήγαινε στο My Deployments
-> Βρες την ανάπτυξή σου Zebra
-> Κάνε κλικ στο «Close Deployment»
-> Επιβεβαίωσε και υπέγραψε στο Keplr
Η κατάθεσή σου των 5 AKT θα επιστραφεί. Η μόνιμη αποθήκευση θα πρέπει να διατηρηθεί από τον πάροχο, αλλά μην βασίζεσαι σε αυτό — αντιμετώπισέ το όπως κάθε άλλον πάροχο cloud.
Αντιμετώπιση προβλημάτων
Σφάλμα «Insufficient funds»
Χρειάζεσαι περισσότερα AKT. Πρόσθεσε χρήματα στο πορτοφόλι Keplr σου.
Δεν εμφανίζονται προσφορές
Είτε:
-> Η τιμολόγησή σου είναι πολύ χαμηλή (αύξησε το amount στο SDL)
-> Οι απαιτήσεις σου σε πόρους είναι πολύ υψηλές για τους διαθέσιμους παρόχους (μείωσε CPU/μνήμη/αποθήκευση)
-> Περίμενε περισσότερο (μερικές φορές χρειάζονται 60-90 δευτερόλεπτα για να εμφανιστούν προσφορές)
Η ανάπτυξη έχει κολλήσει στο «pending»
Ο πάροχος μπορεί να έχει προβλήματα. Κλείσε την ανάπτυξη και δοκίμασε διαφορετικό πάροχο.
Τα logs του Zebra εμφανίζουν «No peers connected»
Αυτό είναι φυσιολογικό για τα πρώτα λίγα λεπτά. Το Zebra θα ανακαλύψει peers αυτόματα. Αν επιμένει μετά από 10+ λεπτά, μπορεί να έχεις πρόβλημα δικτύωσης (απίθανο στο Akash).
Σφάλματα «Out of memory» στα logs
Έκανες οικονομία στη RAM. Κλείσε την ανάπτυξη και ανέπτυξέ την ξανά με τουλάχιστον 12Gi μνήμη (συνιστώνται 16Gi).
Ο συγχρονισμός διαρκεί για πάντα
Όρισε το «για πάντα»:
-> Ώρες: Φυσιολογικό
-> Ημέρες: Επίσης φυσιολογικό για mainnet από την αρχή
-> Εβδομάδες: Κάτι δεν πάει καλά, έλεγξε τα logs για σφάλματα
Διαχείριση κόστους
Παρακολούθησε τις δαπάνες σου στο Console:
-> My Deployments -> Η ανάπτυξή σου -> Εμφανίζει εκτίμηση «Cost per month»
-> Το υπόλοιπο του πορτοφολιού Keplr σου θα μειώνεται με την πάροδο του χρόνου
Όταν το υπόλοιπό σου μειωθεί πολύ, το Akash θα κλείσει αυτόματα την ανάπτυξή σου. Κάνε ανανέωση του πορτοφολιού σου περιοδικά ή ρύθμισε ειδοποιήσεις.
Μείωση κόστους
-> Χρησιμοποίησε Testnet για δοκιμές εκτός παραγωγής (50% φθηνότερο)
-> Μείωσε CPU/μνήμη αν δεν χρειάζεσαι γρήγορο συγχρονισμό
-> Επίλεξε φθηνότερους παρόχους (όχι πάντα σοφό — ο χρόνος λειτουργίας έχει σημασία)
Mainnet έναντι Testnet
Code-highlight
----------------------------------------------------------------------------------
| | Mainnet (default) | Testnet |
---------------------------------------------------------------------------------|
| Purpose | Production Zcash blockchain | Testing and development |
| Network | ZEBRA_NETWORK__NETWORK=Mainnet | ZEBRA_NETWORK__NETWORK=Testnet |
| P2P Port | 8233 | 18233 |
| RPC Port | 8232 | 18232 |
| Sync time | Days | Hours |
| Storage | 350GB+ | 50GB |
| Resources | 4 CPU / 16GB RAM | 2 CPU / 8GB RAM |
| Cost | ~$15/month | ~$5/month |
----------------------------------------------------------------------------------
Ξεκίνα με Testnet αν απλώς δοκιμάζεις τη διαδικασία ανάπτυξης. Δες την ενότητα «Μετάβαση σε testnet» παραπάνω για τη ρύθμιση.
Πρόσθετοι πόροι
Akash Console: https://console.akash.network
Τεκμηρίωση Akash: https://akash.network/docs/
Τεκμηρίωση Zebra: https://zebra.zfnd.org/
Block explorers Zcash: https://zechub.wiki/guides/blockchain-explorers
Akash Discord: https://discord.akash.network (για προβλήματα με παρόχους)