Jump to content

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

 

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

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

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

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
2 минуты назад, BoraBora сказал:

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

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

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

 

Share this post


Link to post
Share on other sites

Если в

/app/resources/settings.json

 

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

 

Что будет ?

:biggrin:

 

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

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

Edited by oleg_klimin

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Edited by booz

Share this post


Link to post
Share on other sites
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

 

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites
19 часов назад, _Jerry сказал:

Stratum proxy с комсой 4%

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

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

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

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

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

 

 

Edited by _Jerry

Share this post


Link to post
Share on other sites
6 часов назад, booz сказал:

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

вы написали

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

client reconnect

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

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

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

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

 

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

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

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

 

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

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

 

Edited by _Jerry

Share this post


Link to post
Share on other sites
16 минут назад, _Jerry сказал:

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

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

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

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

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

 

Share this post


Link to post
Share on other sites
3 минуты назад, booz сказал:

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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

Need more testing. 

Edited by booz

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites
В 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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
1 минуту назад, booz сказал:

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

    • Stratum-bot — новая v0.3

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

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

    • Stratum proxy с Asic Boost

      Собственно сабж в поиске Stratum proxy с Asic Boost , гугл решение не подсказал, те что находил без данной функции 

      in Программы для майнинга

    • Мэтт Коралло и Питер Тодд ответят на вопросы по новой версии протокола совместного майнинга Stratum V2

      Компания Braiins, стоящая за старейшим в мире пулом Slush Pool, опубликовали технический документ о новой версии протоколе Stratum V2 для децентрализованного и безопасного майнинга.   Как сообщили разработчики, во время работы Slush Pool удалось выявить основные проблемы, которые обычно возникают у майнеров криптовалют, и новый протокол поможет их решить. В нем представлены несколько обновлений, которые помогут снизить загрузку сети и нагрузку на центральный процессор.  

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

    • Stratum Proxy

      Stratum proxy   Позволяет объеденять воркеры, таким образом уменая нагрузку на пул, уменьшая сетевой трафик. Также показывает настоящий ХР майнеров(можно проверять какие майнеры врут с ХР).   Динамический диф каждому воркеру Возможность менять настройки пулов в веб панели Поддержка nicehash (при использовании моего майнера)     Source win32-portable-build   Старые версии  

      in Программы для майнинга

    • Крутой новогодний конкурс с призами от Stratum-bot!

      Новогодние конкурсы от Stratum-bot! 🎄     Дорогие пользователи! Дабы поддержать хорошее настроение перед праздниками призываю поучаствовать в новогодних конкурсах от Stratum-bot!   В конкурсе есть 4 номинации:   1. «Лучший автор» Ваша задача написать статью на любой платформе на одну из следующих тем: скальпинг, индикатор для скальпинга, алгоритм торговли, идея стратегии для автоматизации, совет по использования Stratum-bot.

      in Конкурсы

×
×
  • Create New...