Настройка XMRig-Proxy — Майнеры — HashVault Mining Pool
XMRig-Proxy — stratum proxy сервер, который позволяет объединить группу воркеров в единую экосистему, чтобы снизить нагрузку на сервера пула и в большинстве случаев немного увеличить доходность и удобство управления майнерами. Прокси возможно запустить как на выделенном компьютере, так и на арендованном сервере с минимальной возможной конфигурацией (1028 Mb ОЗУ, накопитель на размер операционной системы +20%, выделенный внешний IP адрес). Сам XMRig-Proxy написан на C++/libuv, так же как и XMRig.
Скачать можно в официальном репозитории на GitHub.
Принцип настройки не отличается от xmrig, но в конфигурацию необходимо добавить опцию -b, —bind в которой указать IP адрес и порт, на который Ваши воркеры будут слать задания, либо воспользоваться одним из примеров, который будет «слушать» порт 3333 на всех доступных интерфейсах сервера.
Алгоритм RandomX:Monero
xmrig-proxy -o pool.hashvault.pro:80 -u myWalletAddress -p MySuperRig -k -b 0.0.0.0:3333
WoWnero(Собственный вариант алгоритма)
xmrig-proxy -o pool.hashvault.pro:80 -u myWalletAddress -p MySuperRig -k -b 0.0.0.0:3333Алгоритм Cryptonight-R:
Sumokoin
xmrig-proxy.exe -o pool.hashvault.pro:80 -u myWalletAddress -p MySuperRig -k --donate-level=1 -b 0.0.0.0:3333
Lethean coin
xmrig-proxy.exe -o pool.hashvault.pro:80 -u myWalletAddress -p MySuperRig -k --donate-level=1 -b 0.0.0.0:3333Алгоритм Cryptonight-V2:
Graft(Собственный вариант алгоритма)
xmrig-proxy.exe -o pool.hashvault.pro:80 -u myWalletAddress -p MySuperRig -k -b 0.0.0.0:3333
Masari(Собственный вариант алгоритма)
xmrig-proxy.exe -o pool.hashvault.pro:80 -u myWalletAddress -p MySuperRig -k -b 0.0.0.0:3333Алгоритм Argon2d:
Turtle coin (Собственный вариант алгоритма)
xmrig-proxy.exe -o pool.hashvault.Алгоритм Cryptonight-GPU:pro:80 -u myWalletAddress -p MySuperRig -k -b 0.0.0.0:3333
Ryo
xmrig-proxy.exe -o pool.hashvault.pro:80 -u myWalletAddress -p MySuperRig -k --donate-level=1 -b 0.0.0.0:3333
Equilibria
xmrig-proxy.exe -o pool.hashvault.pro:80 -u myWalletAddress -p MySuperRig -k --donate-level=1 -b 0.0.0.0:3333
Haven(Собственный вариант алгоритма)
xmrig-proxy.exe -o pool.hashvault.pro:80 -u myWalletAddress -p MySuperRig -k --donate-level=1 -b 0.0.0.0:3333
ВНИМАНИЕ! Для корректной работы в настройках воркеров необходимо включать поддержку nicehash (опции —nicehash для XMRig и —use-nicehash для XMR-Stak. Для Cast-XMR дополнительных настроек не требуется).
А в воркерах, соответственно, необходимо указать алгоритм, IP-адрес и порт Вашего XMRig-Proxy. Кошелёк, пароль указывать в воркерах в данном случае не обязательно, так как эти данные будут использоваться из настроек
Отсутствует поддержка RandomX — JerryStratumProxy-XMR
Jerry, здравствуйте! Есть несколько вопросов по поводу вашей программы Stratum Proxy.Что хочу сделать — настроить solo майнинг аглоритма Cryptonight при помощи GPU.
ОС: Win10.
Майнер — Claymore 10.2.
Что было сделано. Установлен Forknote с нодом одной из криптовалют на алгоритме Cryptonight (BIPcoin). Запущен локальный кошелек в режиме сервера.
Установлен Stratum Proxy v1.2.2-beta.2.
Настройки config.json
{
stratum_servers: [
{
bind_address: «127.0.0.1:7777»,
share_time: 60,
start_difficulty: 96000,
min_difficulty: 96000,
ssl: false,
},
{
bind_address: «0.0.0.0:1443»,
share_time: 120,
start_difficulty: 10000,
min_difficulty: 10000,
ssl: true,
/**
ssl_options: {
key: «./path-to-key.pem»,
cert: «./path-to-cert.pem»,
}
*/
},
],
web_server: {
// enable
enable: true,
// bind web server address
bind_address: «0. 0.0.0:18872″,
// secret key
auth_key: «номер_кошелька«,
// open browser
open_browser: false,
},
Настройка файла config.txt Claymore
-xpool 127.0.0.1:7777
-xwal номер_кошелька
-xpsw пароль_кошелька
-allpools 1
Клеймор заработал. Начал искать шары, но в кошелек ничего не поступает.
Данные из лога Клеймора при майнинге с локального кошелька:
00:38:16:321 1fc4 XMR: 03/13/18-00:38:16 — New job from 127.0.0.1:7777
00:38:16:331 1fc4 target: 0x0000aec3 (diff: 96000H)
00:38:16:343 1fc4 XMR — Total Speed: 3982 H/s, Total Shares: 0, Rejected: 0, Time: 00:00
00:38:16:355 1fc4 XMR: GPU0 810 H/s, GPU1 775 H/s, GPU2 788 H/s, GPU3 809 H/s, GPU4 800 H/s
00:38:16:810 1e20 Job changed, drop current round
…
00:38:17:714 16d8 Job changed, drop current round
00:38:25:242 618 em hbt: 0, fm hbt: 47,
00:38:25:252 618 watchdog — thread 0, hb time 672
.

00:38:25:383 618 watchdog — thread 19, hb time 8297
00:38:35:954 c5c XMR: put share nonce 1c18f
00:38:35:961 c5c XMR round found 1 shares
00:38:36:253 1fc4 got 315 bytes
00:38:36:274 1fc4 buf: {«error»:null,»method»:»job»,»params»:{«job_id»:»b1682d52cebe63e3017db60749cf57877d4bfa75f328c3b61ea716303a095bee»,»target»:»c3ae0000″,»blob»:»04c0c09729b29ffd0bd5f119b7c25b261cfb15baf95d833c6c0e1bdaa96e65a826877d593b8958000000002c3b83e1a7574550a4af94d483d6ed8f9e7b7a4b5b2809f015aed01949dc6413dd»},»jsonrpc»:»2.0″}
00:38:36:287 1fc4 parse packet: 314
00:38:36:297 1fc4 new buf size: 0
…
00:38:44:272 1fc4 XMR: 03/13/18-00:38:44 — SHARE FOUND — (GPU 4)
00:38:44:279 1fc4 send: {«method»: «submit», «params»: {«id»: «wid5», «job_id»: «b1682d52cebe63e3017db60749cf57877d4bfa75f328c3b61ea716303a095bee», «nonce»: «647e0000», «result»: «10fdf5e5d9416af2f945b03447ba1f59753c35b3dad5b6e4fae35a2d166d0000»}, «id»:4}
00:38:44:287 1fc4 got 63 bytes
00:38:44:294 1fc4 buf: {«id»:4,»result»:{«status»:»OK»},»error»:null,»jsonrpc»:»2.
Данные из лога Клеймора при майнинге через пул:
00:54:10:798 e08 XMR: 03/13/18-00:54:10 — New job from bip.ms-pool.net.ua:7777
00:54:10:806 e08 target: 0x0000aec3 (diff: 96000H)
00:54:10:814 e08 XMR — Total Speed: 4041 H/s, Total Shares: 0, Rejected: 0, Time: 00:00
00:54:10:820 e08 XMR: GPU0 806 H/s, GPU1 795 H/s, GPU2 814 H/s, GPU3 810 H/s, GPU4 816 H/s
00:54:11:456 1140 Job changed, drop current round
…
00:54:12:128 f4c Job changed, drop current round
00:54:42:486 aac em hbt: 0, fm hbt: 62,
00:54:42:493 aac watchdog — thread 0, hb time 1594
…
00:54:42:611 aac watchdog — thread 19, hb time 8422
00:54:47:734 d00 XMR: put share nonce 227cd
00:54:47:740 d00 XMR round found 1 shares
00:54:47:746 e08 XMR: 03/13/18-00:54:47 — SHARE FOUND — (GPU 0)
00:54:47:752 e08 send: {«method»: «submit», «params»: {«id»: «586211115447804», «job_id»: «923911403538659», «nonce»: «cd270200», «result»: «392b3765ae5c7c25cb6de5788c5364f83d095eb40c02e6526fbcf31f855b0000»}, «id»:4}
00:54:47:894 e08 got 63 bytes
00:54:47:913 e08 buf: {«id»:4,»jsonrpc»:»2.
00:54:47:944 e08 parse packet: 62
В окне Stratum Proxy выводит следующее (майнер запускал несколько раз через локальный кошелек, пул, поэтому идут вообщения с ERROR):
[2018-3-13 00:15:16] [APP] [SUCCESS] Web server is powered on
[2018-3-13 00:15:16] [APP] [WEB-SERVER] [NOTICE] Attempting opened server on «0.0.0.0:18872»
[2018-3-13 00:15:16] [APP] [STRATUM-PROXY] [STRATUM-SERVER #1] [NOTICE] Attempting opened server on [SSL OFF] «127.0.0.1:7777»
[2018-3-13 00:15:16] [APP] [STRATUM-PROXY] [STRATUM-SERVER #2] [NOTICE] Attempting opened server on [SSL ON] «0.0.0.0:1443»
[2018-3-13 00:15:16] [APP] [WEB-SERVER] [SUCCESS] Opened server on «0.0.0.0:18872»
[2018-3-13 00:15:16] [APP] [STRATUM-PROXY] [STRATUM-SERVER #1] [SUCCESS] Opened server on [SSL OFF] «127.0.0.1:7777»
[2018-3-13 00:15:16] [APP] [STRATUM-PROXY] [STRATUM-SERVER #2] [SUCCESS] Opened server on [SSL ON] «0.

[2018-3-13 00:15:44] [APP] [STRATUM-PROXY] [STRATUM-SERVER #1] [WORKER #3] [NOTICE] Accepted worker
[2018-3-13 00:15:44] [APP] [STRATUM-PROXY] [STRATUM-SERVER #1] [WORKER #3] [SUCCESS] 127.0.0.1:49950 / xmr/1.0…
[2018-3-13 00:33:53] [APP] [STRATUM-PROXY] [STRATUM-SERVER #1] [WORKER #3] [NOTICE] Disconnected…
[2018-3-13 00:35:01] [APP] [STRATUM-PROXY] [STRATUM-SERVER #1] [WORKER #4] [NOTICE] Accepted worker
[2018-3-13 00:35:01] [APP] [STRATUM-PROXY] [STRATUM-SERVER #1] [WORKER #4] [SUCCESS] 127.0.0.1:49979 / xmr/1.0…
Вопрос №1 — где ошибка в настройках, как решить проблему с начислением вознаграждения на кошелек?
Вопрос №2 — какое значение должен иметь параметр share_time? Это время блока?
Ethash stratum proxy server | MiningClub.info
к сожалению, да.не, там такого точно нет, как хочет тс

попробую показать на примере XMRIG-proxy, Спойлер: но сначала предысториявот это как и где вообще работает?
До взлома найса в 17м я, как и большинство впервые попробовавших быстро «добыть» битки, часто замечал, как ноуты не успевали за 10 мин родить ни одной шары на гигантской для них сложности, и найс их кикал, а они продолжали вхолостую жрать эл-во). Когда найс отвалился, надо было утилизировать простаивающие ресурсы, а т.к. тогда все ноуты только монеро и добывали (причем некоторые на GPU тоже), то решил освоить стратум-прокси-сервер для XMR. Оказалось, управлять кучей воркеров стало гораздо удобнее: единожды настроил, и потом менять конфиг только на самой проксе.
Есть 2 старых ноута, каждый из которых по отдельности (особенно один из них, который в 1,5 раза слабее другого) не очень бы резво успевал рожать шары на сложности 100к. Им я задал сложности 10к и 20к через прокси, который, соответственно, подключен к обычному пулу (апстриму) и получающий с него работу минимум на сложности 100к.
На скринах видно, что сначала воркеры бомбят (accepted) легкими шарами по 10к и 20к на низких сложностях проксю, которая их «агрегирует» в одну тяжелую шару, которую затем отправляет (submit) на апстрим (100к). Со стороны пула это выглядит, как один воркер, работающий на сложности 100к (режим nicehash) и с объединенным хэшрейтом всех реальных воркеров, подключенных к прокси. Причем есть возможность по очереди ребутать воркеры без разрыва коннекта и потери выплаты на пуле PPLNS (не уверен, влияет ли кратковременная потеря хэшрейта при этом, но всяко лучше, чем реконнект).
Еще на скринах видно, что локальные «холостые» шары прилетают с пингом в районе 1мс (чуть выше — один из ноутов по wifi), тогда как реально учитываются шары, показанные с задержкой более 40 мс (пинг до пула).

Такая вот задача: хочу то же самое под винду, но теперь для алгоритма ethash! Полезно, у кого куча слабых воркеров и/или кому хочется свой собственной централизации и удобства управления (да и трафик в инет может экономить: ведь вместо кучи будет только один воркер, если удастся сделать как найс-пул).
Кстати, в xmrig-proxy есть 2 режима: про первый, nicehash, я уже описал (классическая прокся «многие в один»), но есть и «простой режим», где просто трафик редиректится с воркеров на пул, а шары только на сложности пула (не решает основной задачи топика, т.к. та же куча коннектов, как если бы каждый воркер шел отдельно; плюс — только унификация настроек).
p.s. изучал вопрос по сложности и на практике, пришел к выводу, что оптимально раз в 15-30 сек чтобы шара находилась (хотя, вероятно, если пул сыпет джобами, то лучше для клиента успевать находить все шары, но хуже для пула из-за доп. нагрузок и трафика). И при росте сложности, как всем понятно, шары просто не успевают находиться, и все вхолостую.

Да и если инет не стабилен и в момент нахождения шары будет потеря пакетов, не исключено, что она дойдет слишком поздно (если вообще дойдет).
Спойлер: скрины
Deploy Stratum Proxy for MPOS mining pool server, post complete work to Github | Linux | PHP | Архитектура ПО | Системное администрирование | Ubuntu
If bid hourly, I expect a defined time budget.
Running MPOS instance needs a few key tasks.
1. Verify and update current project build documentation
2. Prepare sources to upload to Github as OSS
3. Install and configure Stratum Proxy on MPOS for eth, zec, xmr, btc, ltc, dash. You will have to identify the appropriate Stratum Proxy package to use. There is one integrated into MPOS that may or may not work.
4. Document all steps, create video with all steps
[login to view URL]
Навыки: Linux, PHP, Архитектура ПО, Системное администрирование, Ubuntu
Показать больше: stratum mining pool, mysql load balancing cluster mpos crypto mining pool, mpos mining pool, setup mining pool server, mpos mining pool setup, mpos setup mining pool, bitcoin mining pool server setup, bitcoin setup server mining pool, mining pool server setup, script mining pool server, mining pool server, bitcoin mining pool server, mining pool server linux, setup setup proxy server post, proxy server post
( 1 отзыв ) Stratford, United StatesID проекта: #17084594
xmrig / xmrig-proxy: Monero (XMR) прокси-сервер Stratum
Чрезвычайно высокопроизводительный прокси-сервер протокола Monero (XMR) Stratum, может легко обрабатывать более 100 тыс. Соединений на дешевой виртуальной машине за 5 долларов (1024 МБ). Уменьшите количество подключений к пулу до 256 раз, 100 тыс. Рабочих превращаются в 391 работника на стороне пула. Написан на C ++ / libuv так же, как XMRig miner.
Совместимость
⚠️⚠️⚠️ Поддержка Nicehash должна быть включена на стороне майнера, это обязательно. ⚠️⚠️⚠️
- Совместим с любыми пулами Monero, Electroneum, Sumokoin и AEON, кроме nicehash.com .
- Любой майнер с поддержкой nicehash,
--nicehash
опция для XMRig,"nicehash_nonce": true,
для xmr-stak-cpu. - Сравнение с другими прокси.
Почему?
Этот прокси разработан и создан для обработки трафика пожертвований от XMRig. Ни одно другое решение не работает нормально с высокой скоростью подключения / отключения.
Скачать
Использование
💥 Если вы используете Linux и хотите обрабатывать более 1000 подключений , вам необходимо увеличить лимит открытых файлов.
Используйте config.xmrig.com для создания, редактирования или обмена конфигурациями.
Опции
Сеть:
-o, --url = URL-адрес сервера майнинга
-a, --algo = алгоритм майнинга ALGO https://xmrig.com/docs/algorithms
--coin = COIN указать монету вместо алгоритма
-u, --user = ИМЯ ПОЛЬЗОВАТЕЛЯ имя пользователя для сервера майнинга
-p, --pass = ПАРОЛЬ пароль для сервера майнинга
-O, --userpass = U: P имя пользователя: пара паролей для сервера майнинга
-x, --proxy = HOST: ПОРТ подключается через прокси-сервер SOCKS5
-k, --keepalive отправить пакет keepalived для предотвращения тайм-аута (требуется поддержка пула)
--rig-id = ID идентификатор буровой установки для статистики на стороне пула (требуется поддержка пула)
--tls включить поддержку SSL / TLS (требуется поддержка пула)
--tls-fingerprint = Отпечаток сертификата TLS пула HEX для строгого закрепления сертификата
--dns-ipv6 предпочитать записи IPv6 из ответов DNS
--dns-ttl = N N секунд (по умолчанию: 30) TTL для внутреннего DNS-кеша
--daemon использовать демон RPC вместо пула для соло-майнинга
--daemon-poll-interval = N интервал опроса демона в миллисекундах (по умолчанию: 1000)
--self-select = URL-адрес самостоятельно выбирает шаблоны блоков из URL-адреса
--submit-to-origin также отправить решение обратно на самостоятельно выбираемый URL
-r, --retries = N повторных попыток перед переключением на резервный сервер (по умолчанию: 5)
-R, --retry-pause = N время паузы между повторными попытками (по умолчанию: 5)
--user-agent установить настраиваемую строку пользовательского агента для пула
--donate-level = N уровень пожертвований, по умолчанию 0 %%
Параметры:
-b, --bind = ADDR привязать к указанному адресу, например «0.
0.0.0: 3333 "
-m, --mode = MODE режим прокси, nicehash (по умолчанию) или простой
--custom-diff = N переопределить разницу в пуле
--custom-diff-stats вычисляет статистику с использованием пользовательских долей различий вместо долей пула
--reuse-timeout = N тайм-аут в секундах для повторного использования соединений пула в простом режиме
--no-worker отключить статистику по рабочему
--access-password = P установить пароль для ограничения подключений к прокси
--no-algo-ext отключить расширение протокола "algo"
API:
--api-worker-id = идентификатор пользовательского рабочего-идентификатора для API
--api-id = ID пользовательский идентификатор экземпляра для API
--http-host = хост привязки HOST для HTTP API (по умолчанию: 127.0.0.1)
--http-port = N порт привязки для HTTP API
--http-access-token = T токен доступа для HTTP API
--http-no-limited включить полный удаленный доступ к HTTP API (только если установлен токен доступа)
TLS:
--tls-bind = привязать ADDR к указанному адресу с включенным TLS
--tls-gen = HOSTNAME сгенерировать сертификат TLS для определенного имени хоста
--tls-cert = ФАЙЛ загрузить цепочку сертификатов TLS из файла в формате PEM
--tls-cert-key = ФАЙЛ загрузить закрытый ключ сертификата TLS из файла в формате PEM
--tls-dhparam = ФАЙЛ загрузить параметры DH для шифров DHE из файла в формате PEM
--tls -tocols = N включить указанные протоколы TLS, например: «TLSv1 TLSv1.
1 TLSv1.2 TLSv1.3 "
--tls-ciphers = S установить список доступных шифров (TLSv1.2 и ниже)
--tls-ciphersuites = S установить список доступных наборов шифров TLSv1.3
Логирование:
-S, --syslog использовать системный журнал для вывода сообщений
-l, --log-file = ФАЙЛ записывать весь вывод в файл
-A --access-log-file = ФАЙЛ записывать доступ всех рабочих к файлу
--no-color отключить цветной вывод
--verbose подробный вывод
Разное:
-c, --config = ФАЙЛ загрузить файл конфигурации в формате JSON
-B, --background запустить прокси в фоновом режиме
-V, --version вывести информацию о версии и выйти
-h, --help отобразить эту справку и выйти
--dry-run тестовая конфигурация и выход
Пожертвования
Комиссия за пожертвование по умолчанию составляет 2%, может быть уменьшена до 1% или отключена с помощью опции уровня пожертвования
.Комиссия за пожертвование взимается только в том случае, если вы используете более 256 майнеров.
- XMR:
48edfHu7V9Z84YzzMa6fUueoELZ9ZRXq9VetWzYGzKt52XU5xvqgzYnDK9URnRoJMk1j8nLwEVsaSWJ4fhdUyZijBGUicoD
Контакты
Atrides / xmr-proxy: Stratum Proxy для пулов Monero
Это прокси-сервер Stratum для пулов Monero (RPCv2), использующий асинхронную сеть, написанный на Python Twisted.
ПРИМЕЧАНИЕ: Эта вилка все еще находится в разработке. Некоторые функции могут быть нарушены.Сообщайте о любых неисправных функциях или проблемах.
Характеристики
- XMR прокси-сервер слоя
- Конфигурация центрального кошелька, майнерам не нужен кошелек в качестве имени пользователя
- Поддержка майнинга для обмена
- Поддержка мониторинга по электронной почте
- Обход worker_id для подробной статистики и мониторинга буровой установки
- Только одно подключение к бассейну
- Индивидуально Вардифф для рабочих.
Установка и настройка
1.

pip install python-twisted
git clone <это репо>
cd xmr-прокси
2. Настройка параметров
Отредактируйте файл config.py
. Изменение:
-
КОШЕЛЕК
Введите адрес вашего кошелька. Здесь будет храниться ваш монеро, когда вы будете майнить. -
MONITORING_EMAIL
Введите свой адрес электронной почты, если вы хотите контролировать свой сервер. -
POOL_HOST
Перейдите в пул, к которому хотите присоединиться.
3. Запустите прокси
Это запустит прокси.
4. Запустить майнер
Прокси-сервер по умолчанию открывает порт 8080
для проксирования tcp-соединений на https-соединения с использованием twisted.
Вы можете использовать несколько разных майнеров. Например:
./minerd -a cryptonight -o stratum + tcp: //127.0.0.1: 8080 -u 123456 -p 1
Или вы можете использовать cpuminer-easy
.
/cpuminer -a cryptonight -o stratum + tcp: // 127.0.0.1: 8080 -u 47kgvGgng2ZGjc7Ey3Vk9J3NTN2hEavkEixeUmgTh8NDJ1FQBCxXPM6Yi5VPmWf5WeTR712voQUvh6qwNUnrZJr9B7v4X66 -p myemail.com
Это перенаправит трафик через прокси и позволит вам начать майнинг.
Пожертвования
- XMR:
466KoUjvbFE2SduDyiZQUb5QviKo6qnbyDGDB46C6UcTDi5XmVtSXuRYJDmgd6mhYPU92xJHsTQyrSjLbsxdzKQc3Z1P16ZQM
Требования
xmr-proxy построен на Python. Я тестировал его с 2.7.3, но он должен работать с другими версиями.Требования для запуска программного обеспечения приведены ниже.
- Python 2.7+
- витая на питоне
- Пул с поддержкой этого прокси
Поиск и устранение неисправностей
Если вы потеряли соединение с вашим прокси и у вас много пользователей, проверьте ограничения вашей системы в /etc/security/limits.conf
Лучший способ увеличить лимит открытых файлов:
<прокси-пользователь> жесткий файл 1048576
soft nofile 1048576
Где
— ваше имя пользователя. например:
ubuntu
.
TODO
- Автоматическое переключение через прокси, также для неподдерживаемых майнеров (ccminer)
Связаться
кредитов
- Оригинальная версия от Slush0 (исходный код страты)
- Дополнительные функции, добавленные GeneralFault, Wadee Womersley и Moopless
Лицензия
- Это программное обеспечение предоставляется как есть без каких-либо гарантий. Пожалуйста используйте на свой страх и риск.
Пул против прокси на 1000 пользователей?
Прокси-сервер для майнинга похож на то, что вы описываете.Да, это позволяет вам отображать группу майнеров как один майнер в пуле, но только потому, что у вас есть пользователь, проксируются в пул, это, однако, не означает:
выполняет почти всю работу по майнингу и делится поровну между всеми пользователями в пуле
Во-первых, большое количество пользователей не обязательно означает высокий хешрейт. Это очень сильно зависит от оборудования. Во-вторых, нет равного распределения. Майнеры получают вознаграждение за хешрейт / сложность заданий, которые они отправляют — чем больше работы вы выполняете, тем выше процент вознаграждений за любые блоки, которые вы получаете.Следовательно, ваш прокси получает вознаграждение только за ту работу, которую он выполняет (а это совокупная работа всех ваших прокси-майнеров).
Теперь о бассейнах.
пользователя присоединяются, чтобы помочь майнить быстрее, объединив мощь всего пула.
— не совсем точное описание того, как работает майнинг пула. Пул позволяет группе майнеров договориться о том, что кто бы из участников пула ни майнил блок, они разделят вознаграждение пропорционально со всеми майнерами пула, в зависимости от того, сколько работы выполняет каждый майнер.Сервер пула просто облегчает это, а его оператор получает долю за его запуск.
Теперь, поскольку в пуле много майнеров (следовательно, более высокий хешрейт), он будет находить блоки быстрее, чем любой из отдельных майнеров может найти блок в одиночку.
Это подводит нас к одной из причин, по которой майнеры используют пулы: для получения регулярных платежей . Общая сумма, выплачиваемая с течением времени, будет примерно такой же, как при соло-майнинге — разница в частых небольших выплатах и нечастых крупных выплатах.
Еще одна причина присоединиться к стороннему пулу — простота.Чтобы майнить в существующий пул, вы буквально просто загружаете и запускаете программу майнера, направленную на пул. Настоящий соло-майнинг требует запуска узла.
Другая причина — подбрасывание монет. Если вас не волнует , какую криптовалюту вы добываете, многие пулы предлагают автоматическое переключение на наиболее прибыльную монету в любой момент времени.
Итак, вернемся к вашему основному вопросу:
Пул против прокси на 1000 пользователей?
Поскольку действует прокси, один майнер пула, все выплаты идут на этот один кошелек майнера.Следовательно, то, как вы собираетесь возмещать своим пользователям, играет важную роль — как вы (справедливо) распределяете прибыль. Если у одного из ваших пользователей высокий хешрейт, он наверняка захочет получить больше наград, чем пользователь с меньшим хешрейтом. Если у всех пользователей одинаковое оборудование, это не проблема.
Однако, если предположить, что ваш комбинированный хешрейт всех пользователей достаточно велик, чтобы получать выплаты с той частотой, которой они довольны, и у вас есть необходимый опыт для настройки и запуска пула, частный пул будет иметь больше смысла.Тогда вам не придется доверять стороннему пулу или полагаться на него.
Я бы посоветовал набраться опыта и лучше понять предмет. Начните с малого и наращивайте свой путь. Одно дело майнинг с использованием вашего времени и оборудования, а использование ваших клиентов — другое дело.
Build XMRig Proxy (прокси) для снижения нагрузки на пул майнинга
Блог обмена знаниями MoneroKnowledge: http: //blog.xmrpool.me
XMRig прокси
Чрезвычайно высокопроизводительный агент протокола Monero (XMR) Stratum может легко обрабатывать более 100 тыс. Соединений на дешевом (1024 МБ) VPS.Количество подключений к пулу может быть уменьшено до 256 раз, поэтому 100 000 рабочих становятся только 391 работником на стороне пула. Пишите с помощью майнера XMRig, используя C ++ / libuv.
совместимость
⚠️⚠️⚠️ На стороне майнера должна быть включена поддержка Nicehash, что является обязательным. ⚠️⚠️⚠️
- Совместим с любыми пулами Monero (Monero, XMR), Electroneum (ETN), Sumokoin (SUMO) и AEON (AEON), кроме nicehash.com.
- С поддержкой nicehash, любой майнер — опция nicehash XMRig, «nicehash_nonce»: true, для XMR-STAK-CPU.
загрузить
использование
💥Если вы используете Linux и должны обрабатывать более 1000 подключений, вам необходимо увеличить лимит открытых файлов
useconfig.xmrig.comСоздайте, отредактируйте или поделитесь конфигурацией.
-b, --bind = ADDR привязать к указанному адресу, например «0.0.0.0:3333»
-a, --algo = алгоритм майнинга ALGO https://xmrig.com/docs/algorithms
--coin = COIN указать монету вместо алгоритма
-m, --mode = MODE режим прокси, nicehash (по умолчанию) или простой
-o, --url = адрес пула майнинга URL
-O, --userpass = U: P имя пользователя: пара паролей сервера майнинга
-u, --user = ИМЯ ПОЛЬЗОВАТЕЛЯ имя пользователя сервера майнинга
-p, --pass = ПАРОЛЬ пароль для сервера майнинга
--r, --retries = N Количество попыток перед переключением на сервер резервного копирования (по умолчанию: 1)
-R, --retry-pause = N время паузы между попытками (по умолчанию: 1 секунда)
--custom-diff = N разность бассейнов покрытия
--reuse-timeout = N Тайм-аут соединения с повторным использованием пула в простом режиме (в секундах)
--verbose подробный вывод
--user-agent = АГЕНТ установить настраиваемую строку пользовательского агента для пула
--no-color отключить вывод цвета
--no-worker отключить статистику для каждого воркера
--вариантный алгоритм PoW вариант
--donate-level = N уровень пожертвования, по умолчанию 2%
-B, --background запускать майнеры в фоновом режиме
-c, --config = FILE загрузить файл конфигурации в формате JSON
--no-watch отключить профиль просмотра
-l, --log-file = ФАЙЛ записывать весь вывод в файл
-S, -syslog использовать системный журнал для вывода сообщений
-A --access-log-file = N записывать доступ всех сотрудников к файлам
--- api-port = N порт API майнера
--api-access-token = T Использовать токен доступа Bearer для API
--api-worker-id = ID API ID пользовательский идентификатор воркера
--api-no-ipv6 Отключить поддержку IPv6 для API.
--api-no-limited Включить полный удаленный доступ (только если установлен токен API)
--tls включить поддержку SSL / TLS для соединений в пуле (требуется поддержка пула)
--tls-bind = ADDR будет связываться с указанным адресом с включенным TLS
--tls-cert = ФАЙЛ Загрузить цепочку сертификатов TLS из файла в формате PEM
--tls-cert-key = ФАЙЛ Загрузить закрытый ключ сертификата TLS из файла в формате PEM
--tls-dhparam = ФАЙЛ Загрузить параметры DH пароля DHE из файла в формате PEM
--tls -tocols = N включить указанный протокол TLS, например: «TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 "
--tls-ciphers = S Установить список доступных шифров (TLSv1.2 и более ранние версии)
--tls-ciphersuites = S Установить список доступных наборов шифров TLSv1.3
-h, --help показать эту справку и выйти
-V, --version вывести информацию о версии и выйти
Пожертвовать
Комиссия за пожертвование по умолчанию составляет 2%, которую можно уменьшить до 1% или отключить с помощью опции уровня пожертвования. Плата за пожертвование применяется только при использовании более 256 майнеров.
Stratum V1 Docs | Протокол майнинга
Это официальная документация облегченного протокола майнинга биткойнов.
Если вам нужен прокси-сервер для майнинга Stratum , посетите страницу с инструкциями по майнингу прокси.
Если вы ищете совместимость с программным обеспечением для майнинга и , перейдите в раздел совместимости.
Эта страница является одновременно технической документацией и пропагандой нового протокола майнинга, который может использоваться для майнинга биткойнов.Если вы обычный майнер или обычный пользователь биткойнов, вам не обязательно понимать все в этом документе.
Основная причина, по которой я разработал этот протокол и реализовал сервер пула с открытым исходным кодом, заключается в том, что текущий протокол майнинга getwork и LP имеет много недостатков и вряд ли может быть использован в какой-либо крупномасштабной установке. Майнеры ASIC, вероятно, появятся в конце 2012 года, поэтому сообществу Биткойн определенно нужно какое-то решение, которое будет легко масштабироваться до тера-хэшей в секунду на пользователя пула…
1. Зачем менять то, что работает?
HTTP: обмен данными осуществляется майнерами …
Однако сервер пула знает гораздо лучше, когда клиентам нужны новые задания для майнинга. HTTP был разработан для просмотра веб-сайтов, когда клиенты запрашивают у серверов определенный контент. Пул-майнинг отличается — сервер очень хорошо знает, что нужно клиентам, и может более эффективно контролировать обмен данными. Давайте поменяемся ролями и оставим оркестровку серверу!
Ntime Rolling: не хватает заданий для быстрых майнеров
В настоящее время для каждого задания, полученного с сервера, майнер может изменять только ntime и nonce. Nonce — 32-битное целое число (4,2 миллиарда итераций). Ntime — это 32-битное целое число, хранящее временную метку UNIX, и должно отражать текущее время, хотя оптимизированные майнеры переносят ntime немного в будущее, что дает майнерам больше комбинаций (nonce range * ntime range). Однако блок, созданный из массово модифицированного ntime , может быть отклонен сетью Биткойн.
В строгом соответствии со спецификацией getwork для 4 достаточно одного задания getwork.Установка для майнинга 2GHash / s и (благодаря ntime Rolling) эту работу можно использовать в течение одной минуты или до прибытия нового блока биткойнов (в зависимости от того, что произойдет первым). Итак, для установки 42 GHash / s вам понадобится 10 запросов getwork сразу , но обычно несколько больше из-за некоторых стратегий предварительного кэширования, реализованных майнерами для предотвращения простоя из-за задержек в сети. А что насчет ASIC-майнеров 1 THash / s в ближайшее время? Нам просто нужно какое-то решение, где нагрузка на сеть совсем не ограничена производительностью майнеров.
Long Polling: An Anti-Pattern
Getwork стал простым решением для создания автономных майнеров (вы помните, когда официальный биткойн-клиент был единственным майнером?), Задолго до того, как я создал свой первый биткойн-пул, и когда я часто опрашивал местный биткойн-демон не был проблемой. Когда в игру вошли пулы, люди обнаружили, что они должны выбирать между короткими интервалами опроса (= более высокая нагрузка на сеть, более низкий коэффициент устаревания) и интервалами, которые не перегружают сеть и серверы, но приводят к гораздо более высокому соотношению отклоненных долей. .И ответом на этот вопрос стал длинный опрос. Длительный опрос — отличный способ получать обновления в реальном времени с помощью стандартных веб-технологий. Но, как я уже упоминал в тексте выше, веб-технологии не идеальны для майнинга биткойнов.
Длинный опрос использует отдельное соединение с сервером пула, что приводит к различным проблемам на стороне сервера, таким как балансировка нагрузки соединений между несколькими бэкэндами. Балансировка нагрузки с использованием IP-хэшей или липких HTTP-сессий — это еще один обходной путь, позволяющий сохранить все это в рабочем состоянии.
Другая проблема состоит в штормах пакетов, исходящих от клиентов, пытающихся повторно подключиться к серверу после долгих широковещательных опросов. Иногда бывает трудно отличить действительные длительные переподключения с опросом от DDoS-атак. Все это делает архитектуру пула более сложной и трудной в обслуживании, что отражается на менее надежном обслуживании пула и оказывает реальное влияние на майнеров.
Решение таких проблем связано с предыдущим пунктом о загрузке сервером, а не тысячами (иногда) странно реализованными майнерами, которые агрессивно пытаются связаться с сервером.
2. Как все это исправить?
Теперь мы знаем, что не так в текущей ситуации, поэтому давайте разработаем новый протокол и больше не будем повторять плохие решения:
Stratum Protocol
Первоначально я разработал протокол Stratum для облегченного клиента Bitcoin под названием Electrum. Позже я узнал, что требования к протоколу очень похожи на требования для майнинга биткойнов, поэтому я решил повторно использовать его как есть . Пусть вас не смущает эзотерическое название протокола, я старался максимально придерживаться стандартов.
Упрощенно Stratum — это линейный протокол, использующий простой TCP-сокет, с полезной нагрузкой, закодированной как сообщения JSON-RPC. Это все. Клиент просто открывает TCP-сокет и записывает запросы на сервер в виде сообщений JSON, заканчивающихся символом новой строки \ n . Каждая строка, полученная клиентом, снова является действительным фрагментом JSON-RPC, содержащим ответ.
Для такого решения есть веские причины: его очень легко реализовать и очень легко отлаживать, потому что обе стороны общаются в удобочитаемом формате.Протокол в отличие от многих других решений легко расширяется, не нарушает обратную совместимость. В качестве бонуса JSON широко поддерживается на всех платформах, и текущие майнеры уже включают библиотеки JSON. Так что упаковка и распаковка сообщения действительно проста и удобна.
Отсутствуют накладные расходы HTTP и больше нет хаков, таких как флаги расширения майнинга, закодированные в заголовках HTTP. Но самым большим улучшением по сравнению с getwork на основе HTTP является тот факт, что сервер может управлять нагрузкой сам по себе, он может отправлять широковещательные сообщения майнерам в любое время без каких-либо обходных путей с длительным опросом, проблем с балансировкой нагрузки и штормов пакетов.
Extranonce Rolling: Новое измерение
Это, вероятно, самая инновационная часть нового протокола. В отличие от текущего майнинга, где можно повторять только ntime и nonce , протокол майнинга Stratum дает майнерам возможность легко создавать локальные уникальные транзакции с базой монет, чтобы они могли создавать уникальные заголовки блоков локально. Я рекомендую перебирать четыре байта extranonce, что дает возможность обслуживать установку для майнинга 18 EHash / s (Exa-hashes / s) из одного TCP-соединения.Но он может быть легко изменен оператором пула в любое время.
Теперь это будет немного технически, так что давайте объясним это немного. Заголовок блока (эта строка, которая находится в ответе getwork и какие майнеры хэшируют) состоит из следующих частей:
- Версия блока, nbits, хэш предыдущего блока в цепочке блоков и некоторые байты заполнения, которые являются константами.
- Nonce и ntime, которые майнер уже может изменять.
- Корневой хэш Меркла, который создается путем хеширования биткойн-транзакций, включенных в конкретное задание майнинга.
Чтобы создать больше уникальных заголовков блоков (и, таким образом, иметь возможность генерировать больше уникальных хэшей), мы должны что-то изменить.
Каждый биткойн-блок содержит так называемую транзакцию coinbase , которая указывает биткойн-адрес для отправки вознаграждения за блок. К счастью, есть шанс изменить эту транзакцию, ничего не нарушая. При изменении транзакции coinbase корень Меркла изменится, и у нас будет уникальный заголовок блока для хеширования. В настоящее время это (создание уникальной базы монет) происходит на серверах пула.Так что перейдем к майнерам!
Другие решения
JSON по сравнению с вашим предпочтительным протоколом
Я рассмотрел множество решений для сериализации и десериализации полезных данных сообщений. Я написал несколько причин для JSON выше, но давайте подведем их еще раз:
- Полезная нагрузка JSON удобочитаема, проста в реализации и отладке.
- Все биткойн-майнеры уже имеют библиотеки JSON. JSON имеет встроенную поддержку почти на всех языках.
- В отличие от большинства бинарных протоколов, полезная нагрузка JSON может быть легко расширена без нарушения обратной совместимости.
- JSON-RPC уже определяет три собственных типа сообщений, которые использует Stratum: запрос, ответ и уведомление. Нам не нужно изобретать велосипед.
- JSON определенно имеет некоторые накладные расходы на данные, но сообщения Stratum-майнинга обычно помещаются в один TCP-пакет …
Почему я выбрасываю другие сериализаторы:
- Пользовательский текстовый протокол удобочитаем и легко отлаживать, но не так легко реализовать, как может показаться на первый взгляд. Мы должны определить способ, как объединить запрос и ответ, потому что последовательная обработка запросов может быть немного сложной на некоторых платформах (да, теперь я имею в виду платформу Twisted, которую я использовал для реализации пула).Мы также должны определить, как сериализовать различные типы данных, такие как списки или даже сопоставления. JSON решает все это прозрачно для нас.
- Пользовательский бинарный протокол — самая компактная форма, которая может значительно сэкономить полосу пропускания, особенно при работе с двоичными данными, используемыми в майнинге биткойнов. Однако писать (де) сериализаторы * правильно * может быть немного сложно. Я хотел протокол, который легко реализовать. Я не искал возиться с порядком байтов и двоичными заголовками.
- Буферы протокола от Google — интересная концепция, которая может соответствовать потребностям, за исключением того, что поддерживаются только C ++, Python и Java.
- Thrift — еще один бинарный протокол, который я использовал некоторое время назад, но он определенно слишком тяжел для наших целей.
Stratum Versus Getblocktemplate
Getblocktemplate, представленный в bitcoind 0.7, является очень прогрессивным решением для делегирования создания блоков от полноценного биткойн-клиента отдельному специализированному программному обеспечению. Сервер майнинга Stratum использует механизм getblocktemplate под капотом. По-прежнему есть несколько причин, по которым Stratum, на мой взгляд, является лучшим решением для пулового майнинга:
- Он менее сложен, его гораздо проще внедрить в существующие майнеры, и он по-прежнему отлично справляется со своей задачей.
- По историческим причинам getblocktemplate все еще использует протокол HTTP и механизм длительного опроса. Я описал выше, почему это не удается при крупномасштабном майнинге.
- Stratum намного лучше масштабируется для растущего количества обрабатываемых биткойн-транзакций, поскольку он передает только хэши ветвей Меркла, в отличие от полного дампа пула памяти сервера в getblocktemplate.
- Проверка отправленных акций также намного дешевле для обработки ресурсов в Stratum, чем в getblocktemplate.
На самом деле есть только одна причина, по которой Stratum в настоящее время хуже, чем решение getblocktemplate: майнеры не могут самостоятельно выбирать транзакции биткойнов. По моему опыту, 99% реальных майнеров все равно не заботятся о выборе транзакции, они просто хотят максимально возможное вознаграждение за блок. На данный момент они разделяют интересы оператора пула, поэтому нет реальной причины усложнять протокол майнинга только для тех 1%, кто хочет создавать собственные блоки для пула.
У меня уже есть некоторые идеи для расширения протокола майнинга Stratum, где майнеры смогут предложить свою собственную ветвь Меркла (я называю это внутренне «демократический майнинг»), которая решит такие проблемы, как централизованный выбор транзакций.На данный момент я решил сосредоточиться на таком решении, которое подойдет большинству майнеров и позже сделает некоторые расширения.
3. Для разработчиков программного обеспечения для майнинга
Протокол Stratum основан на JSON-RPC 2.0. В этой главе я полагаю, что вы знакомы с этим протоколом и понимаете такие термины, как «запрос», «ответ» и «уведомление». Пожалуйста, прочтите спецификацию JSON-RPC для получения более подробной информации.
Для высокоуровневого изображения концепции протокола Stratum, пожалуйста, прочтите спецификацию протокола Stratum в документации Google.Этот документ требует некоторого внимания, но в нем приведены основные примеры подключения к серверу Stratum.
Обработка исключений
Stratum определяет простую обработку исключений. Пример отклоненного общего ресурса выглядит так:
Где ошибка поле определено как (error_code, human_readable_message, traceback). Traceback может содержать дополнительную информацию для ошибок отладки.
Предлагаемые коды ошибок для службы майнинга:
- 20 — Другое / Неизвестно
- 21 — Задание не найдено (= устаревшее)
- 22 — Дублированная доля
- 23 — Доля низкой сложности
- 24 — Неавторизованный работник
- 25 — Не подписан
Пример из реального мира
В этой главе содержится реальный журнал взаимодействия майнеров с пулом, который разрешил блок testnet3
Майнер подключается к серверу
В начале сеанса клиент подписывает текущее соединение для получения майнинга jobs:
Результат содержит три элемента:
- Сведения о подписках — 2-кортеж с именем подписанного уведомления и идентификатором подписки.Теоретически его можно использовать для отписки, но, очевидно, майнеры не будут его использовать.
- Extranonce1 — Шестнадцатеричная уникальная строка для каждого соединения, которая будет использоваться для сериализации базы монет позже. Держать его в безопасности!
- Extranonce2_size — Представляет ожидаемую длину extranonce2, которая будет сгенерирована майнером.
Авторизовать работников
Теперь позвольте авторизовать некоторых работников. Вы можете авторизовать столько рабочих, сколько захотите, и в любое время во время сеанса.Таким образом, вы можете справиться с большим основанием независимых майнинговых установок всего за одно соединение с Stratum.
Сервер Начать отправку уведомлений с заданиями майнинга
Сервер отправляет одно задание * почти * сразу после подписки.
Небольшое инженерное примечание: есть веская причина, по которой первое задание не включается непосредственно в ответ подписки — майнеру нужно будет обрабатывать один тип ответа двумя разными способами; сначала как ответ подписки, а затем как отдельное уведомление.Обработка задания перехвата только для уведомления JSON-RPC кажется мне немного лучше.
Наконец-то у нас есть кое-что интересное! Я опишу каждое поле уведомления в определенном порядке:
- job_id — ID задания. Используйте этот идентификатор при отправке общего ресурса, созданного на основе этого задания.
- prevhash — Хеш предыдущего блока.
- coinb1 — Начальная часть транзакции coinbase.
- coinb2 — Заключительная часть транзакции coinbase.
- merkle_branch — Список хэшей, которые будут использоваться для вычисления корня Меркла. Это не список всех транзакций, он содержит только подготовленные хеши шагов алгоритма дерева Меркла. Пожалуйста, прочтите некоторые материалы, чтобы понять, как работает расчет деревьев Меркла. К сожалению, в этом примере нет хэшей шагов, плохо!
- версия — версия блока Bitcoin.
- nbits — Закодированная текущая сложность сети
- ntime — Текущее ntime /
- clean_jobs — Когда истина, сервер указывает, что отправка общих ресурсов из предыдущих заданий не имеет смысла и такие общие ресурсы будут отклонены.Когда этот флаг установлен, майнер также должен отбросить все предыдущие задания, поэтому в конечном итоге job_ids может быть изменен.
Как создать транзакцию Coinbase
Теперь майнер получил все данные, необходимые для сериализации транзакции Coinbase: Coinb1, Extranonce1, Extranonce2_size и Coinb2. Во-первых, нам нужно сгенерировать Extranonce2 (он должен быть уникальным для заданного job_id!). Extranonce2_size сообщает нам ожидаемую длину двоичной структуры. Просто будьте абсолютно уверены, что ваш генератор extranonce2 всегда производит extranonce2 с правильной длиной! Например, моя реализация пула устанавливает extranonce2_size = 4, что означает, что это действительный Extranonce2 (в шестнадцатеричном формате): 00000000.
Чтобы создать базу монет, мы просто объединяем Coinb1 + Extranonce1 + Extranonce2 + Coinb2 вместе. Это все!
Для следующих вычислений мы должны произвести двойной sha256 хэш данной монеты. В следующих фрагментах я использую Python, но я уверен, что вы поймете эту концепцию, даже если вы рубист! Это так просто, как:
Как построить Merkle Root
Следующий фрагмент Python сгенерирует для вас корень Merkle. Используйте merkle_branch из трансляции и coinbase_hash_bin из предыдущего фрагмента в качестве входных данных:
Как создать заголовок блока?
Мы почти закончили! Мы должны собрать все вместе, чтобы создать заголовок блока для хеширования:
Первые нули — это пустой одноразовый номер, остальные — это заполнение до uint512, и оно всегда одно и то же.
Обратите внимание, что merkle_root должен быть в обратном порядке байтов. Если вы разработчик майнера, у вас уже есть утилитарные методы для этого. Для некоторых примеров в Python см. Исходные коды прокси для майнинга Stratum.
Сервер может
Иногда Попросить майнера изменить сложность общего доступаСложность общего доступа по умолчанию — 1
Целевое значение с прямым порядком байтов для сложности 1:
, но сервер может попросить вас в любое время во время сеанса изменить его:
Это означает Эта сложность 2 будет применяться к каждому следующему заданию , полученному с сервера.
Как отправить Поделиться?
Когда майнер находит задание, соответствующее запрошенной сложности, он может отправить общий ресурс на сервер:
Значения в определенном порядке: worker_name (ранее авторизовано!), Job_id, extranonce2, ntime, nonce.
Вот и все!
4. Загрузки
5. Совместимые майнеры
Для всех текущих совместимых с getwork майнеров вы можете использовать прокси-сервер для майнинга Stratum, работающий локально на вашем компьютере для майнинга. Один прокси-сервер для майнинга может обрабатывать (почти) неограниченное количество подключенных рабочих, поэтому запуск одного прокси-сервера для всех ваших майнинговых установок — это лучший вариант.
Майнеры с нативной поддержкой протокола Stratum (прокси не требуется!)
Если вам нужна поддержка протокола Stratum в вашем майнере, просто спросите его разработчика и покажите ему эту страницу. Также не стесняйтесь обращаться ко мне и спрашивать детали реализации.
NestorSalten / my-proxy — Кнопки — Heroku Elements
Прокси-сервер CoinHive Stratum
Этот прокси-сервер позволяет использовать майнер JavaScript CoinHive в настраиваемом пуле слоев.
Вы можете майнить криптовалюты Monero (XMR) и Electroneum (ETN).
Этот пакет был вдохновлен x25’s coinhive-stratum-майнинг-прокси.
Руководства
Разверните этот прокси в DigitalOcean (бесплатные промокоды!) И запустите его на своем собственном домене. Узнать больше
Разверните этот прокси бесплатно на страницах Heroku + GitHub и избегайте AdBlock. Узнать больше
Разверните этот прокси бесплатно на
now.sh
+ GitHub Pages и избегайте AdBlock. Узнать большеЗапустите этот прокси-сервер на своем собственном сервере с
pm2
и получите балансировку нагрузки, режим кластера и показатели.Узнать больше
Установка
npm install -g coin-hive-stratum
Использование
Вам просто нужно запустить прокси, указывающий на нужный пул:
монет-улей-страта 8892 --host = pool.supportxmr.com --port = 3333
А затем просто укажите свой майнер CoinHive на прокси:
<сценарий> // Настраиваем CoinHive так, чтобы он указывал на ваш прокси CoinHive.CONFIG.WEBSOCKET_SHARDS = [["WS: // localhost: 8892"]]; // Запускаем майнер var miner = CoinHive.Anonymous ('ваш-монеро-адрес'); miner.start ();
Теперь ваш майнер CoinHive будет майнить на пуле supportXMR.com
, используя ваш адрес Monero. Это будет работать для любого пула
на основе протокола Stratum Mining. Вы даже можете настроить
твой собственный.
Статистика
Прокси-сервер предоставляет несколько конечных точек для просмотра вашей статистики:
/ stats
: показывает количество майнеров и подключений/ miners
: список всех майнеров с указанием идентификатора, логина и хэшей для каждого из них./ connections
: список подключений с указанием идентификатора, хоста, порта и количества майнеров для каждого из них.
Пример: http: // localhost: 8892 / stats
Если вы хотите защитить эти конечные точки (рекомендуется), используйте учетные данные : {пользователь, пароль}
параметр в прокси-сервере
конструктор или флаг --credentials = username: password
для интерфейса командной строки.
Чтобы получить более продвинутый метрцис, вам необходимо: запустить прокси с PM2.
CLI
Использование: 'coin-hive-stratum '
: порт, на котором сервер будет слушать
Параметры:
--host Хост пула.
--port Порт пула.
--pass Пароль пула, по умолчанию «x».
--ssl Использовать SSL / TLS для подключения к пулу.
--address Фиксированный адрес кошелька для всех майнеров.
--user Фиксированный пользователь для всех майнеров.--diff Фиксированная сложность для всех майнеров. Это поддерживается не всеми пулами.
--dynamic-pool Если true, пул можно настроить динамически, отправив параметр запроса? pool = host: port: pass в конечную точку websocket.
--max-miners-per-connection Установить максимальное количество майнеров на TCP-соединение. При превышении этого числа создается новый сокет. По умолчанию 100.
--path Принимать соединения по определенному пути.
--key Путь к файлу закрытого ключа.Используется для HTTPS / WSS.
--cert Путь к файлу сертификата. Используется для HTTPS / WSS.
--credentials Учетные данные для доступа к конечным элементам / stats, / miners и / connections. (использование: --credentials = имя пользователя: пароль)
API
createProxy
: Создает прокси-серверoptions
со следующими дополнительными свойствами:host
: хост пула.порт
: порт пула.pass
: пароль пула, по умолчанию"x"
.ssl
: используйте SSL / TLS для подключения к пулу.адрес
: фиксированный адрес кошелька для всех майнеров.пользователь
: фиксированный пользователь для всех майнеров.diff
: фиксированная сложность для всех майнеров.dynamicPool
: если true, пул можно настроить динамически, отправив? Pool = host: port: передать параметр запроса
в конечная точка websocket.maxMinersPerConnection
: максимальное количество майнеров на TCP-соединение, при превышении этого числа открывается новый сокет. созданный. По умолчанию это100
.путь
: принимать соединения по определенному пути (например, ‘/ proxy’).сервер
: используйте собственный сервер http / https.ключ
: путь к файлу закрытого ключа (используется для https / wss).cert
: путь к файлу сертификата (используется для https / wss).учетные данные
: укажите учетные данные для конечных точек API (/ статистика
,/ майнеры
,/ соединения
). Если учетные данные при условии, вам нужно будет использовать базовую аутентификацию для доступ к конечным точкам.
прокси.listen (port [, host])
: запускает сервер, прослушивающий указанный порт (и, возможно, хост).proxy.on (событие, обратный вызов)
: укажите обратный вызов для события, каждое событие содержит информацию о майнере, который запустил Это. Типы:open
: новое соединение было открыто от майнера (т. Е. Майнер подключился к прокси).authed
: майнер прошел аутентификацию в пуле.закрыть
: соединение с майнером было закрыто (т. Е. Майнер отключился от прокси).ошибка
: произошла ошибка.задание
: из пула получено новое задание на майнинг.найдено
: найден хэш, соответствующий сложности пула, и он будет отправлен в пул.принято
: хэш, отправленный в пул, был принят.
Проверка здоровья
Прокси-сервер предоставляет несколько конечных точек для проверки работоспособности:
/ ping
: всегда отвечает200
./ готово
: отвечает200
, если прокси-сервер запущен, привязан и работает. В противном случае возвращает503
./ версия
: отвечает версией прокси в формате json, то есть:{версия: "2.x.x "}
.
Пример: http: // localhost: 8892 / версия
FAQ
Могу ли я использовать это программно?
Да вот так:
const Proxy = require ("слой-улей"); const proxy = новый прокси ({ хост: "pool.supportxmr.com", порт: 3333 }); proxy.listen (8892);
Могу ли я использовать несколько воркеров?
Да, просто создайте CoinHive.User
, и имя пользователя будет использоваться в качестве имени рабочего слоя:
<сценарий> // Настраиваем CoinHive так, чтобы он указывал на ваш прокси CoinHive.CONFIG.WEBSOCKET_SHARDS = [["WS: // localhost: 8892"]]; // Запускаем майнер var miner = CoinHive.User ('ваш-монеро-адрес', 'мой-рабочий'); miner.start ();
Могу ли я запустить это в Докере?
Да, используйте Dockerfile
, например:
ОТ узла: 8-тонкий
# Установить coin-hive-stratum
ЗАПУСК npm i -g coin-hive-stratum --unsafe-perm = true --allow-root
# Запускаем coin-hive-stratum
ENTRYPOINT ["монета-улей-слой"]
Теперь создайте образ:
$ docker build -t coin-hive-stratum.
И запускаем образ:
$ docker run --rm -t -p 8892: 8892 coin-hive-stratum 8892 --host = pool.supportxmr.com --port = 3333
Как мне заставить мой прокси работать с wss: //?
Вам нужно будет передать файл закрытого ключа и файл сертификата на ваш прокси:
const Proxy = require ("слой-улей"); const proxy = новый прокси ({ хост: "pool.supportxmr.com", порт: 3333, ключ: require ("fs"). readFileSync ("key.pem"), cert: require ("fs").readFileSync ("cert.pem") }); proxy.listen (8892);
Теперь вы можете подключиться к своему прокси с помощью wss: //
и перейти к конечным точкам статистики и проверки работоспособности (например, / stats
) через https: //
.
Чтобы сгенерировать сертификаты SSL для вашего домена или субдомена, вы можете использовать Certbot.
Certbot сгенерирует сертификаты SSL по этим путям (где example.com
— ваш домен):
- ключ :
/ etc / letsencrypt / live / example.com / privkey.pem
- сертификат :
/etc/letsencrypt/live/example.com/fullchain.pem
Значит, вы можете использовать их так:
const Proxy = require ("слой-улей"); const proxy = новый прокси ({ хост: "pool.supportxmr.com", порт: 3333, ключ: require ("fs"). readFileSync ("/ etc / letsencrypt / live / example.com / privkey.pem"), cert: require ("fs"). readFileSync ("/ etc / letsencrypt / live / example.com / fullchain.pem") }); proxy.listen (8892);
Как я могу хранить журналы?
Вы должны запустить прокси с помощью PM2 и передать --log = путь / к / журналу.txt
при запуске прокси.
Как посмотреть показатели?
Вы можете нажать / статистика
, чтобы получить базовую статистику (количество майнеров и подключений).
Для полной метрики нужно запустить прокси с помощью PM2.
Как я могу избежать AdBlock?
Вы можете развернуть прокси на страницах now.sh и GitHub, используя это руководство, или вы можете развернуть прокси на свой собственный сервер и обслуживать эти активы со своего сервер.
Если вы используете эти активы, глобальная переменная CoinHive
будет доступна как CH
.
Заявление об ограничении ответственности
Этот проект никоим образом не одобрен и не связан с coinhive.com
.
Поддержка
Этот проект настроен на пожертвование 1%. Если вы хотите отключить его, рассмотрите возможность одноразового пожертвования и Купи мне пиво за волшебные деньги в Интернете:
BTC: 16ePagGBbHfm2d6esjMXcUBTNgqpnLWNeK
ETH: 0xa423bfe9db2dc125dd3b56f215e09658491cc556
LTC: LeeemeZj6YL6pkTTtEGHFD6idDxHBF2HXa
XMR: 46WNbmwXpYxiBpkbHjAgjC65cyzAxtaaBQjcGpAZquhBKw2r8NtPQniEgMJcwFMCZzSBrEJtmPsTR54MoGBDbjTi2W1XmgM
<3
Руководство по майнингу— MINEXMR
Начало работы
Майнинг Monero никогда не был таким простым, поэтому начните сегодня
Шаг 1: Получите себе адрес Monero для майнинга! Мы рекомендуем использовать кошелек с официальным графическим интерфейсом, если у вас еще нет кошелька Monero.
Шаг 2: Загрузите майнер, который вы хотите использовать.В настоящее время Monero можно добывать на процессорах, а также на графических процессорах NVIDIA и AMD. Обратите внимание, что майнинг на графических процессорах в настоящее время не очень эффективен. Мы рекомендуем использовать XMRig, доступный на xmrig.com.
Шаг 3: Настройте майнер. командной строки Пример xmrig:
xmrig -o pool.minexmr.com:4444 -u 47wcnDjCDdjATivqH9GjC92jH9Vng7LCBMMxFmTV1Ybf5227MXhyD2gXynLUa9zrh5aPMAnu5npeQ2tLy8Z4pH7461vk6uo
Вы можете также использовать XMRig конфигурации мастер
Затем сидеть сложа руки и ждать, пока ваш баланс в ожидании, чтобы начать увеличение на приборной панели
If у вас есть графический процессор, максимизируйте свою прибыль, добывая другую монету (ETH, RVN и т. д.) на своем графическом процессоре одновременно с майнингом Monero на вашем процессоре.
Предупреждения
Мы не рекомендуем использовать Freewallet, Changelly или Coinfloor.
Платежи
Вы можете увидеть свой незавершенный баланс на панели инструментов. Как только он превысит ваш порог, он будет отправлен автоматически без комиссии за транзакцию.
Если вы хотите получить выплату до достижения порогового значения, вы можете использовать опцию «Отправить сейчас» на панели управления. Ваш баланс будет отправлен мгновенно, но вам нужно будет заплатить 0,0004XMR за комиссию за транзакцию. Минимальная выплата составляет 0,004XMR.
Комиссия пула
Мы взимаем комиссию в размере 1% от вознаграждения за майнинг. Мы стремимся предоставить уведомление за 1 месяц до изменения любых сборов пула.
Сведения о подключении
В разных местах имеется несколько серверов пула для майнинга. Выберите ближайший к вам, чтобы уменьшить количество просроченных акций.
Порты майнинга
При настройке майнера вы можете выбрать один из следующих портов пула
4444 Стандартный порт
443 TLS-порт
Если вы используете Nicehash, вы должны использовать
3333 Nicehash порт
Сложность автоматически регулируется на все порты кроме 3333.Не кодируйте IP-адреса жестко, так как они могут измениться.
Фиксированная разница: добавьте + DIFF к вашему имени пользователя, минимальная фиксированная разница составляет 100000. например, WALLET + DIFF
Ваша фиксированная разница должна быть не менее 60 * YOUR_HASHRATE, или она может быть увеличена пулом.
Поддерживаемые прокси-серверы для майнинга
При использовании более 100 майнеров мы рекомендуем использовать прокси, чтобы упростить управление ими и оптимизировать подключение к пулу. Мы поддерживаем следующие прокси:
xmrig-proxy
Минимальная фиксированная сложность при использовании xmrig-proxy составляет 2000000.
Ваша фиксированная разница должна быть не менее 30 * YOUR_HASHRATE, или она может быть увеличена пулом.
xmr-node-proxy
Минимальная фиксированная сложность для xmr-node-proxy составляет 2000000. Это не может быть изменено.
Мы рекомендуем использовать xmr-node-proxy без фиксированного различия, вместо этого пул автоматически настроит его для вас.
Использование идентификаторов буровых установок
Каждый кошелек может иметь несколько идентификаторов буровых установок, которые позволяют просматривать их хешрейт по отдельности, в то время как все они вносят вклад в один и тот же кошелек для платежей.Вы можете использовать функцию rig-id в майнерах, которые ее поддерживают. Идентификаторы буровой установки должны быть буквенно-цифровыми и быть короче 20 символов.
Неактивные работники будут автоматически удалены через неделю.
Wallet & Daemon Software
Доступно несколько кошельков Monero. На ПК мы рекомендуем использовать MyMonero, если вы хотите быстро настроить кошелек, или официальный демон Monero и кошелек с getmonero.org для большей безопасности.
На мобильном телефоне мы рекомендуем использовать CakeWallet.
Приложения для майнинга
В настоящее время мы рекомендуем XMRig или SRBMINER
PPLNS
Pay Per Last N Shares (PPLNS) — это метод распределения прибыли между майнерами.Он распределяет выплаты за каждый блок среди последних N акций, независимо от того, когда был найден предыдущий блок. Это решает проблему переключения пула, когда выгоднее майнить сразу после обнаружения блока. С PPLNS лояльные майнеры получат лучшую прибыль.
Minexmr работает с использованием PPLNS с окном примерно 30 минут (в зависимости от факторов, включая хешрейт пула). Это означает, что при запуске или остановке майнинга выплаты будут расти и падать.
Недействительные общие ресурсы не должны появляться при правильно настроенном майнере.Обычно они вызваны старой версией программного обеспечения майнера или нестабильным разгоном. Акции не будут зачислены, и ваш майнер получит уведомление. За отправку недействительных акций нет штрафа, однако, если вы отправите слишком много, вы будете временно заблокированы.
Просроченные доли
Просроченные доли — обычное явление, поскольку всегда существует некоторая задержка (менее 1 секунды) между обнаружением сетью нового блока и уведомлением всех майнеров.