Ниже нами приводится пример конфигурации, позволяющей запустить демон Monero (например, на домашнем сервере или VPS), к которому вы могли бы подсоединиться с другого компьютера, на котором будет запущен ваш кошелёк. Для получения информации транзакций, необходимой для вашего кошелька, мы используем анонимную сеть Tor. Преимущество данного подхода заключается том, что демон (monerod
) может постоянно осуществлять передачу/приём блоков, в то время как кошелёк будет подсоединяться по необходимости и иметь доступ к полному блокчейну. Monerujo также должен работать через Orbot. Поскольку скрытые службы Tor обеспечивают возможность шифрования и аутентификации, вы можете быть уверены в том, что ваши данные RPC не будут передаваться в открытую. Tor также решает проблемы, зачастую характерные для домашних серверов и связанные с пробросом портов, изменением IP-адресов и т. д. Всё это просто работает. Данная настройка также позволит скрыть тот факт, что вы подсоединяетесь к удалённому узлу Monero. Она была протестирована с версией Monero v0.15.0.1
В ходе тестирования кошелёк, установленный на ноутбук Mac, соединялся с удалённым узлом Linux (Ubuntu 18.04.2).
Убедитесь в том, что Tor установлен и работает надлежащим образом. После этого можно двигаться дальше.
Необходимо только конфигурировать сервер RPC так, чтобы он использовал скрытую службу на порте 18081
.
Файл: /etc/torrc
HiddenServiceDir /var/lib/tor/monero-service/
HiddenServicePort 18081 127.0.0.1:18081
Перезапустите Tor:
sudo systemctl restart tor@default
Убедитесь в том, что Tor запустился правильно:
sudo systemctl status tor@default.service
Если всё хорошо, отметьте название скрытой службы (луковый адрес):
sudo cat /var/lib/tor/monero-service/hostname
Он будет выглядеть примерно так: like 4dcj312uxag2r6ye.onion – Используйте его для HIDDEN_SERVICE
ниже.
В этом примере мы не используем Tor для взаимодействия с p2p сетью, а просто соединяемся с узлом Monero, поэтому нам необходима только скрытая служба RPC.
Файл: ~/.bitmonero/bitmonero.conf
(в домашней директории пользователя Monero)
no-igd=1
restricted-rpc=1
rpc-login=USERNAME:PASSWORD
(Чтобы использовать RPC придумайте ИМЯ ПОЛЬЗОВАТЕЛЯ (USERNAME) и ПАРОЛЬ (PASSWORD))
Перезапустите демон: monerod stop_daemon; sleep 10; monerod --detach
Убедитесь в том, что демон запустился правильно:
tail -f ~/.bitmonero/bitmonero.log
Убедитесь в том, что Tor работает локально, после чего можно подсоединиться к сети Tor. Одним из простых способов, в случае с Mac, является простой запуск браузера Tor и использование демона Tor.
Затем следует протестировать простую команду RPC, например:
curl --socks5-hostname 127.0.0.1:9150 -u USERNAME:PASSWORD --digest -X POST http://HIDDEN_SERVICE.onion:18081/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' -H 'Content-Type: application/json'
Замените USERNAME
, PASSWORD
, и HIDDEN_SERVICE
значениями, указанными выше. Измените порт 9150
если того потребует ваш локальный демон Tor.
Когда выполняется команда, и если всё работает надлежащим образом, вы должны получить некоторую информацию об удалённом демоне. Если это не так, следует добавить ` -v ` в начале и попытаться выяснить, почему соединение отсутствует, проверить средства сетевой защиты (firewall), правильность пароля и т. д.
Как только всё заработает, можно подсоединяться, используя свой CLI-кошелёк:
./monero-wallet-cli --proxy 127.0.0.1:9150 --daemon-host HIDDEN_SERVICE.onion --trusted-daemon --daemon-login USERNAME:PASSWORD --wallet-file ~/PATH/TO/YOUR/WALLET
По необходимости можно заменить значения, указанные выше.
Если вам хочется поэкспериментировать с соединением GUI через Tor, вы можете попытаться воспользоваться torsocks
(следует отметить, что это может привести к утечке информации — не стоит особо полагаться на этот вариант, если от вашей анонимности будет зависеть ваша жизнь). Мы приводим пример для MacOS, который при необходимости можно адаптировать по Linux GUI:
torsocks --port 9150 /Applications/monero-wallet-gui.app/Contents/MacOS/monero-wallet-gui
Это позволит GUI связаться с сетью Tor. Как только будет открыт GUI и кошелёк будет запущен, будет необходимо конфигурировать его для соединения с вашей скрытой службой Tor, добавив соответствующий луковый адрес: "Settings > Node > Remote node > Address".
Мы надеемся, что в следующих версиях GUI будет добавлена прямая поддержка Tor / I2P, и необходимость в использовании командной строки и torsocks
отпадёт.