नीचे दिया गया मार्गदर्शक बताता है कि Ubuntu 22.04 पर Zcash के लिए Ziggurat 3.0 Crawler तथा उससे जुड़े प्रोग्राम Crunchy और P2P-Viz को कैसे चलाया जाए, ताकि Zcash नेटवर्क की जानकारी एकत्रित और विज़ुअलाइज़ की जा सके।
नीचे लिंक किया गया वीडियो भी इसी प्रक्रिया का पालन करता है।
Zcash Crawler zcash नाम के एक फ़ोल्डर के अंदर रहता है, इसलिए crawler (runziggurat/zcash repo) को clone करने से पहले एक नई directory बनाना उचित हो सकता है।
/Home directory से, निम्नलिखित commands चलाएँ:
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 ही एकमात्र आवश्यक argument है और इसे चलाने के लिए कम-से-कम एक निर्दिष्ट address चाहिए।
कमांड cargo run --release --features crawler --bin crawler -- --help वास्तविक run command है और यह ऊपर दिखाया गया help menu प्रिंट करेगा।
command चलाएँ
Code-highlight
cargo run --release --features crawler --bin crawler -- --help
यह प्रोग्राम को compile करेगा और सुनिश्चित करेगा कि सब कुछ सही तरह से काम कर रहा है।
Crawler चलाने के लिए start command में --seed-addrs flag जोड़ना आवश्यक है, जिसमें कम-से-कम एक मान्य Zcash node IP address होना चाहिए। सही परिणाम पाने के लिए crawler को पर्याप्त समय तक चलने देना चाहिए। कुछ sample node IP addresses यहाँ मिल सकते हैं: https://mainnet.zcashexplorer.app/nodes.
Crawler के चलने के दौरान उससे जानकारी प्राप्त करने के लिए start command में --rpc-addr flag जोड़ना आवश्यक है। केवल crawler चलाने के लिए यह आवश्यक नहीं है, लेकिन इसके बिना कोई भी जानकारी दिखाने के लिए crawler को रोकना पड़ेगा (ctrl+c या SIGKILL)।
Crawler नेटवर्क के साथ संचार शुरू करेगा (डिफ़ॉल्ट रूप से हर 20 सेकंड में) और नेटवर्क डेटा एकत्र करेगा।
Crawler से जानकारी दिखाने के लिए node को query करने हेतु curl का उपयोग किया जा सकता है (इस जानकारी को दिखाने के लिए jq आवश्यक है)।
इस उदाहरण में Crawler RPC address 127.0.0.1:54321 पर सेट है।
यह वर्तमान में एकत्रित .protocol_version डेटा दिखाएगा, जो .result field के भीतर मौजूद है। .result field बहुत बड़ी होती है, इसलिए उसके विशिष्ट हिस्सों को अलग से call करना उपयोगी रहता है। अन्य उपयोगी data types हैं .num_known_nodes, .num_good_nodes, .user_agents आदि। metrics section यहाँ देखें।
Crunchy और P2P-Viz चलाने के लिए .result को एक .json file में pipe करना आवश्यक है।
Node explorer की World Map file के डेटा से भर जाएगी। उपयोग के विकल्पों और settings के बारे में अधिक जानकारी के लिए readme यहाँ देखें।
सुझाव!
आप timeout command का उपयोग करके Crawler को timed crawl पर सेट कर सकते हैं, जो निर्धारित समय के बाद एक विशेष kill command जारी करेगा। अधिक जानकारी के लिए timeout --help चलाएँ।
निम्नलिखित command crawler को शुरू करेगी और 50 मिनट बाद अपने-आप रोक भी देगी।
latest.json को सीधे /testdata में call करके लिखा जा सकता है, ताकि आपको उसे manually copy-paste न करना पड़े।
सुझाव!
IP Address की जानकारी output से एकत्र की जा सकती है और फिर Crawler को start करते समय दोबारा seed करने (--seed-addrs) में उपयोग की जा सकती है। इससे full crawl करने के लिए आवश्यक समय कम हो जाएगा!