Кошелёк с поддержкой командной строки (CLI)

Тема в разделе "Мануалы", создана пользователем Mr. Pickles, 12 дек 2019.

  1. Mr. Pickles

    Команда форума Модератор Редактор

    Регистрация:
    11 сен 2017
    Сообщения:
    720
    Симпатии:
    222
    «Официальный» кошелёк Monero с поддержкой командной строки. Доступны версии для Linux, MacOS и Windows.

    Кошелёк использует приватные ключи, благодаря которым вы можете узнать свой общий баланс, историю транзакций. Также эти ключи облегчают проведение транзакций.

    Тем не менее кошелёк не хранит копию блокчейна и не участвует напрямую в p2p сети.

    CLI-кошелёк является самым надёжным и полным с точки зрения имеющихся функций кошельком Monero.

    Зависимость от полного узла

    Кошелёк подсоединяется к полному узлу, чтобы просканировать выходы ваших транзакций, а также отправить ваши транзакции в сеть.

    Полный узел может быть либо локальным (тот же компьютер), либо удалённым.

    Как правило, полный узел запускается на том же компьютере, на который установлен кошелёк (или в пределах вашей домашней сети).

    Соединение происходит через HTTP и использует этот API.

    Любая транзакция, покидающая кошелёк, уже защищена всеми функциями обеспечения анонимности Monero. Это означает, что передача данных простым текстом через HTTP сама по себе не является проблемой, даже если вы подсоединяетесь к удалённому узлу.

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

    Синтаксис
    Пример:
    Запуск

    Перейдите в директорию, в которую были распакованы файлы Monero.

    Запустите полный узел и подождите, пока он не синхронизируется с сетью (это может занять до нескольких дней):
    Запустите кошелёк в отдельном окне:
    Опции
    Помощь и вывод информации о версии:

    ОпцияОписание
    --helpВыводит список доступных опций.
    --versionПоказывает версию monero-wallet-cli в stdout. Пример: Monero 'Boron Butterfly' (v0.14.0.0-release)

    Выбор сети:

    ОпцияОписание
    (отсутствует)По умолчанию кошелёк выбирает основную сеть.
    --stagenetЗапускает кошелёк в отладочной сети. Следует помнить, что демон также запускается в --stagenet.
    --testnetЗапускает кошелёк в тестовой сети. Следует помнить, что демон также запускается в --testnet.

    Регистрация (журнал событий):

    ОпцияОписание
    --log-file <arg>Полный путь к регистрационному файлу журнала.
    --log-level <arg>От 0 до 4, где 0 является минимальной регистрацией, а 4 полной трассировкой. По умолчанию установлена в нулевое значение. Это общие предварительные установки, и они не относятся напрямую к уровню серьёзности. Например, даже при минимальном нулевом значении вы можете увидеть самую важную информацию.
    --max-log-file-size <arg>Запрограммированный выраженный в байтах предел для регистрационного файла (по умолчанию равен 104850000, что составляет менее 100 Мб). Как только размер регистрационного файла вырастет сверх этого предела, Monero создаст следующий регистрационный файл с постфиксной временной меткой в формате UTC: YYYY-MM-DD-HH-MM-SS.
    При производстве вы, вероятно, вместо этого предпочтёте использовать проверенные решения, такие как logrotate. В этом случае следует установить --max-log-file-size в нулевое значение, чтобы лишить Monero возможности управлять регистрационными файлами.
    --max-log-files <arg>Предельное количество регистрационных файлов (50 по умолчанию). Самые старые регистрационные файлы удаляются. При производстве вы, вероятно, вместо этого предпочтёте использовать проверенные решения, такие как logrotate.

    Соединение с узлом:

    ОпцияОписание
    --daemon-address <arg>Использовать monerod по адресу <host>:<port>. Пример: ./monero-wallet-cli --daemon-address monero-stagenet.exan.tech:38081 --stagenet
    --daemon-host <arg>Использовать monerod на хосте <arg>, а не на локальном (localhost).
    --daemon-port <arg>Использовать monerod на порте <arg>, вместо 18081.
    --daemon-login <arg>Указать username[:рassword] для RPC API monerod. Опция основана на схеме базовой аутентификации HTTP. Следует помнить о том, что соединения являются незашифрованными по умолчанию. Аутентификация имеет смысл только в том случае, если вы создаёте безопасное соединение (возможно, посредством Tor, SSH туннеля или обратного прокси-сервера с TLS).
    --trusted-daemonПозволяет использовать команды и типы поведения, рассчитанные на доверенный monerod. Используется по умолчанию для соединения localhost. Доверие в этом контексте является вопросом вашей анонимности. Этот флаг можно использовать только в том случае, если вы контролируете monerod. Доверенный демон позволяет использовать такие команды, как rescan_spent, start_mining, import_key_images, и типы поведения не такие, как предупреждение о возможной атаке по переходным проблемам с отправкой транзакций.
    --untrusted-daemonОтключает команды и типы поведения, рассчитанные на доверенный monerod. Используется по умолчанию для соединений не с локальным хостом. См. подробную информацию в пункте --trusted-daemon.
    --do-not-relayТолько что созданная транзакция не будет передана в сеть Monero. Вместо этого она будет сброшена в файл в необработанном шестнадцатеричном формате. Опция полезна в том случае, если вы желаете пропустить транзакцию через такой шлюз, как https://xmrchain.net/rawtx. Её проще использовать с Tor, а не кошельком Monero.
    --allow-mismatched-daemon-versionПозволяет связываться с monerod, использующим другую версию RPC.

    Создание нового кошелька:

    ОпцияОписание
    --generate-new-wallet <arg>Создание нового кошелька Monero и его сохранение в файл <arg>. У вас запросят пароль. Пароль используется для шифрования файла кошелька, но он не связан с вашим главным ключом траты или мнемонической фразой. Следует создать очень сложный пароль, воспользовавшись вашим менеджером паролей (энтропия должна составлять ~256 бит). Пример: ./monero-wallet-cli --stagenet --generate-new-wallet $HOME/.bitmonero/stagenet/wallets/MoneroExampleStagenetWallet
    --kdf-rounds <arg>Касается шифрования файла кошелька. Файл кошелька шифруется при помощи поточного шифра ChaCha. Ключ шифрования выводится на основе предоставленного пользователем пароля путём хеширования этого пароля при помощи CryptoNight. Эта опция определяет, сколько раз будет использовано хеширование CryptoNight. По умолчанию хеширование происходит 1 раз.
    Следует отметить, что это не связано с генерированием ключа траты.
    Чем больше раз будет производиться хеширование, тем больше времени вы будете ждать открытия кошелька или проведения транзакции. Но при этом злоумышленнику будет сложнее подобрать пароль к вашему кошельку методом перебора.
    Примечание. Вам будет необходимо запомнить и вводить одни и те же kdf-rounds при каждом получении доступа к вашему кошельку!
    Рекомендация. Не меняйте значения используемого по умолчанию. Вместо этого генерируйте очень сложный пароль, воспользовавшись вашим менеджером паролей (энтропия должна составлять 256 бит).

    Открытие существующего кошелька:

    ОпцияОписание
    --wallet-file <arg> Открывает существующий кошелёк. Пример:
    ./monero-wallet-cli --stagenet --wallet-file $HOME/.bitmonero/stagenet/wallets/MoneroExampleStagenetWallet
    Применяется только к файлам кошелька, созданного при помощи инструментов monero-wallet-cli, monero-wallet-gui или monero-wallet-rpc. Если вы используете другой тип кошелька, то вам необходимо ознакомиться с опциями переноса.
    --password <arg>Позволяет использовать пароль в качестве параметра, а не интерактивно. Не забывайте выходить/ставить кавычки по необходимости.
    Не рекомендуется использовать эту опцию, так как пароль останется в вашей истории команд, а также будет виден в таблице процессов. В целях автоматизации лучше использовать --password-file.
    Опция также работает в сочетании с —generate-new-wallet.
    --password-file <arg>Позволяет использовать пароль в качестве файла, а не интерактивно. Конечные \n отбрасываются при считывании файла пароля.
    Если вы автоматизируете доступ к кошельку, то лучше использовать эту опцию, а не --password. Следует убедиться в том, что файл пароля надёжно отделён от файла кошелька. В противном случае опция не даст никаких преимуществ с точки зрения безопасности.
    Опция также работает в сочетании с --generate-new-wallet.

    Восстановление кошелька:

    ОпцияОписание
    --generate-from-device <arg>Восстановление/создание специального кошелька для аппаратного устройства, такого как Ledger или Trezor, и его сохранения в файле <arg>. Например:
    ./monero-wallet-cli --stagenet --generate-from-device MoneroExampleDeviceWallet --subaddress-lookahead 5:20
    Это одноразовое действие. В следующий раз вы просто откроете кошелёк.
    По умолчанию команда ожидает подсоединения устройства Ledger. В случае --hw-device Trezor (реализация ожидается примерно в мае 2019).
    При настройках, используемых по умолчанию, это занимает до 25 минут. Причина состоит в том, что аппаратные устройства медленно генерируют подадреса. Во избежание этого следует использовать --subaddress-lookahead 5:20.
    У локального кошелька не будет приватного ключа траты, и он не сможет самостоятельно тратить средства. Он служит пользовательским интерфейсом для аппаратных устройств малой мощности. Подписание транзакций публичным ключом траты всегда происходит на аппаратном устройстве. См. полное руководство по настройке аппаратного кошелька.
    --generate-from-view-key <arg>Восстановление версии кошелька, предназначенной только для просмотра, позволяющей отслеживать входящие транзакции, и её сохранение в файле <arg>. Кошелёк создаётся на основе секретного ключа просмотра и стандартного адреса. Секретный ключ просмотра вставляется в шестнадцатеричном формате.
    --generate-from-spend-key <arg>Восстановление кошелька на основе секретного ключа траты и его сохранение в файле <arg>. Секретный ключ траты вставляется в шестнадцатеричном формате.
    --restore-deterministic-walletВосстановление кошелька на основе секретной мнемонической фразы. Используется для восстановления с использованием зарезервированных 25 слов.
    Для шифровки самого файла кошелька (после восстановления) будет запрошен пароль. Мнемонические фразы, генерируемые кошельками Monero, являются открытыми.
    --restore-height <arg>Сканирование на наличие транзакций после определённой высоты блока. По умолчанию имеет нулевое значение. Увеличение этого значения делает восстановление кошелька гораздо более быстрым. Оптимальное значение должно соответствовать тому дню, когда был создан кошелёк (но не может быть более поздним). Соответствие высоты блока дате/времени можно определить при помощи блок-эксплореров, таких как https://xmrchain.net. Если кошелёк был создан, например, в 2019 году или позже, следует использовать высоту 1730000.

    Multisig кошелёк:

    ОпцияОписание
    --generate-from-multisig-keys <arg>Создание стандартного кошелька на основе multisig ключей. Полезно объединять все секретные multisig ключи в стандартном кошельке (когда у вас более нет необходимости в multisig). После этого кошелёк получает контроль над средствами. Он поддерживает все секретные ключи, даже если схема multisig позволяет меньшее (только N/N, но не N/M).
    --restore-multisig-walletВосстановление multisig кошелька на основе секретной мнемонической фразы, которая была ранее экспортирована при помощи интерактивной команды seed. Эта опция просто восстанавливает вашу часть кошелька. Другим участникам схемы multisig по-прежнему понадобится подписывать транзакции.

    Конфигурационный файл:

    ОпцияОписание
    --config-file <arg>Указывает полный путь к конфигурационному файлу. Следует отметить, что это должен быть отдельный конфигурационный файл, используемый monerod, поскольку эти инструменты принимают различные наборы опций.

    Рабочие параметры:

    ОпцияОписание
    --subaddress-lookahead <arg>Принимает значения m:n (по умолчанию 50:200). Первое значение указывает количество счетов, а второе — количество подадресов на счёт.
    Кошелёк не проверяет платежи, проходящие на подадреса, сверх значения n, начиная с последнего полученного платежа. Это может произойти, если вы создали уникальные подадреса для n клиентов, но ни на один из них не поступил платёж.
    С другой стороны, чем больше адресов вы указываете, тем больше времени займёт создание кошелька, поскольку их необходимо предварительно вычислить. Как правило, это не является проблемой, за исключением случаев использования аппаратных кошельков. При использовании Ledger и значении 50:200, используемом по умолчанию, это может занять 20 минут (только для создания кошелька)!
    --max-concurrency <arg>Максимальное количество используемых при работе потоков. При нулевом значении, заданном по умолчанию, используется общее количество потоков CPU.

    Локализация:

    ОпцияОписание
    --mnemonic-language <arg>Устанавливает язык для слов, входящих в мнемоническую фразу. Возможен выбор одного из языков: english, english_old, esperanto, french, german, italian, japanese, lojban, portuguese, russian, spanish.
    Возможно, лучше пользоваться английским, установленным по умолчанию, так как он является самым популярным и проверенным. Также это позволит избежать ошибок, связанных с использованием символов не в формате ASCII.
    --use-english-language-namesЕсли ваш дисплей зависает, выйдите «вслепую», используя ^C, а затем зайдите снова при помощи --use-english-language-names. Это может произойти, если Monero предлагает выбрать язык, отображая названия языков их родными алфавитами.

    Следующие опции либо являются унаследованными, либо редко используются.

    Унаследованные опции:

    ОпцияОписание
    --non-deterministicГенерирует унаследованный не детерминированный кошелёк. Ключ просмотра не выводится на основе ключа траты. Также вам придётся создать резервную копию .keys. Чтобы восстановить не детерминированный кошелёк (стандартный адрес), следует использовать --generate-from-keys. Чтобы восстановить всё полностью, понадобится файл .keys.
    --generate-from-keys <arg>Восстановление унаследованного не детерминированного кошелька путём предоставления ключей траты и просмотра, а также стандартного адреса.
    --shared-ringdb-dir <arg>Задаёт путь к общей базе данных колец. Использование опции более нецелесообразно.
    --create-address-fileНи на что не влияет. Файл *.address.txt создаётся независимо от этой опции.
    --electrum-seed <arg>Предлагает использовать мнемоническую фразу в качестве опции командной строки для —restore-deterministic-wallet, а не интерактивно. Не рекомендуется использовать, поскольку мнемоническая фраза сохранится в истории команд, а также будет видна в таблице процессов.
    --generate-from-json <arg>Для использования этой опции будет необходимо запустить monero-wallet-rpc. Кажется, эта опция появилась в monero-wallet-cli случайно.
    --tx-notify <arg>Для использования этой опции будет необходимо запустить monero-wallet-rpc. Кажется, эта опция появилась в monero-wallet-cli случайно.

    Параметры, установленные по умолчанию

    Файлы кошелька создаются и находятся в текущей директории. Едва ли это то, что вам нужно. Для того чтобы изменить ситуацию, следует использовать --wallet-file и подобные опции.

    Регистрационные файлы создаются в той же директории, что и двоичный файл monero-wallet-cli. Чтобы задать местоположение, следует использовать --log-file.

    Команды

    Команды вводятся интерактивно в командной строке monero-wallet-cli.

    Вы также можете использовать одноразовую команду, указав её в качестве параметра командной строки. Тем не менее этот вариант используется редко. Для автоматизации лучше использовать monero-wallet-rpc.

    CLI-кошелёк имеет встроенную помощь для отдельных команд. Мы не станем воспроизводить её. Вместо этого мы сфокусируемся на группировке команд, чтобы вы могли быстро найти то, что вам нужно. Воспользуйтесь help command_name, чтобы узнать больше.

    • Помощь и версия
    help – список всех команд

    help command_name
    – показать помощь по отдельной команде
    version – указание версии двоичного файла monero-wallet-cli​

    • Баланс
    account – общий баланс; список счетов с соответствующим балансом
    balance detail – список адресов для текущего счёта с соответствующим балансом​

    • Управление счетами
    account
    account new
    account switch
    account label

    • Управление адресами
    address all
    address new
    address label

    • Состояние сети
    status – показывает, синхронизирован ли кошелёк в соответствии с высотой блокчейна
    fee – показывает текущую комиссию за байт и пул памяти полного узла (журнал транзакций в зависимости от приоритета)
    wallet_info – показывает путь к файлу кошелька, стандартный адрес, тип и сеть​

    • Секретная мнемоническая фраза
    seed – показывает необработанную мнемоническую фразу
    encrypted_seed – создаёт мнемоническую фразу, зашифрованную фразой-паролем; вам придётся запомнить или сохранить фразу-пароль отдельно; без фразы-пароля восстановление будет невозможным​

    • Секретные ключи
    spendkey – показывает секретный ключ траты и публичный ключ траты
    viewkey – показывает секретный ключ просмотра и публичный ключ просмотра​

    • Доказательства
    get_reserve_proof -> check_reserve_proof – доказательство баланса
    get_spend_proof -> check_spend_proof – доказательство проведения вами платежа
    sign <file> -> verify <filename> <address> <signature> - доказательство владения адресом; позволяет проверить, был ли файл подписан владельцем определённого адреса Monero
    get_tx_proof -> check_tx_proof

    • Multisig
    Настройка:
    prepare_multisig
    make_multisig
    finalize_multisig
    Update
    export_multisig_info
    import_multisig_info

    Прочие:
    submit_multisig
    exchange_multisig_keys
    export_raw_multisig_tx

    • Приватный ключ транзакции
    Эти команды позволяют узнать и верифицировать приватный ключ транзакции r. Он был полезен для создания доказательства платежа, но был заменён на get_spend_proof.
    get_tx_key <txid>
    check_tx_key <txid> <txkey> <address>
    set_tx_key <txid> <tx_key>

    • Продвинутые
    unspent_outputs – показывает список и гистограмму непотраченных выходов (неделимых частей вашего баланса)
    export_key_images <file> -> import_key_images <file> – используется, чтобы проинформировать кошелёк, предназначенный только для просмотра, о происходящих транзакциях, чтобы он мог вычислить реальный баланс; как правило, кошелькам, предназначенным только для просмотра, известно только о входящих транзакциях, но не об исходящих
    export_outputs <file> – экспортирует набор выходов, которыми владеет данный кошелёк, в <file>​

    • Майнинг
    start_mining
    stop_mining

    • Пожертвования
    donate <amount> – пожертвовать команде разработчиков
    • Не имеющие особого значения или унаследованные
    address_book [(add ((<address> [pid <id>])|<integrated address>) [<description possibly with whitespaces>])|(delete <index>)]
    set_description [free text note]
    -> get_description – удобное для управления описание кошелька (информация является локальной)
    save – сейчас это происходит автоматически
    save_bc – сейчас это происходит автоматически
    bc_height – показывает высоту блокчейна (заменена на status)
    sweep_unmixable – относится только к очень старым кошелькам (до 2016); отправляет все несмешиваемые выходы вам же при размере кольца, равном 10​

    Данный материал находиться в процессе написания и дополнения. Спасибо за понимание!

    Источник: monero-wallet-cli

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
    #1 Mr. Pickles, 12 дек 2019
    Последнее редактирование: 20 дек 2019
  • О нас

    Наш сайт является одним из уникальных мест, где русскоязычное сообщество Monero может свободно общаться на темы, связанные с этой криптовалютой. Мы стараемся публиковать полезные мануалы и статьи (как собственные, так и переводы с английского) о криптовалюте Monero. Если вы хорошо владеете английским (или можете писать собственные статьи/мануалы) и хотите помочь в переводах и общем развитии Monero для русскоязычной аудитории - свяжитесь с одним из администраторов.