Взаимодействие с Monero


Вы можете пользоваться Monero посредством десктоп GUI кошелька или кошелька с поддержкой командной строки (CLI) и программируемого API.

Помимо этого, узлы Monero взаимодействуют друг с другом в составе одноранговой сети.

Обзор установочной директории

После распаковки вы увидите несколько исполняемых файлов, а также руководство пользователя GUI кошелька в формате PDF.

Проект Monero отделяет логическую часть сетевых узлов от логической части кошельков. Логическая часть кошельков обеспечивается тремя независимыми пользовательскими интерфейсами: GUI, CLI и HTTP API.

# cd monero-gui-v0.16.0.0

# ---- guide to Monero GUI ----

monero-gui-wallet-guide.pdf

# ---- main executable files -----------

monerod

monero-wallet-cli
monero-wallet-gui
monero-wallet-rpc

# ---- extra executable files -----------

extra/monero-wallet-cli
extra/monero-wallet-rpc
extra/monero-blockchain-prune
extra/monero-gen-trusted-multisig
extra/monero-gen-ssl-cert
extra/monero-blockchain-export
extra/monero-blockchain-import

# ---- don't bother with these ----------

extra/monero-blockchain-stats
extra/monero-blockchain-mark-spent-outputs
extra/monero-blockchain-prune-known-spent-data
extra/monero-blockchain-usage
extra/monero-blockchain-ancestry
extra/monero-blockchain-depth

Исполняемые файлы

Исполняемый файлОписание
monerodДемон полного узла. Не требует наличия кошелька. См. раздел
Документация.
monero-wallet-guiЛогическая часть кошелька и графический пользовательский интерфейс.
Требует наличия запущенного демона monerod.
monero-wallet-cliЛогическая часть кошелька и пользовательский интерфейс с поддержкой командной строки.
Требует наличия запущенного демона monerod.
monero-wallet-rpcЛогическая часть кошелька и HTTP API (протокол JSON-RPC).
Требует наличия запущенного демона monerod.
monero-blockchain-pruneОбрезание существующего локального блокчейна. Позволяет сэкономить до 2/3 дискового пространства (по состоянию на июнь 2020 года сократить занимаемое место с 85 Гб до 28 Гб). Лучше использовать эту опцию, а не monerod --prune-blockchain, которая только логически освобождает место внутри файла, в то время как сам файл остаётся большим. При использовании monero-blockchain-prune создаётся сжатая копия файла блокчейна. См. tutorial1, tutorial2.
monero-gen-ssl-certСоздание 4096-битного приватного ключа RSA и самоподписанного сертификата TLS для использования с RPC интерфейсом monerod. См. pull request.
monero-gen-trusted-multisigСоздание multisig-кошелька.
См. главу Мультиподпись.
monero-blockchain-exportЭкспорт блокчейна в файл blockchain.raw.
monero-blockchain-importИмпорт файла blockchain.raw, в идеале — вашей собственной копии.

Унаследованные исполняемые файлы

Скорее всего, вам никогда не придётся пользоваться унаследованными инструментами.

Исполняемый файлОписание
monero-blockchain-statsВыводит статистику, такую как количество транзакции (за сутки), блоков (за сутки) и байт (за сутки) на основе вашей локальной цепочки блоков.
monero-blockchain-mark-spent-outputsПродвинутый инструмент, позволяющий избежать проблем, связанных с анонимностью, которые могут возникнуть вследствие форка Monero. Как правило, таких ситуаций не возникает.
См. соответствующий коммит и пул реквест.
monero-blockchain-prune-known-spent-dataБолее ранняя опция ограниченного обрезания, позволяющая удалять известные потраченные выходы транзакций (использовалась до реализации RCT). Сегодня рекомендуется использовать monero-blockchain-prune. Позволяет сэкономить всего около 200 Мб. См. коммит.
monero-blockchain-usageПродвинутый инструмент, позволяющий избежать проблем, связанных с анонимностью, которые могут возникнуть вследствие форка Monero.
См. соответствующий коммит и пул реквест.
monero-blockchain-ancestryПродвинутый исследовательский инструмент, позволяющий узнать исходную транзакцию, блок или блокчейн. Не используется большинством пользователей.
См. соответствующий пул реквест.
monero-blockchain-depthПродвинутый исследовательский инструмент, позволяющий узнать глубину транзакции, блока или блокчейна. Не используется большинством пользователей.
См. соответствующий коммит.

Взаимодействие

Существует всего несколько способов взаимодействия с программным обеспечением Monero. Вероятно, наиболее удивительным для новичков станет тот факт, что демон monerod принимает команды, вводимые с интерактивной клавиатуры, будучи уже запущенным.

Также следует отметить, что HTTP API разбит между monerod и monero-wallet-rpc. Чтобы пользоваться полным API, необходимо запустить и задействовать оба демона. Это соответствует разбиению логических частей кошельков и узлов, о которых говорилось выше.

Все варианты реализации кошельков зависят от запущенного демона monerod.

Исполняемый файлp2p сетьКоманды узла, вводимые посредством клавиатурыHTTP API узлаКоманды кошелька, вводимые посредством клавиатурыHTTP API кошелькаИспользование кошелька посредством GUI
monerod
monero-wallet-cli
monero-wallet-rpc
monero-wallet-gui

Директория данных

Это места хранения данных блокчейна, регистрационных файлов и журнала подключения к p2p сетям. По умолчанию директории данных создаются следующим образом:

  • $HOME/.bitmonero/ (Linux и macOS);
  • C:\ProgramData\bitmonero\ (Windows).

Следует помнить о том, что:

  • директория данных скрыта в соответствии с правилами ОС;
  • название директории bitmonero является историческим «артефактом», существовавшим ещё до появления Monero в результате форка Bitmonero, то есть примерно 2000 лет до н. э.

Директория данных содержит:

  • lmdb/ (директорию базы данных блокчейна);
  • p2pstate.bin (сохранённые в памяти данные о найденных одноранговых узлах);
  • bitmonero.log (файл журнала).

Директория также может содержать поддиректории для отладочной (stagenet) и тестовой (testnet) сетей, отражающие одну и ту же структуру:

  • stagenet/ (директория данных отладочной сети);
  • testnet/ (директория данных тестовой сети).