Нижче наведено посібник про те, як запустити Crawler Ziggurat 3.0 для Zcash, а також пов’язані програми Crunchy і P2P-Viz на Ubuntu 22.04 для збору та візуалізації інформації про мережу Zcash.
Відео за посиланням нижче демонструє той самий процес.
Crawler для Zcash знаходиться всередині папки з назвою 'zcash', тому перед клонуванням 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'
Щоб клонувати репозиторій 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 на обхід за таймером просто за допомогою команди 'timeout', яка надішле певну команду завершення після заданого проміжку часу. Виконайте 'timeout --help' для отримання додаткової інформації.
Наступна команда запустить Crawler і також автоматично зупинить його через 50 хвилин.
Файл 'latest.json' можна викликати й записати безпосередньо в '/testdata', щоб вам не довелося копіювати та вставляти його вручну.
ПОРАДИ!
Інформацію про IP-адреси можна зібрати з вихідних даних, а потім використати для повторного засівання Crawler під час запуску (--seed-addrs). Це зменшить час, потрібний для виконання повного обходу!