Перейти к содержимому

Neotex's Blog

  • записи
    2
  • комментария
    22
  • просмотра
    9 494

Записи в этом блоге

Neotex

Пожалуй, напишу мини-faq как поднять локальный прокси на java. Зачем это может быть нужно? Известно, что оборудование Bitmain отличается глючностью, часто зависает при падении пулов и переходе по пулам туда-сюда. Так же, прошивки Bitmain не поддерживают технологию extranonse subscribition, что снижает целесообразность сдачи оборудования Bitmain в аренду на Nicehash до нуля. Кастомную прошивку для s5 c поддержкой вышеупомянутой технологии выкладывал Смит, но у нее есть критический недостаток — она основана на старых прошивках битмайн, в которых еще не был исправлен баг перегрева при отключении инета, что привело к сгоранию множества antminer s5.

Итак , что нам понадобится: компьютер, ноутбук или малинка в той же подсети что и асики.

  1. скачиваем stratum-прокси с официальной страницы загрузки и распаковываем его на ПК, предназначенный для stratum-прокси:

Внимание: качаем только стабильный релиз 0.8.0 , снапшот 0.8.1 на момент написания статьи глючен.

 

https://github.com/Stratehm/stratum-proxy/releases

  1. установите Java Runtime Environment (JRE) для вашей операционной системы (если у вас еще нет); последняя версия может быть скачана здесь Вот прямая ссылка для Windows x64:

http://download.oracle.com/otn-pub/java/jdk/8u74-b02/jre-8u74-windows-x64.exe

 

В папку куда вы распаковали прокси добавляем файл конфигурации, разберем его для примера, у меня он называется nicehash0.conf для 1-го майнера, nicehash1.conf для второго итд. Несмотря на название nicehash в конфиге будут прописаны сразу все пулы. Можно сделать один прокси для всего оборудования но в этом случае пулы будут давать задания со сложностью соответствующей суммарной мощности майнеров, т. е. сложность будет очень большая, и не видно будет индивидуальную статистику по майнерам. Итак, в nicehash0.conf записываем:

 

{

"isScrypt" : false,

"disableStratum" : false,

"disableGetwork": true,

 

// Прокси будет слушать этот порт:

 

"stratumListenPort" : 3333,

 

// Статистику будем смотреть на этом порте:

 

"apiListenPort" : 8888,

 

"databaseDirectory": "database0",

"pools" :

[

 

// Настройки для Nicehash/Westhash.

 

// Обратите внимание на строку пароля p=0.003691 —

 

// найсхеш станет активным если прибыльность на 1 Th

 

// превысит это значение

 

// Если прибыльность на найсе меньше указанного

 

// значения, он будет выглядеть “dead” и прокси будет

 

// пробовать следующий пул. Я обычно ставлю

 

// это значение на 10-20% выше калькулятора, т. к.

 

// меньше из-за глюков найса имхо не окупается.

 

// Параметр d=4096 - рекомендуемая сложность, можно

 

// не указывать, т.к. Найс все равно ставит как хочет.

 

// В поле “user” пишем также в кавычках, т. е. вместо слова КОШЕЛЬ —

 

// кошелёк, потом сразу точка, потом сразу без пробела

 

// после точки имя воркера, (например 1)

{

"name" : "Nicehash sha256",

"host" : "sha256.eu.nicehash.com:3334",

"user" : "КОШЕЛЬ.ВОРКЕР",

"password" : "p=0.003691;d=4096",

"enableExtranonceSubscribe" : true

},

// Вестхеш резервный адрес найсхеша, настраиваем также.

{

"name" : "Westhash sha256",

"host" : "sha256.usa.nicehash.com:3334",

"user" : "КОШЕЛЬ.ВОРКЕР",

"password" : "p=0.003691;d=4096",

"enableExtranonceSubscribe" : true

},

// Настройки для Кано. Ставим свои имя и воркер.

{

"name" : "Kano.is",

"host" : "stratum.kano.is:3333",

"user" : "ИМЯ.ВОРКЕР",

"password" : "x",

"enableExtranonceSubscribe" : false

},

// Настройки для Битминтера. Аналогично, но воркер

// от имени отделен подчеркиванием а не точкой.

{

"name" : "Bitminter",

"host" : "mint.bitminter.com:3333",

"user" : "ИМЯ_ВОРКЕР",

"password" : "x",

"enableExtranonceSubscribe" : false

},

// Для Элигиуса, воркер отделен подчеркиванием кошель ставьте свой:

{

"name" : "Eligius",

"host" : "stratum.mining.eligius.st:3334",

"user" : "КОШЕЛЬ_ВОРКЕР",

"password" : "x",

"enableExtranonceSubscribe" : false

}

]

}

 

Если вам не нужны какие-либо пулы выкидываем их, нужные добавляем в том же формате.

 

Изменения для каждого следующего майнера:

nicehash1.conf — Файл конфига для следующего майнера.

 

В нем меняем только:

  1. "stratumListenPort" : 3333 - пишем следующий порт — 3334
  2. "apiListenPort" : 8888 — тоже пишем следующий порт статистики 8889
  3. "databaseDirectory": "database0" — новая папка базы данных статистики database1
  4. Меняем воркеры на следующие.

Все остальное не меняется!

 

Создаем .bat файлы запуска прокси, для каждого майнера свой файл:

 

файл proxy0.cmd , в него записываем:

java -jar stratum-proxy.jar -f nicehash0.conf

 

файл proxy1.cmd :

java -jar stratum-proxy.jar -f nicehash1.conf

 

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

 

И последнее, что осталось сделать, в майнерах в 1-м поле прописать:

 

Для 1-го мйнера:

 

URL stratum+tcp://192.168.0.100:3333

(ставим IP адрес компа на котором прокси)

Worker x

Password x

  • Воркер и пароль берутся из конфига прокси и могут быть любыми, все равно встанут те что прописаны в прокси.

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

 

Для 2-го майнера:

 

stratum+tcp://192.168.0.100:3334 и так далее для каждого следующего.

 

Если у вас серверная винда не забудьте открыть порты 3333, 3334 итд по TCP в файрволле.

 

Запускаем прокси батниками и майнеры с новыми настройками.

 

Статистику можно смотреть здесь (на компе где запущены прокси):

 

http://127.0.0.1:8888/ - для 1-го майнера,

http://127.0.0.1:8889/ - для 2-го итд.

 

Для скрипта поднимаем аналогично, см. файл примера конфига в папке прокси.

Neotex

Зачем это может быть нужно? Например, когда летом днем жарко, а ночью холодно, и асик приходится днем замедлять чтобы он не перегревался, а ночью можно и помощнее включить. В ручную это делать надоедает, а постоянно поставить на минимум - терять в профите. Заинтересовался я этой темой после прочтения вот этого поста:

https://forum.bits.media/index.php?/topic/16676-luchshaia-v-mire-programma-dlia-antminer-s5/

Там есть ссылка на первоначальный вариант скрипта:

https://jomcflyatwork.wordpress.com/2015/07/13/shell-script-for-antminer-s5-temperature-regulation/

У меня скрипт в первоначальном варианте не заработал. Возможно из-за того, что я пробовал запускать его на более новой прошивке, чем автор. Так же скрипт имел недостаток: он не имел ограничения по повышению частоты асика, и мог довести частоты до отвала плат. В моем варианте можно указать максимальную частоту асика, больше которой скрипт её поднимать не будет. Я протестировал скрипт на последней на данный момент официальной прошивке от bitmaintech, от 15.07.2015, у меня все работает.

Скрипт предназначен _только_ для Antminer s5. Ну и разумеется, вы применяете его только на свой страх и риск.

Нам понадобится: putty , winscp и собственно файл скрипта и файл списка частот: Regul-master.zip

 

Вначале открываем regul.sh на редактирование - я редактировал в FAR-e нажав F4 ( в блокноте windows криво открывается). устанавливаем параметры:

 

TMIN=77 #При охлаждении наиболее горячего лезвия ниже этой температуры частота будет повышаться.

TMAX=80 #При превышении наиболее горячим лезвием этой температуры частота будет снижаться.

freqmax=381.25 #Лимит максимальной частоты - даже если майнер холодный скрипт не будет поднимать частоту выше этой.

REFRESH_TIMER=1080 #Периодичность проверки и изменения температуры в секундах.

FREQ_STEP=2 #Каждый 1 шаг изменения частоты 6.25MHz, таким образом при FREQ_STEP=2 6.25*2=12.5MHz - настолько будет меняться частота в каждом цикле скрипта.

 

Параметры у меня подобраны для "тихого" варианта работы s5 с оборотами кулера около 3000 об/мин. Если вы не замедляете кулер для снижения шума возможно вам больше подойдут параметры автора начального варианта скрипта, в любом случае эти параметры требуют вдумчивого подбора именно для вашего конкретного случая.

 

1. Установка.

Копируем файлы на майнер с помощью Winscp:

– Выбираем « SCP » протокол передачи файлов

– Нам потребуется указать IP и логин/пароль: root / admin

– Копируем regul.sh и freqList в /etc/init.d/

 

2. Коннектимся к майнеру с помощью putty порт 22, логин/пароль root / admin

Запускаем скрипт в консоли putty:

sh /etc/init.d/regul.sh

При таком варианте запуска скрипт работает только когда открыто окно putty, все сообщения выдаются в окно, можно если что-то работает не так остановить его нажав Ctrl-c подкорректировать параметры скрипта. Если все работает нормально запускаем скрипт так:

nohup sh /etc/init.d/regul.sh&

После такого варианта запуска можно нажать <Enter>, закрыть сессию putty набрав

exit

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

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

Если понадобится выключить скрипт без перезагрузки:

Заходим через putty, набираем:

ps

Ищем номер процесса скрипта (PID) и:

kill PID

И еще: если у вас много майнеров, и на каждом вы установили скрипт запускайте скрипты не одновременно, т. к майнеры могут войти в некий резонанс - перегреются и скинут частоту одновременно, а потом одновременно повысят итд. Запускайте скрипт на каждом очередном майнере с временным лагом чтобы такого не произошло.

В принципе, на основе этого скрипта можно много чего сделать, например менять не частоту, а обороты кулера в зависимости от температуры, рестартовать cgminer при отвале платы итд.

×