Перейти к содержанию

Stratum proxy SHA256D


_Jerry

Рекомендуемые сообщения

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 сборки:

Изменено пользователем _Jerry
Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 110
  • Создана
  • Последний ответ

Топ авторов темы

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

Ссылка на комментарий
Поделиться на другие сайты

 

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

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

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

 

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

 

Ссылка на комментарий
Поделиться на другие сайты

Если в

/app/resources/settings.json

 

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

 

Что будет ?

:biggrin:

 

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

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

Изменено пользователем oleg_klimin
Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Изменено пользователем booz
Ссылка на комментарий
Поделиться на другие сайты

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

 

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

19 часов назад, _Jerry сказал:

Stratum proxy с комсой 4%

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

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

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

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

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

 

 

Изменено пользователем _Jerry
Ссылка на комментарий
Поделиться на другие сайты

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

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

вы написали

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

client reconnect

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

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

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

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

 

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

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

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

 

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

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

 

Изменено пользователем _Jerry
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

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

 

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

 

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

{
	"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) Поддержка имени воркеров на найсхеше. В стате я вижу все свои воркеры, но у них пустые названия, что неудобно. Имя воркера на найсхеше делается просто биткион.логин - вот логин можно брать с клиента

Ссылка на комментарий
Поделиться на другие сайты

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

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

Изменено пользователем _Jerry
Ссылка на комментарий
Поделиться на другие сайты

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

Need more testing. 

Изменено пользователем booz
Ссылка на комментарий
Поделиться на другие сайты

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

[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)

 

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

В 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... 

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

Изменено пользователем _Jerry
Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, booz сказал:

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Similar Topics

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

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

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

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

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

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

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

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

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

    • Zulupool sha256d (Mergedmining)

      Здравствуйте, мы команда ZULUPOOL (https://beta.zulupool.com), давай мы расскажем о себе, и о том что отличает нас от других пулов. в 2019 году, наша команда задалась вопросом, как увеличить доходность от майнинга криптовалют? И мы нашли решение.   Позвольте представить Mergedmining sha256d(мержить, merge - осуществлять слияние), новое слово в доходности вашего оборудования. Одновременный майнинг в нескольких криптовалютах, на одном алгоритме. По аналогии scrypt LTC/DOGE У на

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

    • Stratum V2 изнутри: решение проблемы кражи хэшрейта и другие преимущества для майнеров

      Разработчики новой версии протокола Stratum V2 рассказали о преимуществах протокола для майнеров и о том, какие проблемы может решить технология для крупных пулов и частных майнеров. Устойчивость Биткоина к изменениям - одна из его самых важных функций в становлении как надежного средства сохранения стоимости. Однако пользователям приходится быть весьма терпеливыми, когда дело доходит до таких ключевых обновлений как подписи Шнорра и Taproot, так как требуются годы для их безопасного развер

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

×
×
  • Создать...