Jump to content

Stratum proxy SHA256D


Recommended Posts

Posted (edited)

Stratum proxy SHA256D

Установка

Скрытый текст
  1. Установить nodejs
  2. Установить socketio
    Цитата

     

    npm i -g socketio

  3. Скачать https://github.com/JerryWm/Stratum-proxy-SHA256
  4. Запускать Proxy.cmd

 

Настройки ./server.json

Скрытый текст

Пример:

Скрытый текст

{
    
    servers: [
    
        {
            bind_address: "0.0.0.0:3333",
            ssl: false,
            
            min_difficulty: 1000,
            max_difficulty: 32000,
            
            max_extranonce1_size: 4,
            max_extranonce2_size: 4,
        },
    
        {
            bind_address: "0.0.0.0:4444",
            ssl: false,
            
            min_difficulty: 1000,
            max_difficulty: 32000,
            
            max_extranonce1_size: 0,
            max_extranonce2_size: 3,
        },
        
        {
            bind_address: "0.0.0.0:1443",
            ssl: true,
            
            min_difficulty: 1000,
            max_difficulty: 32000,
            
            max_extranonce1_size: 4,
            max_extranonce2_size: 4,
        },
        
    ],
    
    web_server: {
        //    enable
        enable: true,
        
        //    bind web server address
        bind_address: "0.0.0.0:8000",
        
        //    secret key
        auth_key: "admin",
        
        // open browser
        open_browser: false,
    },

}

servers:

  • bind_address - куда подключать асик
  • ssl - включить ssl или нет(врятли асик поддерживает stratum+ssl://, по этому всегда false)
  • min_difficulty - минимальная сложность для асика. Следует понимать что сложность можно только понижать, увеличивать ее невозможно. К примеру: min_difficulty = 20000, сложность пула 10000 => асик будет работать на 10000/20000 = 0,5 = 50% мощности, и ХР будет всегда ниже пока пул не поставит сложность >= 20000. Вобще данный параметр нужен чтобы асик не флудил шарами при коннект(ошибочном коннекте ) к пулу со слабой стартовой сложностью.
  • max_difficulty - максимальная сложность для асика.
  • max_extranonce1_size - максимальный размер extranonce1. Если асик не выдает ошибок на max_extranonce1_size  = 0, всегда устанавливайте 0
  • max_extranonce2_size - максимальный extranonce2_size. Опаятьже если асик не выдает ошибок на max_extranonce2_size = 3, всегда устанавливайте 3. При max_extranonce1_size = 0 и max_extranonce2_size = 3 асик может работать на любом пуле, в том числе и на найсхешь, также во время реконекта между пулами не нужно делать реконнект асика, и все это без поддержки асиком метода mining.set_extranonce

web_server:

  • enable - бесполезный парамтр(наследие с криптонайт прокси), веб сервер всегда включен
  • bind_address - открывать в браузере. К примеру http://127.0.0.1:8000
  • auth_key - пароль для доступа в веб морду
  • open_browser - открывать брузер при страте прокси или нет(тоесть при страте простой exec explorer http://127.0.0.1:8000)

Настройки ./app/resources/settings.json

Скрытый текст

Данный файл автоматически генерируется при изменениях в веб панели, но если хотите можно его редактировать и руками

Пример:

Скрытый текст

{
    "pool_group_list": [
        {
            "id": "id_xk6dpddht33t5k2emcu8yhlnawgr80lf",
            "height": 0,
            "active": false,
            "pool_group_name": "btc",
            "pool_list": [
                {
                    "id": "id_z2a18lsjznew7zg1a7rifmx3nuajmmwi",
                    "height": 0,
                    "pool": {
                        "address": "crypto.mine.nu:9338",
                        "login": "my_btc_wallet_address",
                        "password": "x",
                        "retry_count_connect": 5
                    }
                },
                {
                    "id": "id_jihtcosn0x7d7wl62jkm9jmnfj3n0rh9",
                    "height": 1,
                    "pool": {
                        "address": "crypto.mine.nu:9338",
                        "login": "my_btc_wallet_address",
                        "password": "x",
                        "retry_count_connect": 5
                    }
                },
                {
                    "id": "id_psr7u7163tj9byvwc545hlo0bw24y2op",
                    "height": 2,
                    "pool": {
                        "address": "sha256.eu.nicehash.com:3334",
                        "login": "my_btc_wallet_address",
                        "password": "x",
                        "retry_count_connect": 5
                    }
                }
            ]
        },
        {
            "id": "id_z1msj4dmhaqqt99kiglsoy84s745s5d4",
            "height": 0,
            "active": false,
            "pool_group_name": "bth",
            "pool_list": [
                {
                    "id": "id_5cjg8mylw5hprgjxlyxygu2aeixidseu",
                    "height": 0,
                    "pool": {
                        "address": "crypto.mine.nu:9338",
                        "login": "my_btc_wallet_address",
                        "password": "x",
                        "retry_count_connect": 5
                    }
                }
            ]
        },
        {
            "id": "id_5jptotu2er2f75i0t9m8d85oqmhvc8i7",
            "height": 0,
            "active": false,
            "pool_group_name": "v2",
            "pool_list": [
                {
                    "id": "id_95uzbnvf9uw3r110x4so4hsve2ytt2np",
                    "height": 0,
                    "pool": {
                        "address": "wbtc.vvpool.com:5650",
                        "login": "my_btc_wallet_address",
                        "password": "x",
                        "retry_count_connect": 5
                    }
                }
            ]
        },
        {
            "id": "id_vz9hwrj354tqo1si15xdxya5utdj4wxp",
            "height": 0,
            "active": false,
            "pool_group_name": "v4",
            "pool_list": [
                {
                    "id": "id_bkyf0yi2u0iksd5wbbs6gray40kt15e4",
                    "height": 0,
                    "pool": {
                        "address": "tcp://solo.ckpool.org:4334",
                        "login": "my_btc_wallet_address",
                        "password": "x",
                        "retry_count_connect": 5
                    }
                }
            ]
        },
        {
            "id": "id_0v552tk7tuphjkchaukr8bkqku39cc6u",
            "height": 0,
            "active": true,
            "pool_group_name": "nicehash",
            "pool_list": [
                {
                    "id": "id_ogmd7u2l4l9rlohqnu9ejg6neklqf5mo",
                    "height": 0,
                    "pool": {
                        "address": "sha256.eu.nicehash.com:3334",
                        "login": "my_btc_wallet_address",
                        "password": "x",
                        "retry_count_connect": 5
                    }
                }
            ]
        },
        {
            "id": "id_cm3ud627puiamh1trl8510pzyhno2ooi",
            "height": 0,
            "active": false,
            "pool_group_name": "local",
            "pool_list": [
                {
                    "id": "id_osh12f7l6ot4shs9ynlncvp08hd0knyd",
                    "height": 0,
                    "pool": {
                        "address": "",
                        "login": "",
                        "password": "",
                        "retry_count_connect": 5
                    }
                },
                {
                    "id": "id_f5pbyt628tibool9ezul347pivtfjtcv",
                    "height": 1,
                    "pool": {
                        "address": "127.0.0.1:7777",
                        "login": "x",
                        "password": "x",
                        "retry_count_connect": 5
                    }
                }
            ]
        }
    ]
}

pool_group_list(item)

  • id - уникальная строка. id должен быть уникален на весь файл настроек
  • height - позиция группы пулов в веб панели
  • pool_group_name - имя группы пулов в веб панели
  • pool_list - массив пулов

pool_group_list(item).pool_list(item)

  • id - уникальная строка. id должен быть уникален на весь файл настроек
  • height - позиция пула. Чем меньше чем выше приоритет пула.
  • pool - объект с настройками пула

pool_group_list(item).pool_list(item).pool

  • address - адресс пула( допустимо stratum+tcp://host:port , tcp://host:port, host:port и для ssl stratum+ssl ://host:port , ssl ://host:port )
  • login - что писать сюда зависит от пула( где то это BTC адресс , где то логин полученный после регистрации на пуле)
  • password - пароль для пула
  • retry_count_connect - колчисество попыток подключения

 

Алгоритм работы резервных пулов

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

 

Если (количество дисконнектов с пула) - это count_close_pool

B (максимальное число подключенных майнеров за последние 5 мин) - max_count_worker

Пул считается не рабочим когда (Retry count connect) <= (count_close_pool ) / (max_count_worker ? max_count_worker : 1)

 

Расчет минимальной/максимальной сложности для майнера:

Скрытый текст

https://jerrywm.github.io/calc-diff/index.html

Min share interval - минимальный интервал сек иежду шарами.

Max share interval - максимальный интервал сек иежду шарами.

Miner hashrate - хешрейт майнера(в терахешах(терахеш - 10 в 12))

 

Некоторым асикам надо ограничивать сложность(например bitfury48, иначе выдает ошибки)

 

Разное

Скрытый текст

 

Dev fee: 1%

Настройки серверов в ./server.json

Настройки пулов(если не пользуетесь веб панелью) в ./app/resources/settings.json

 

 

 

Выражаю благодарность за помощь в тестирование @booz 

 

 

1.png

 

 

https://github.com/JerryWm/Stratum-proxy-SHA256

 

Портативные win32 сборки:

Edited by _Jerry
Posted

В настройках майнера надо выставлять адрес прокси, время реконнекта минимальное.

Posted

 

3 минуты назад, BoraBora сказал:

Как у него с найсом?

Протестируйте. Я не тестировал( у меня и асика то нет ).

 

Posted
2 минуты назад, BoraBora сказал:

Понятно, значит это тот самый, который не работает с найсом.

Что вам понятно? Надо тестировать.

Если асик понимает 3х байтные extranonce2 то должен работать.

 

Posted (edited)

Если в

/app/resources/settings.json

 

"dev_fee": 4 исправить на "dev_fee": 0

 

Что будет ?

:biggrin:

 

Предупредили бы людей по русски, что прокся 4% комсы берет.

Dev fee: 1-4%  - ИМХО не все поймут.

Edited by oleg_klimin
Posted

можно и 1% поставить. 

@_Jerry после переключения на запасной пул, прокси обратно на основной не возвращается!

Posted (edited)

@_Jerry еще нужно вместо кол-ва попыток в настройках пула спрашивать время между попытками. Кол-во попыток бесконечно...

На самом деле масштабы бедствия шире! При обрыве соединения он и на единственный пул не возвращается!

И, до кучи, хочется реализацию client reconnect. 

Edited by booz
Posted
3 часа назад, oleg_klimin сказал:

Если в

/app/resources/settings.json

 

"dev_fee": 4 исправить на "dev_fee": 0

 

Что будет ?

4%. Ну конкретно это если делать. Так код открыт убрать дев фи не составит проблемы, только это не справедливо!

2 часа назад, booz сказал:

после переключения на запасной пул, прокси обратно на основной не возвращается!

Да он перебирает попорядку все пулы.

 

2 часа назад, booz сказал:

на найс ходит как дети в школу !

Всмысле работает? или нет?

2 часа назад, booz сказал:

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

Какой смысл регулировать время между попытками подключения?

2 часа назад, booz сказал:

Кол-во попыток бесконечно...

Вы можете поставить в retry count connect  большое число, скажем 999999

2 часа назад, booz сказал:

На самом деле масштабы бедствия шире! При обрыве соединения он и на единственный пул не возвращается!

? Если одни пул в настройках, прокси будет постоянно к нему пытаться коннектится.

2 часа назад, booz сказал:

И, до кучи, хочется реализацию client reconnect. 

Его в основном использует найсхешь. Когда выбирает другой заказ и коннектится к другому пулу он меняет extranonce1. Позже я добавлю поддржку метода set_extranonce.

Есть ли реализация или нет в любом случае после посылки client.reconnect пул закрывает соединение.

 

3 часа назад, oleg_klimin сказал:

Предупредили бы людей по русски, что прокся 4% комсы берет.

Dev fee: 1-4%  - ИМХО не все поймут.

Помойму запись 1-4 очевидна. Дев фи из 1,2,3,4

 

Posted

@_Jerry Я пишу то, что мне от него нужно. Вы, пожалуйста, ответьте, будет failover или нет.

Reconnect подразумевает, что клиент пойдёт в другой хост/порт! 

На найсхеш работает. 

Posted (edited)
19 часов назад, _Jerry сказал:

Stratum proxy с комсой 4%

Любопытно! Кто анонимно редактирует мое первое сообщение(и притом не верно...)?

6 часов назад, booz сказал:

Вы, пожалуйста, ответьте, будет failover или нет

Резервные пулы есть в настройках.

Как прокси не может подключится к пулу он переключается на следующий и работает на нем пока и с него не отключится .

 

 

Edited by _Jerry
Posted (edited)
6 часов назад, booz сказал:

Reconnect подразумевает

вы написали

16 часов назад, booz сказал:

client reconnect

а это комнда из стратум протокола, она нужна для реконнекта к этому же пулу(зачем я написал выше про экстранонсе1)

6 часов назад, booz сказал:

Reconnect подразумевает, что клиент пойдёт в другой хост/порт!

Так после определенного числа не удачных попыток подключения прокси перейд на следующий пул в списке.

 

6 часов назад, booz сказал:

На найсхеш работает. 

Это отлично. Значит асик понимает 3х байтный нонсе и можно будет объединять до 256 асиков.

 

-------------------------

Вариант резервного пула в котором при отсоединении от основного, прокси подключается к запасному и переодически проверяет основной не реализован.

 

Edited by _Jerry
Posted
16 минут назад, _Jerry сказал:

не реализован.

это уже ясно :) когда ждать? и ждать ли?

17 минут назад, _Jerry сказал:

для реконнекта к этому же пулу(зачем я написал выше про экстранонсе1)

вообще не для того! также вопрос, ждать или нет?

 

Posted
3 минуты назад, booz сказал:

это уже ясно :) когда ждать? и ждать ли?

Да я позже сделаю

Posted

Авторы однозначно респект за проксю.

Естественно, что найсхеш сейчас показывают наибольшую доходность и этот прокси интересен именно, чтобы подключить битфури к найсхешу.

 

Вот мой конфиг для работы на найсхеше:

{
	"dev_fee": 1,
	"pools": [
		{
			"pool_address": "stratum+tcp://sha256.eu.nicehash.com:3334",
			"wallet_address": "тут биткоин кошель найхеша",
			"pool_password": "x",
			"keepalive": 20,
			"emu_nicehash": true,
			"max_workers": 100,
			"retry_count_connect": 5,
			"pool_count": 0
		}
	]
}

 

Какие будут пожелания:

1) Сделать поддержку client.reconnect. Иначе каждые несколько минут идут реконнекты на найсхеше и скорость на них сильно просаживается. Пока прокси тестирую всего несколько часов, но общая доходность держится на уровне viabtc - только из-за просадок скорости во время реконнектов

Цитата

[APP] [STRATUM-PROXY] [STRATUM-CLIENT #2954] [NOTICE] Close
Pool send: Unk. method "client.reconnect"
[APP] [STRATUM-PROXY] [STRATUM-CLIENT #2965] [ERROR] Switch pool
[APP] [STRATUM-PROXY] [STRATUM-SERVER #1] [WORKER #3459] [ERROR] Worker error: Proxy lv. Change extranonce1 or extranonce2_size. Reconnect
[APP] [STRATUM-PROXY] [STRATUM-SERVER #1] [WORKER #5535] [NOTICE] Accepted worker

2) Поддержка имени воркеров на найсхеше. В стате я вижу все свои воркеры, но у них пустые названия, что неудобно. Имя воркера на найсхеше делается просто биткион.логин - вот логин можно брать с клиента

Posted (edited)
16 часов назад, friendlyfire сказал:

Авторы однозначно респект за проксю.

Спасибо.

 

16 часов назад, friendlyfire сказал:

1) Сделать поддержку client.reconnect. Иначе каждые несколько минут идут реконнекты на найсхеше и скорость на них сильно просаживается. Пока прокси тестирую всего несколько часов, но общая доходность держится на уровне viabtc - только из-за просадок скорости во время реконнектов

У вас неверное понимание client.reconnect. Это всего лишь команда перенаправление пула(можно привести аналог из http, заголовок location). К примеру найсхешь перенаправляет на себя же.

Нужна поддержка set_extranonce.

 

Есть некоторые данные (extranonce1 и extranonce2_size) которые передаются только один раз в начале соединения(зачем это было сделано неочень ясно, extranonce1 Вообще бесполезен, extranonce2_size как и сложность можно было бы передавать в каждой новой работе - это бы упростило как создание проксей так и создание майнеров).

 

Если сам майнер не поддерживает метод mining.set_extranonce(а я почти уверен что не поддерживает, т.к. майнер кривой) из спецификации nicehash , то единственный способ это делать реконект.

Есть еще один способ, убрать вообще extranonce1, то есть сделать ему размер 0, а extranonce2_size делать всегда 3 байта. Тогда(если асик поддреживает нулевой Extranonce1) можно будет обойтись без реконнекта. Но это все надо тестировать.

 

16 часов назад, friendlyfire сказал:

2) Поддержка имени воркеров на найсхеше. В стате я вижу все свои воркеры, но у них пустые названия, что неудобно. Имя воркера на найсхеше делается просто биткион.логин - вот логин можно брать с клиента

Если и буду делать то в самом конце(не приоритетная задача).

Edited by _Jerry
Posted (edited)

@_Jerry майнер может понимать set extra nonce. При старте он пишет: server set extranonce2 size  bla bla bla... 

Need more testing. 

Edited by booz
Posted

Прокси запустил, но на интересующем пуле выдает следующие ошибки в консоль:

[2018-2-6 22:04:24] [APP] [STRATUM-PROXY] [STRATUM-CLIENT #41] [SUCCESS] Connected to [SSL OFF] [KPALV 20] [RSP TO 30] "crypto.mine.nu:9338"
Pool send: Unk. method "mining.set_difficulty"
Pool send: Unk. method "mining.notify"
[2018-2-6 22:04:24] [APP] [STRATUM-PROXY] [STRATUM-CLIENT #41] [ERROR] invalid extranonce1 (A string minimum length of 2 was expected, got length 0)

 

Posted

@_Jerry добрый день!

а ваш прокси умеет изменять сложность, как ckproxy ?

мне надо, чтобы шары были не сложнее 65к, т.к. найс сейчас шары дает 524к, для старых асиков это нерешаемая задача, очень часто уходят в ребут.

 вынужден копать BCH на ViaBTC, он задает сложность 8к и асики стабильно работают

Posted (edited)
В 2/6/2018 в 16:11, trd100vx сказал:

Прокси запустил, но на интересующем пуле выдает следующие ошибки в консоль:

 

В 2/6/2018 в 16:11, trd100vx сказал:

"crypto.mine.nu:9338"

Вы уверены что это sha256d пул?

Он шлет работу на как уведомление, а как вызов функции. Также extranonce1_size == 0.

2 часа назад, Kavjlaeg сказал:

добрый день!

а ваш прокси умеет изменять сложность, как ckproxy ?

мне надо, чтобы шары были не сложнее 65к, т.к. найс сейчас шары дает 524к, для старых асиков это нерешаемая задача, очень часто уходят в ребут.

 вынужден копать BCH на ViaBTC, он задает сложность 8к и асики стабильно работают

Да умеет. По мимо этого нормализует extranonce2_size(чего как я понимаю ckproxy не делает)

 

Установка макс/мин сложности, а также макс размера extranonce2 в настройках серверов (пример тут https://github.com/JerryWm/Stratum-proxy-SHA256/blob/master/server.json )

В 2/5/2018 в 14:15, booz сказал:

майнер может понимать set extra nonce. При старте он пишет: server set extranonce2 size  bla bla bla... 

При каждом реконнекте он и пишет.

Edited by _Jerry
Posted
1 минуту назад, booz сказал:

нужно делать мануал с картинками. Глядишь, ещё донатов подтянется. 

Сделаю. Но потом. Надо сначала доделать обновление.

Posted

@_Jerry  спасибо за помощь при запуске!

теперь у меня не вешаются асики на найсе и не уходят в ребут при огромной сложности.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Similar Topics

    • P2Pool.RU - Москва - BTC , BCH, LTC, DASH, DGB (sha256d, scrypt) - С++, полный блокчейн

      Новости, поддержка, оперативная информация на канале в Телеграм: https://t.me/p2poolru News, support, operational information on the channel in the Telegram: https://t.me/p2poolru https://p2ool.ru   Пулы:   BTC - http://p2pool.ru:9334 LTC - http://p2pool.ru:9427 DASH - http://p2pool.ru:7903 BCH (sha256) - http://p2pool.ru:9338 DGB sha256) - http://p2pool.ru:5027 DGB (scrypt) - http://p2pool.ru:5025   Система выплат PPLNS; Поддержка stratum; Хоро

      in Пулы совместного майнинга

    • XMRIG Proxy Monitor (ANDROID)

      XMRIG Proxy Monitor (BETA) Приложение позволяющее просматривать подробные данные о работе Xmrig Proxy со своего Android устройства. Бесплатно, без встроенной рекламы. Возможности: Виджет хешрейта. Подробная статистика работы прокси. Оповещения об авариях на стороне сервера (проверка раз в 30 минут). Графики хешрейта (Среднее за 6 часов, 12 часов, 24 часа). График онлайна   Запрашиваемые разрешения: Вывод уведомлений  

      in Мониторинг

    • Против Domains by Proxy подан иск за содействие в мошеннической схеме с BTC

      Управляющий активами BTC Capital Management подал в суд на поставщика доменов Domains by Proxy, обвинив компанию в посредничестве в мошеннической схеме с биткоином. В иске, поданном инвестиционной компанией BTC Capital Management в Окружной суд США Южного округа штата Айова, указано, что интернет-компания Domains by Proxy, предоставляющая конфиденциальные доменные имена, использовалась для создания мошеннической схемы с BTC. Истец утверждает, что некий Джон Доу (John Doe) воспользовался усл

      in Новости криптовалют

    • Stratum-bot — 3 алгоритма, 28 фильтров

      Краткое описание: Stratum-bot v0.3 — профессиональный инструмент для трейдеров для автоматизации торговли на биржах криптовалют. Гибкий функционал и широкий ассортимент инструментов поможет реализовать множество разнообразных торговых стратегий.   Алгоритмы: Scalping, Classic Long, Classic Short   Биржи:  Binance Spot, Binance Futures   Функции [весь список]: - Торговля множеством пар одновременно (многопоточность) - Автоподбор параметров стратегии - Трейли

      in Софт для трейдинга

    • Что за протокол stratum?

      Что за протокол stratum? и как его включить в cgmner если что?

      in Общие вопросы по майнингу

×
×
  • Create New...