Мультиподписи Monero только кажутся страшными. Чтобы показать, насколько быстро они создаются, я воспользуюсь отрывком из соответствующего руководства пользователя и на его основе создам собственное, пожалуй, самое краткое руководство по мультиподписям Monero. Установка и конфигурирование PyBitmessage Представим, что протокол Bitmessage — это чат-рум, где ваши клиенты Monero собираются, чтобы обменяться информацией, необходимой для каждого последующего шага. Мы настраиваем её как демон, который сможет использовать monero-wallet-cli. Код: # Install required applications (example for Arch Linux) sudo pacman -S python2 openssl git # Download PyBitmessage git clone https://github.com/Bitmessage/PyBitmessage.git cd PyBitmessage # Check if core dependencies are met. # You may disregard any warnings about missing Qt. python2 checkdeps.py # Install PyBitmessage python2 setup.py install --user # Execute PyBitmessage once to generate config files python2 ~/.local/bin/pybitmessage -h # Enable daemon mode and disable Dandelion [ -z $XDG_CONFIG_HOME ] && XDG_CONFIG_HOME="$HOME/.config" echo 'daemon = true\n[network]\ndandelion = 0' >> ${XDG_CONFIG_HOME}/PyBitmessage/keys.dat # Execute PyBitmessage python2 ~/.local/bin/pybitmessage # Generate your Bitmessage address python_code='import xmlrpclib, json, time ; api = xmlrpclib.ServerProxy("http://username:password@localhost:8442/") ; print api.createRandomAddress("")' transport_address=`echo ${python_code} | python2` echo ${transport_address} Придерживаясь вышеупомянутой аналогии с чат-румом, ваш транспортный адрес можно рассматривать в качестве псевдонима, которым вы пользуетесь в чате Bitmessage. Нашим следующим шагом является раскрытие этого псевдонима клиенту Monero. Настройка multisig-кошелька (клиент Monero со стороны Элис) В случае с monero-wallet-cli используются следующие команды. Снижение уровня интерактивности monero-wallet-cli Код: set ask-password 0 set inactivity-lock-timeout 0 Инициализация multisig Укажите необходимый вам тип мультиподписи и назовите дополнительных подписантов. Код: mms init 2/2 alice PUT_ALICES_TRANSPORT_ADDRESS_HERE mms set auto-send 1 mms signer 2 bob mms start_auto_config После ввода последней команды вы увидите токен в формате mmsXXXXXXXX. Необходимо передать этот токен Бобу. Он понадобится ему на следующем этапе. Настройка multisig-кошелька (со стороны Боба) Как и Элис, Бобу необходимо настроить PyBitmessage (см. выше), а затем создать Bitmessage адрес: Код: python_code='import xmlrpclib, json, time ; api = xmlrpclib.ServerProxy("http://username:password@localhost:8442/") ; print api.createRandomAddress("")' echo ${python_code} | python2 Снижение уровня интерактивности клиента Monero со стороны Боба Код: set ask-password 0 set inactivity-lock-timeout 0 Инициализация multisig со стороны Боба Необходимо использовать следующие команды, вставив правильный адрес Боба и заменив mmsXXXXXXXX на токен, полученный от Элис. Код: mms init 2/2 bob PUT_BOBS_TRANSPORT_ADDRESS_HERE mms set auto-send 1 mms auto_config mmsXXXXXXXX Элис: отправка необходимых данных подписантам посредством Bitmessage Как только MMS получит новое сообщение на клиент Monero Элис, следует дважды ввести команду mms next: Код: mms next mms next После первой команды будут отправлены данные конфигурации подписанта, а после второй — набор ключей. Боб: отправка необходимых данных посредством Bitmessage Как только MMS получит новое сообщение на клиент Monero Боба, следует трижды ввести команду mms next: Код: mms next mms next mms next После первой команды будут обработаны данные конфигурации подписанта, после второй — отправлен набор ключей, а после третьей команды будет завершено создание multisig-адреса для Боба. Элис: отправка необходимых данных подписантам посредством Bitmessage Необходимо ещё раз ввести mms next: Код: mms next Ввод этой команды завершит создание multisig-адреса для Элис. Ваша первая multisig-транзакция Теперь отображаемый адрес Monero должен поменяться на новый, который будет одинаковым для клиентов Боба и Элис. Как только на этот счёт поступят какие-либо средства (то есть как только вы положите на него сколько-нибудь XMR), вы сможете отправлять средства другим пользователям. Для запуска передачи следует использовать команду mms transfer RECIPIENT_ADDRESS AMOUNT. Затем с обеих сторон необходимо вводить команду mms next до тех пор, пока команда не обозначит, что уже больше ничего делать не требуется. Следует отметить, что доставка сообщений Bitmessage обычно задерживается на несколько минут. Если произойдёт «затор», следует использовать команду mms list, которая покажет, должно ли на этом этапе прийти очередное сообщение. Источник: Monero Multisig Run-Through: Zero-to-MMS in an instant Перевод: Mr. Pickles (@v1docq47) Редактирование: Agent LvM (@LvMi4) Коррекция: Kukima (@Kukima)