Ακολουθεί ένας οδηγός για την εκτέλεση του Ziggurat 3.0 Crawler για το Zcash, καθώς και των σχετικών προγραμμάτων Crunchy και P2P-Viz στο Ubuntu 22.04, για τη συλλογή και οπτικοποίηση πληροφοριών δικτύου του Zcash.
Το συνδεδεμένο βίντεο παρακάτω ακολουθεί την ίδια διαδικασία.
Ο Crawler του Zcash βρίσκεται μέσα σε έναν φάκελο με όνομα «zcash», επομένως ίσως είναι προτιμότερο να δημιουργήσεις έναν νέο κατάλογο πριν κάνεις clone το αποθετήριο του crawler (runziggurat/zcash).
Από τον κατάλογο /Home, εκτέλεσε τις ακόλουθες εντολές:
Code-highlight
mkdir runziggurat
cd runziggurat
git clone https://github.com/runziggurat/zcash.git
cd zcash
Ή άνοιξε το readme στη διεύθυνση
'/runziggurat/zcash/src/tools/crawler/README.md'
Αυτή η σελίδα περιέχει πληροφορίες για συγκεκριμένους τρόπους χρήσης.
Code-highlight
$ cargo run --release --features crawler --bin crawler -- --help
OPTIONS:
-c, --crawl-interval <CRAWL_INTERVAL>
The main crawling loop interval in seconds [default: 5]
-h, --help
Print help information
-r, --rpc-addr <RPC_ADDR>
If present, start an RPC server at the specified address
-s, --seed-addrs <SEED_ADDRS>...
A list of initial standalone IP addresses and/or DNS servers to connect to
-n, --node-listening-port <NODE_LISTENING_PORT>
Default port used for connecting to the nodes [default: 8233]
-V, --version
Print version information
Το --seed-addrs \ --dns-seed είναι το μόνο υποχρεωτικό όρισμα και χρειάζεται τουλάχιστον μία καθορισμένη διεύθυνση για να εκτελεστεί.
Η εντολή 'cargo run --release --features crawler --bin crawler -- --help' είναι η κυριολεκτική εντολή εκτέλεσης και θα εμφανίσει το μενού βοήθειας που φαίνεται.
Εκτέλεσε την εντολή
Code-highlight
cargo run --release --features crawler --bin crawler -- --help
Αυτό θα μεταγλωττίσει το πρόγραμμα και θα διασφαλίσει ότι όλα λειτουργούν σωστά.
Για να εκτελέσεις τον Crawler, χρειάζεται να προσθέσεις τη σημαία '--seed-addrs' στην εντολή εκκίνησης, η οποία περιέχει τουλάχιστον μία έγκυρη διεύθυνση IP κόμβου του Zcash. Θα πρέπει να επιτρέψεις στον crawler να εκτελεστεί για εύλογο χρονικό διάστημα, ώστε να λάβεις ακριβές αποτέλεσμα. Μπορείς να βρεις ορισμένα δείγματα διευθύνσεων IP κόμβων στο https://mainnet.zcashexplorer.app/nodes.
Για να λάβεις πληροφορίες από τον Crawler ενώ εκτελείται, χρειάζεται να προσθέσεις τη σημαία '--rpc-addr' στην εντολή εκκίνησης. Αυτό δεν απαιτείται μόνο για την εκτέλεση του crawler, αλλά διαφορετικά θα χρειαστεί να σταματήσεις τον crawler (ctrl+c ή SIGKILL) για να εμφανίσεις οποιαδήποτε πληροφορία.
Ο crawler θα αρχίσει να επικοινωνεί με το δίκτυο (προεπιλογή κάθε 20 δευτερόλεπτα) και να συλλέγει δεδομένα δικτύου.
Οι πληροφορίες από τον Crawler μπορούν να εμφανιστούν χρησιμοποιώντας το curl για να υποβάλεις ερώτημα στον κόμβο (αυτό απαιτεί το jq για την εμφάνιση αυτών των πληροφοριών).
Η διεύθυνση RPC του Crawler σε αυτό το παράδειγμα ορίζεται σε '127.0.0.1:54321'
Αυτό θα εμφανίσει τα τρέχοντα συλλεγμένα δεδομένα '.protocol_version' που περιέχονται στο πεδίο '.result'. Το πεδίο '.result' είναι πολύ μεγάλο, επομένως είναι χρήσιμο να καλείς συγκεκριμένα τμήματά του. Άλλοι χρήσιμοι τύποι δεδομένων είναι οι '.num_known_nodes', '.num_good_nodes', '.user_agents' κ.λπ. Δες την ενότητα μετρήσεων Εδώ
Για να εκτελέσεις το Crunchy και το P2P-Viz, χρειάζεται να διοχετεύσεις το '.result' σε ένα αρχείο .json.
Αυτό θα δημιουργήσει ένα αρχείο 'latest.json' στον τρέχοντα κατάλογο. Αυτό το αρχείο 'latest.json' θα χρησιμοποιηθεί με το Crunchy.
Σε αυτό το σημείο, ο Crawler μπορεί να σταματήσει με 'ctrl+c' εάν δεν χρειάζονται περισσότερα δεδομένα. Ο Crawler θα εμφανίσει στο τερματικό μια αναφορά με χρήσιμες πληροφορίες.
Crunchy
Το Crunchy απαιτείται για τη συγκέντρωση του αρχείου εξόδου json προς χρήση με το P2P-Viz.
Για να δημιουργήσεις το Crunchy, μετακινήσου στον φάκελό σου '/runziggurat'
Για να κάνεις clone το αποθετήριο Crunchy, εκτέλεσε τις ακόλουθες εντολές
Code-highlight
git clone https://github.com/runziggurat/crunchy.git
cd crunchy
Αντέγραψε και επικόλλησε το αρχείο 'latest.json' στον φάκελο 'crunchy/testdata/'.
Επίλεξε «Geolocation» και έπειτα επίλεξε «Choose state file».
Από το αναδυόμενο παράθυρο εξερεύνησης αρχείων, επίλεξε το αρχείο 'state.json'.
Ο παγκόσμιος χάρτης του εξερευνητή κόμβων θα συμπληρωθεί με τα δεδομένα του αρχείου. Δες το readme Εδώ για περισσότερες λεπτομέρειες σχετικά με τις επιλογές χρήσης και τις ρυθμίσεις.
ΣΥΜΒΟΥΛΕΣ!
Μπορείς να ορίσεις τον Crawler να κάνει crawl για καθορισμένο χρόνο απλά με την εντολή 'timeout', η οποία θα εκδώσει μια συγκεκριμένη εντολή τερματισμού μετά από καθορισμένο χρονικό διάστημα. Εκτέλεσε 'timeout --help' για περισσότερες πληροφορίες.
Η ακόλουθη εντολή θα εκκινήσει και θα σταματήσει επίσης αυτόματα τον crawler μετά από 50 λεπτά.
Το 'latest.json' μπορεί να κληθεί και να εγγραφεί στο '/testdata', ώστε να μη χρειάζεται να το αντιγράψεις και να το επικολλήσεις χειροκίνητα.
ΣΥΜΒΟΥΛΕΣ!
Οι πληροφορίες διευθύνσεων IP μπορούν να συλλεχθούν από την έξοδο και στη συνέχεια να χρησιμοποιηθούν για την επανατροφοδότηση του Crawler κατά την εκκίνηση (--seed-addrs). Αυτό θα μειώσει τον χρόνο που απαιτείται για την ολοκλήρωση ενός πλήρους crawl!