Практика › Своя нода

Что в пакете Monero

monerod, monero-wallet-cli, monero-wallet-rpc и остальные утилиты из официального архива

Коротко

Официальный CLI-архив содержит ноду (monerod), консольный кошелёк (monero-wallet-cli), кошелёк-сервер с JSON-RPC (monero-wallet-rpc) и набор утилит для работы с базой блокчейна. GUI-архив содержит monero-wallet-gui и тот же monerod.

Главные программы

monerod — нода

Демон, который соединяется с другими нодами, скачивает и проверяет блоки, хранит базу (LMDB), принимает транзакции в mempool и раздаёт их дальше. Предоставляет daemon RPC (порт 18081): высота, блоки, транзакции, отправка транзакций. Может майнить (start_mining), но для серьёзного майнинга используют P2Pool + XMRig. Настройка — на странице своя нода.

./monerod status
./monerod print_height
./monerod sync_info

monero-wallet-cli — консольный кошелёк

Эталонный кошелёк: создание/восстановление, переводы, подадреса, доказательства платежа, мультиподпись, холодное подписание. Работает с файлом кошелька и подключается к ноде.

./monero-wallet-cli --generate-new-wallet mywallet
./monero-wallet-cli --restore-deterministic-wallet          # из 25 слов
./monero-wallet-cli --generate-from-view-key watchonly      # view-only
./monero-wallet-cli --wallet-file mywallet --daemon-address 127.0.0.1:18081

Полезные команды внутри: balance, address new, account new, transfer <адрес> <сумма>, show_transfers, get_tx_key, check_tx_key, get_tx_proof, export_key_images, seed, help.

monero-wallet-rpc — кошелёк для программ

Тот же кошелёк, но управляемый по JSON-RPC. Его используют магазины, биржи, боты, платёжные шлюзы (BTCPay Server, MoneroPay и др.).

./monero-wallet-rpc --wallet-file shop --password-file pw.txt \
  --daemon-address 127.0.0.1:18081 --rpc-bind-port 18088 \
  --rpc-login user:secret
curl -u user:secret --digest http://127.0.0.1:18088/json_rpc \
  -d '{"jsonrpc":"2.0","id":"0","method":"create_address","params":{"account_index":0}}'

Главные методы: get_balance, create_address, get_transfers, transfer, incoming_transfers, make_integrated_address. Для магазина хватает view-only кошелька: он видит входящие на новые подадреса, но украсть с него нечего.

Безопасность RPC

Не открывайте порт monero-wallet-rpc в интернет. Всегда используйте --rpc-login, а для кошелька с ключом траты — отдельную изолированную машину.

Утилиты для базы блокчейна

ПрограммаЧто делает
monero-blockchain-pruneПревращает полную базу в pruned (копированием в новую базу)
monero-blockchain-exportЭкспорт цепочки в файл blockchain.raw
monero-blockchain-importИмпорт из blockchain.raw — быстрый способ поднять ноду с флешки (по умолчанию с проверкой)
monero-blockchain-statsСтатистика по блокам: число транзакций, размеры, входы/выходы по дням
monero-blockchain-usageКак часто выходы использовались в кольцах (исследования приманок)
monero-blockchain-ancestryСтроит «родословную» выхода по кольцам — инструмент исследования отслеживаемости
monero-blockchain-depthГлубина истории транзакции по кольцам
monero-blockchain-mark-spent-outputsПомечает заведомо потраченные выходы (например, из цепочек-форков), чтобы кошелёк не брал их в приманки
monero-blockchain-prune-known-spent-dataУдаляет данные выходов, которые известно что потрачены (старые pre-RingCT), экономя место

Прочее

Программа / файлЧто это
monero-gen-trusted-multisigГенерирует набор мультиподписных кошельков на одной доверенной машине (для тестов/простых случаев)
monero-gen-ssl-certСоздаёт SSL-сертификат для RPC
ANONYMITY_NETWORKS.mdИнструкция: Tor и I2P для monerod
monero-wallet-gui (GUI-архив)Графический кошелёк; может сам запускать monerod

Что ещё пригодится из экосистемы

  • P2Pool — децентрализованный майнинг-пул поверх своей ноды; XMRig — майнер RandomX.
  • onion-monero-blockchain-explorer — свой обозреватель блоков поверх своей ноды.
  • monero-lws — свой сервер «лёгкого кошелька»: держите view-ключи у себя, а не у чужого сервиса.