Autoswitch for NiceHash|Автосвитчер/автопереключатель для NiceHash

nicehash

#1

По многочисленным просьбам, выкладываю Autoswitch для майнинга на NiceHash. Это приложение работает у меня уже на протяжении нескольких месяцев, но допиливать ее для публичного распространения мне было откровенно лень. Однако, некоторые настойчивые товарищи в чате Телеги меня все же уговорили :grinning: И я наконец это сделал.

Программа работает в фоновом режиме, и переключает FlightSheet на наиболее прибыльный алгоритм на NiceHash в текущий момент. По сути, это полный аналог клиента NiceHash для Windows.
В HiveOS “искаропки” подобное пока не реализовано.

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

А именно:
Нужно будет создать Flight Sheet для всех интересующих алгоритмов (это нужно сделать лишь один раз для всех ваших ригов).
Определить хешрейт каждого рига, по каждому алгоритму (в том случае, если вы еще не знаете, сколько хешей выдает ваш риг на разных алго). И прописать эти данные в конфиг автосвитчера (это нужно будет сделать на каждом риге с установленным Autoswitch).

Труда и времени на создание данной программы было положено очень много, поэтому посчитал вполне оправданным, включить символический dev fee в размере 0.5%.

Итак по порядку:

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

В консоли рига нужно выполнить следующую команду:

curl https://raw.githubusercontent.com/lexandr0s/autoswitch/master/as-setup.sh | bash

После окончания работы установочного скрипта все необходимые компоненты будут скачаны на риг и разложены по своим местам.

2. Cоздание формализованных Flight Sheet (полетных листов)
Сначала нужно создать Flight Sheet для каждого алгоритма NiceHash, которые вы планируете майнить.
Опишу это немного подробнее, т.к. в текущей реализации Hive этот процесс не до конца очевиден, и у некоторых вызывает сложности.

На самом деле в Hive уже есть готовые пресеты для NiceHash, нужно лишь выбрать правильную монету.
При создании нового Полетного листа, в окошке выбора монеты, нужно начать набирать “nice”, и тогда мы увидим предустановленные монеты (алгоритмы) NiceHash.

Далее, нужно создать кошелек. Опять же, в текущей реализации HiveOS, нам придется создавать разные кошельки под каждую из монет (алгоритмов) NiceHash. Хотя сам адрес кошелька, конечно же везде будет одинаковый - адрес BTC кошелька NiceHash (или любого другого BTC-кошелька, в случае майнинга на внешний кошелек), на который вы будете майнить.


nice3

После этого все проще некуда. Выбираем пул nicehash


nice5

И нужный майнер.
В большинстве случаев больше ничего делать не требуется. Подобный Полетный Лист успешно будет майнить на NiceHash.

А теперь самое главное. Для того, чтобы autoswitch корректно работал, названия Flight Sheet должны соответствовать строгому шаблону.

Autoswitch Название_алгоритма

Соответствия названий Flight Sheet в HiveOS и алгоритмов NiceHash, приведены в нижеследующей табличке. Там же указаны единицы измерения хешрейта, в которых в дальнейшем мы будем вносить их в файл конфигурации.

  Алгоритм NiceHash    | Название Flight Sheet HiveOS | Единицы измерения|
--------------------------------------------------------------------------
Keccak                        Autoswitch Keccak                  MHs
Nist5                         Autoswitch Nist5                   MHs
NeoScrypt                     Autoswitch NeoScrypt               MHs
Lyra2RE                       Autoswitch Lyra2RE                 MHs
Lyra2REv2                     Autoswitch Lyra2RE2                MHs
DaggerHashimoto               Autoswitch Ethash                  MHs
Skunk                         Autoswitch Skunk                   MHs
CryptoNightV7                 Autoswitch CryptoNightV7           kHs
CryptoNightHeavy              Autoswitch CryptoNightHeavy        kHs
Lyra2Z                        Autoswitch Lyra2Z                  MHs
X16r                          Autoswitch X16r                    MHs
CryptoNightV8                 Autoswitch CryptoNightV8           kHs

Созданию Полетных Листов (особенно их названиям) необходимо уделить особое внимание и аккуратность. Ошибка даже в одной букве названия (в том числе и Заглавная/строчная), не позволит такому Полетному листу участвовать в процессе работы программы. Чтобы избежать ошибок, лучше вставлять названия, копируя их из этой таблички %).

PS: Я не стал включать в эту табличку (и в конфигурационные файлы программы) алгоритмы, которые майнятся асиками. Чтобы не перегружать лишней информацией. Но при желании их вполне можно добавить в конфиг и они будут успешно работать.
На этом подготовка на сервере закончена. Переходим к конфигурированию autoswitch непосредственно на риге.

3. Конфигурация autoswitch
После завершения работы установочного скрипта, в стандартную директорию конфигов HiveOS был добавлен конфигурационный файл autoswitch.
Его вам необходимо изменить под индивидуальные условия на каждом из ваших ригов, где будет установлен autoswitch
Откройте этот файл в любом редакторе, например в nano

nano /hive-config/autoswitch.conf

В самом начале файле вы увидите две переменных. Которые вам необходимо изменить.

FARM_ID=1234

TOKEN="aqroupqw122345piu......"

FARM_ID должен содержать ID вашей Фермы.
ВАЖНО: Здесь должен быть указан именно ID Фермы, а не RIG_ID!
Я не нашел в веб-интерфейсе, где можно увидеть этот ID. Берем его из адресной строки браузера
В веб интерфейсе выбираем вашу FARM (Ферму).
Последние цифры в адресе, после слова “farms/” это и есть ID вашей Фермы.

nice7

Внесите это значение в конфиг. в переменную FARM_ID

Далее.
Т.к. управление FlightSheet осуществляется с рига посредством команд серверу HiveOS через API, необходимо сгенерировать токен авторизации по API. (это вполне безопасно и дальше вашего рига этот токен не уйдет).

Идем в настройки аккаунта.
И в разделе “Authentication Tokens” (Токены Аутентификации), нажмите кнопочку “Generate New Personal API-token” (Создать новый персональный API-токен).

Введите любое, понятное вам имя токена и нажмите “Add” (Добавить)

Будет сгенерирован персональный токен авторизации по API. Он то нам и нужен.
Напротив вновь созданного токена нажмите “Show” (Показать). Будет открыт длинный хеш. Его необходимо аккуратно выделить и скопировать (и возможно куда-то безопасно сохранить, для дальнейшего использования на других ригах,)
Вставляем скопированный токен в значение переменной TOKEN в конфиге autoswitch. Т.к токен может содержать любые символы - обрамляющие кавычки обязательны.

Далее.
Крайне важная переменная BENCHMARK. В ней содержаться Хешрейты вашего рига по различным алгоритмам. И именно на основе этих значений autoswitch делает свои вычисления и принимает решение о необходимости переключения полетного листа.
Единицы измерения для различных алгоритмов - смотрите в вышеприведенной табличке.
Хотя с этим все довольно просто. CriptoNight и его разновидности указываются в кHs. Все остальные алгоритмы в MHs

В дефолтном конфиге уже прописаны значения для рига из 6-ти 1063. Измените эти значения на свои.
Если вы еще не знаете, на что способен ваш риг, нужно поочередно дать поработать всем FlightSheet, которые вы ранее создали для NiceHash. Оптимальное время прогона - 5-10 минут. После чего запишите значение хешрейта выдаваемого ригом.
Исключение составляет алгоритм X16r. Ввиду его особенностей, узнать сколько реально может выдать ваш риг, можно только помайнив этим алгоритмом не менее 12 часов (а лучше сутки) и посмотрев среднее значение на странице статистики NiceHash.

Если вы не хотите майнить какой-то алгоритм, просто поставьте значение хешрейта равным 0. Autoswitch будет учитывать только те алгоритмы, значения хешрейтов для которых больше нуля.

ВАЖНО: Переменная BENCHMARK имеет формат JSON массива. Поэтому будьте предельно аккуратны и постарайтесь, при внесении реальных значений, не нарушить синтаксис.

Остальные переменные в конфиге можно не менять. По умолчанию там уже стоят оптимальные значения.
Вкратце опишу, что они делают.

MIN_DIFF - порог разницы профитности (в процентах) для переключения алгоритма. По умолчанию стоит 5. Как показывает практика - это оптимальное значение. Если выставить меньше - автосвитчер возможно будет очень часто переключать алгоритмы. На это тоже требуется драгоценное время. Да и на стабильность работы рига это может повлиять не лучшим образом.
Но вы, конечно, можете поставить любое значение. Крайне не рекомендую ставить значение меньше 1%. Этим вы почти гарантированно не дадите ригу стабильно работать.

PAUSE - пауза при переключениях полетных листов в секундах. Т.е. между отключением работающего майнера и запуском нового. У всех условия индивидуальны. И, это значение, можно как увеличивать, так и уменьшать, в зависимости от конфигурации и стабильности рига. Для стандартных ригов на 6-8 карт (не “солянок”) - 10 секунд оптимально. Для ригов с >10 карт возможно стоит увеличить паузу, но это можно выяснить только после того как станет ясно, насколько гладко или нет проходят автопереключения.

INTERVAL - интервал проверок расценок на NiceHash (сек). Меньше минуты ставить бессмысленно. Это будет только загружать ваш риг и интернет канал. Больше - сколько угодно. Раз в минуту, вполне оптимальное значение.

SEND_MSG - если поставить 1, autoswitch будет отправлять сообщения о проблемах в своей работе на веб-интферфейс (и в телеграмм, если настроен бот оповещений). При нестабильном интернете - таких сообщений может быть очень много. В такой ситуации, эту возможность лучше отключить (оставить 0). Уведомления о критических ошибках, которые приведут к невозможности продолжения работы программы, будут отправляться на сервер в любом случае, независимо от этой опции.

Все переменные, в том числе и бенчмарки, в файле конфигурации можно менять на лету. Не перезапуская autoswitch. Изменения будут учтены при следующей проверке профитности.

На этом процесс конфигурации закончен.
Пусть вас не пугает большой объем текста. На самом деле, на практике, весь процесс подготовки и конфигурирования, при заранее известных бенчмарках - занимает не более часа.

Переходим к финальной части. Непосредственно к запуску autoswitch

4. Первый запуск и работа с Autoswitch.
После того, как процесс конфигурирования и подготовки завершен, необходимо, чтобы Autoswitch получил все внесенные вами данные, проверил их корректность и сформировал свой внутренний конфиг.
Для этого запустите команду

autoswitch config

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

В конце вы видите два значения.
Сколько найдено FS (полетных листов) сконфигурированных под autoswitch на сервере. И сколько найдено ненулевых хешрейтов в конфиге.
Работать будут те алгоритмы, для которых найдено и то и другое.
Т.е. в случае, как на скриншоте, в автопереключении будут участвовать 10 алгоритмов.
Если сразу были созданы не все полетные листы, вы можете добавить их в дальнейшем.
После чего нужно будет опять выполнить ту же команду “autoswitch config” (это можно проделать в любой момент, не прерывая работу самой программы. конфиг будет изменен и применится “на лету”)

Если все прошло удачно. И вы увидели картинку подобную показанной выше - autoswitch готов к работе.
Можно его запускать.
Команды управления те же, что и для управления майнером.

autoswitch start

Данная команда запустит autoswitch в фоновом режиме и пропишет его в автозапуск. (после перезагрузки autoswitch запустится автоматически).

Для остановки и удаления из автозапуска, нужно выполнить команду

autoswitch stop

Autoswitch будет остановлен и удален из скриптов автозапуска.

Ну и чтобы понаблюдать за его работой, просто вызываем его без параметров.

autoswitch

В консоли вы увидите что-то подобное:

nice11

При переключении полетных листов, autoswitch фиксирует данный факт в своем логе

/var/log/autoswitch.log

+++++++

На этом наверное и все. Спасибо всем кто дочитал до конца.
Вопросы, пожелания и конструктивная критика приветствуются.
Удачного майнинга!

PS: Хочу попросить прощения у англоязычной аудитории. Мой английский не настолько хорош, чтобы правильно написать столь объемный текст. А машинный перевод с помощью Google, сам Google сделает гораздо лучше.

I apologize to the English-speaking audience. My English is not good enough to write such a voluminous text correctly. A machine translation using Google, Google itself will do much better.

Ну, а если кто-то из читателей, переведет эту писанину на английский - плюсы в карму от англоязычных майнеров и от меня лично - гарантированы.:wink:


#2

Плюсанул. Чего не сделал через кастом майнер? В принципе можно интегрировать

  • скрин автосвитчера цеплять к майнеру
  • скрины майнера будут как обычно

Реализовал в принципе как я себе это видел. Только я ленивый )))


#3

Думал сначала. Но костыль получается.
В теории да. Можно интегрировать. Но конфиги там совсем другие, как ты сам понимаешь.
Возможно в будущем…


#10

Большое спасибо за проделанную работу. Как x16r сравняется с остальными алгоритмами обязательно проверю работоспособность. Очень интересно.

Есть маленький вопросек, а dev fee запускается с перезапуском майнера? И алгоритм текущий или заранее запрограммированный? Можно об этом чутка поподробнее?

Да и может стоило сделать вариант “один раз заплатил” или еще какое нибудь решение. А то просто парит то что каждая эта крошечка доната(майнер, автосвитч) вроде берет копейки(честно 0.5 ну вообще не жалко за такой труд), но по сути каждое переключение user-dev fee забирает еще и драгоценное время и на переключение.


#11

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

По поводу разовой оплаты можно подумать. В принципе, такой вариант вполне возможен.
На основе отзывов и пожеланий, вполне возможно, будут вносится изменения.


#12

Good evening, hello from the UK,

working wonderful :slight_smile: have now this running on my rigs


#13

Autoswitch v. “1.0”.
This app for autoswitching Hive OS Flight Sheet on NiceHash
Made by lexandr0s. 2018

Get Flight Sheet from Hive server and configure Autoswitch
Autoswitch: HiveOS API call error. Check you internet and HiveOS API status. Exi
t

API проверил, кавычки на месте. я даже не знаю что делать.


#14

Извиняюсь, была проблема кодировки файла autoswitch.conf


#15

Сегодня в течении дня будет обновление до версии 1.1

  • Исправлен маленький баг

  • Добавлена функция автоматического обновления

+++++
Autoswitch отключится с сообщением о необходимости обновления.
После отключения, нужно просто запустить команду установки еще раз. И по новой запустить autoswitch

curl https://raw.githubusercontent.com/lexandr0s/autoswitch/master/as-setup.sh | bash

autoswitch start

Конфигурационные файлы затронуты не будут. Ничего переконфигурировать не нужно.
Прошу прощения за неудобства.

+++++++++++++++++++++++++++++++++++

Today during the day there will be an update to version 1.1

  • Fixed a small bug

  • Added automatic update feature.

+++++
Autoswitch will turn off with a message indicating that an update is needed.
Thereafter, you just need to run the install command again. And run autoswitch

curl https://raw.githubusercontent.com/lexandr0s/autoswitch/master/as-setup.sh | bash

autoswitch start

Configuration files will not be affected. You do not need to reconfigure anything.
I apologize for the inconvenience.


#16

super awesome keep it going :smiling_face_with_three_hearts:


#17

Спасибо;)


#18

А нельзяли сделать так, что б помимо оповещения о смене настроек приходило еще оповещение от самомго автосвича с названием включенного алгоритма?

Еще хотелось бы по команде autoswith(или другой) видеть не только то что каждую минуту проводится проверка, но и например отчет о всех проверенных(настроенных) алгоритмах с профитом. Интересно же все таки видеть положение дел :wink:


#19

да можно. Но имхо, это будет перегруз информации… По началу в первых вариантах - я делал такое.
Но уверяю, после пары тройки раз - в глазах начинает рябить. И эта информация явно лишняя.
Возможно допилю, чтобы можно было в любой момент вызвать полную картинку по всем алго. по какому то параметру.
типа autoswitch stat

по поводу уведомлений - моменты переключения фиксируются в логе. Если интересна эта информация - ее можно там увидеть. Писать об этом в вебморду посчитал излишним. Будет слишком много спама.
Кроме того, в момент переключения в вебморде и так появляются сообщения о смене полетного листа. По логике понятно, что если полетный лист сменился - значит автосвитч его переключил.


#20

Вот такую хрень получаю… два рига создавал вчера, работают…


#21

ошибка в конфиге.
скорее всего нарушен синтаксис JSON в переменной BENCHMARK


#22

как обнулить config?


#23

удалите конфиги и заново установите пакет

rm /hive-config/autoswitch.conf
rm /hive-congig/rig_data.json
curl https://raw.githubusercontent.com/lexandr0s/autoswitch/master/as-setup.sh | bash

#24

thnx man


#25

v .1.2

  • Добавлена возможность создания нескольких полетных листов для одного алгоритма. Например, полетные листы с разными майнерами (Красные/Зеленые риги) или с разными адресами кошельков.
    Для этого в конфиг добавлена переменная PROFILE.
    При присвоении этой переменной какого-то значения, вы получаете возможность создавать Полетные листы с добавлением имени профиля. По шаблону: "Autoswitch Название_алгоритма PROFILE". Автосвитчер на таком риге будет использовать только полетные листы в названии которых содержится значение переменной PROFILE.
    После изменения данной переменной и имен полетных листов, вам необходимо переконфигурировать Autoswitch, запустив команду "autoswitch config"
    Если вам не нужен этот функционал и вы используете только один полетный лист для каждого алгоритма, просто оставьте эту переменную пустой. В таком случае вам не требуется предпринимать никаких дополнительных действий.

  • Set the PROFILE variable if you want to create several different FS for one algorithm.
    For example, with different miners (for NVIDIA and AMD rigs) or with different wallet addresses. If this variable is set, you can create a FS with names like this: “Autoswitch Algorithm PROFILE” and autoswitch on this riga will use FS only with this PROFILE in the name.
    After assigning the value of the variable PROFILE and modifying / creating the FS, it is necessary to run the command “autoswitch config”
    If you are not using different profiles, just leave PROFILE variable empty.

#26

Автообновление до v. 1.3

  • Сообщения о переключении алгоритмов
  • мелкие фиксы

++++++++++++
Autoupdate to v.1.3

  • Messages that the algorithm is switched

  • minor bugfixes