Skip to content

Latest commit

 

History

History
165 lines (114 loc) · 13 KB

README_RU.md

File metadata and controls

165 lines (114 loc) · 13 KB

XMR WASP

XMR WASP это Websocket и(And) Stratum прокси(Proxy) для манинга Monero (XMR). Он принимает соединения от майнеров через websocket и обычные TCP сокеты используя monero stratum протокол. Написан на Go и частично вдохновлен XMRig-Proxy.

Цели

  • Запуск майнинга в браузере сознательным путем
  • Просвящать владельцев сайта и пользователей майнингу в браузере через пример сайта, который использует данный проект в качестве прокси.

Особенности

  • Легко использовать - просто сконфигурируйте и запустите бинарный файл.
  • Нет зависимостей.
  • Конфигурирование как через окружение ОС так и через JSON файл.
  • Низкие системные накладные расходы на каждое соединение.
  • Работает с большинством майнеров, включая браузерные майнеры!
  • Снижает загрузку пула используя одно соединения на много майнеров.
  • Выпущены сборки для многих платформ(не все тщательно протестированны)

Установка

Загрузка

Бинарные выпуски доступны для большинства платформ

Желательно разместить в папке, определенной в переменной окружения PATH вашей системы.

Установка с помощью Go Toolchain

Пока вы не передадите флаг -d, go get также установит и пакет.

go get github.com/trey-jones/xmrwasp

Получить образ Docker

docker pull treyjones/xmrwasp

Использование

Бинарные выпуски.

Для использования XMR WASP просто запустите бинарный файл как в примерах(unix):

Использование JSON файла конфигурации

xmrwasp -c example/example.config.json &

Настройка через окружение во время выполнения

XMRWASP_URL='xmrpool.eu:3333' \
XMRWASP_LOGIN='47sfBPDL9qbDuF5stdrE8C6gVQXf15SeTN4BNxBZ3Ahs6LTayo2Kia2YES7MeN5FU7MKUrWAYPhmeFUYQ3v4JBAvKSPjigi.250+env_example' \
XMRWASP_PASSWORD='x' \
xmrwasp

Для запуска в фоновом режиме и записи журнала в файл, вместо вывода в stdout:

XMRWASP_URL='xmrpool.eu:3333' \
XMRWASP_LOGIN='47sfBPDL9qbDuF5stdrE8C6gVQXf15SeTN4BNxBZ3Ahs6LTayo2Kia2YES7MeN5FU7MKUrWAYPhmeFUYQ3v4JBAvKSPjigi.250+env_example' \
XMRWASP_PASSWORD='x' \
XMRWASP_LOG='xmrwasp.log' \
xmrwasp &
tail -f xmrwasp.log

Docker

Настройка через окружение

docker run --rm -e 'XMRWASP_URL=xmrpool.eu:3333' \
    -e 'XMRWASP_LOGIN=47sfBPDL9qbDuF5stdrE8C6gVQXf15SeTN4BNxBZ3Ahs6LTayo2Kia2YES7MeN5FU7MKUrWAYPhmeFUYQ3v4JBAvKSPjigi.250+env_example' \
    -e 'XMRWASP_PASSWORD=x' \
    treyjones/xmrwasp

Настройка через файл конфигурации

docker run --rm -v $(pwd)/example.config.json:/config/config.json \
    treyjones/xmrwasp -c config.json

Запуск примера с docker-compose

cd example
docker-compose up

Настройка

Настройка может быть выполнена через переменные окружения или через вызов xmrwasp с флагом -c, в который передать путь к JSON файлу конфигурации.

Необходимые параметры конфигурации

Окружение JSON Описание
XMRWASP_URL url Адрес майнингового пула, к которому вы подключитесь. Без указания протокола.
XMRWASP_LOGIN login Логин (обычно адрес monero кошелька) используется для подключения к майнинговому пулу.
XMRWASP_PASSWORD password Пароль используется для подключения к майнинговому пулу.

Все параметры конфигурации

Окружение JSON Значение по умолчанию Описание
XMRWASP_NOWEB noweb false Не работать с websocket соединениями.
XMRWASP_NOTCP notcp true Не работать с stratum+tcp соединениями.
XMRWASP_WSPORT wsport 8080 Порт для websocket соединений.
XMRWASP_STRPORT strport 1111 Порт для stratum+tcp соединений.
XMRWASP_WSS wss false Если true, пробовать обрабатывать websocket соединения с TLS шифрованием.
XMRWASP_TLSCERT tlscert "" Путь к файлу сертификата TLS. Необходим если wss = true
XMRWASP_TLSKEY tlscert "" Путь к закрытому ключу, который использовался для создания вышеуказанного сертификата. Необходим если wss = true
XMRWASP_STATS stats 60 XMR WASP будет печатать отчет в журнал с этим интервалом (в секундах)
XMRWASP_LOG log STDOUT Путь к файлу журнала. При необходимости будет создан. Имеет приоритет над nolog
XMRWASP_NOLOG nolog false Если true, не будет сгенерированого никакого журнала и вывода в STDOUT.
XMRWASP_DONATE donate 2 Процент времени майнинга на сервер пожертвований.
XMRWASP_DEBUG debug false Вывод отладочных сообщений в журнал.

Совместимость

В примере используется CryptoNoter в качестве браузерного майнера. Поскольку майнер Monero в этой библиотеке взят напрямую из CoinHive, последний тоже можно использовать. Если есть другие браузерные майнеры, для которых вы хотите совместимость, можете создать issue здесь и я сделаю все возможное чтобы он заработал.

То же самое касается другого ПО для майнинга. Большинство майнеров, которые могут подключиться к stratum майнинговому пулу, смогут подключиться и к этому прокси, кроме Claymore, на данный момент. Этот прокси также может подключаться к другому экземпляру самого себя, таким образом работает пожертвование. Если у вас есть проблемы совместимости, дайте мне знать!

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

Слово об ответственности

Одна из основных особенностей этой части программного обеспечения связана с возможностью использования майнинга Monero в браузере. Автор этого проекта верит, что браузерный майнинг может быть взаимовыгодным(win-win). Даже троекратновыгодным(win-win-win) (пользователи, владельцы сайтов, и blockchain). Пользователи могут выйграть избавлясь от рекламы, если браузерный майнинг окажется достаточно прибыльным для того чтобы владелец сайта остался на плаву. Но они также могут проиграть и очень сильно, если владелец сайта не проявляет некоторую сдержанность в отношении этой возможности. Вот несколько вещей, которые вы, как владелец сайта, возможно знаете, но можете забыть от соблазна получить несколько дополнительных Moneroj:

  • Не используйте майнинг на мобильных устройствах, чтобы не уничтожить их аккумулятор и возможность просматривать ваш сайт.
  • Не используйте майнинг не рассказав вашим пользователям о том что вы делаете это.
  • Сообщите своим пользователям учавствуют ли они в майнинге и насколько.
  • Установление ограничений браузерному майнеру это хорошая идея для всех.

Roadmap

  • максимальный lifetime соединения и возможный spindown
  • Web Интерфейс, отображающий текущее состояние и историю
  • Настройка нескольких пулов для отказоустойчивости
  • Улучшения производительности: более быстрое освобождение памяти на сломанных соединениях
  • Отзывы пользователей?
  • Поддержка TLS для stratum + tcp
  • Просто тонны мелочей, которые могли бы быть лучше
  • Linux package manager repositories?

Поддержка этого проекта

Проект имеет встроенный механизм пожертвований. По умолчанию жертвуется 1 минута 12 секунд (donate=2) каждый час. Это происходит без прерывания подключений к вашему пулу. Это может быть снижено настройкой до 36 секунд (donate=1) каждый час. Или увеличено если вы чувствуете себя щедрым. Экономные пользователи конечно могут обнаружить, что можно отключить механизм пожертвований. Если вы так поступаете, расмотрите одноразовое пожертвование.

  • Monero: 47sfBPDL9qbDuF5stdrE8C6gVQXf15SeTN4BNxBZ3Ahs6LTayo2Kia2YES7MeN5FU7MKUrWAYPhmeFUYQ3v4JBAvKSPjigi
  • Bitcoin: 1NwemnZSLhJLnNUbzXvER6yNX55pv9tAcv

Поддрежка через разработку

Я с удовольствием рассмотрю любые запросы на изменение, которые придут мне на ум. В частности, если хотите, можете взять один из следующих типов элементов, которые не очень хорошо соответствуют моему набору навыков и интересов:

  • Сделать приложение пример более привлекательным
  • Создание приятно выглядещей панели управления для будущего веб-интерфейса
  • Создание нереально крутого логотипа\эмблемы для представления проекта.
  • Улучшение ввывода журнала.
  • Тестирование под Windows