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

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


Serzh Black

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

Приветствую.

Сегодня обновился stocks.exchange. Теперь запросы API бегают через Cloudflare. Вставил в exch_tickers.txt:

my $tickers = &GetContentFromURL("https://stocks.exchange/api2/ticker");
print "$tickers\n"; 

и получил:

 

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

 - ERROR: https://stocks.exchange/api2/prices : 503 Service Temporarily Unavailable
<!DOCTYPE HTML><html lang="en-US"><head>  [..]

 <p data-translate="allow_5_secs">Please allow up to 5 seconds&hellip;</p>  </div>     <form id="challenge-form" action="/cdn-cgi/l/chk_jschl" method="get">    <input type="hidden" name="jschl_vc" value="3b32754b4a8173092b5a63d49c8bcc6f"/>    <input type="hidden" name="pass" value="1530552154.349-fmYSwFhjfM"/>    <input type="hidden" id="jschl-answer" name="jschl_answer"/>  </form></div>                    <div class="attribution">            <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=iuam" target="_blank" style="font-size: 12px;">DDoS protection by Cloudflare</a>            <br>            Ray ID: 4342cb7baa909c65          </div>      </td>         </tr>  </table></body></html>


Есть идеи?

 

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

@snesterkov 

1. --getby:ie но глючное

2. Подождать. Вытащат из под Cloudflare. Так уже бывало с другими биржами

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

чутка обновил плагин master_nodes.txt

 

1. теперь длинные сообщения, которые не пролазили в телеграм, разбиваются на несколько штук

2. вместо skip=true можно использовать # перед именем монеты

'#POLIS' =>
{
	'collateral'  => 1000,
	'rate'        => $TICKERS{cryptobridge}{POLIS_BTC},
	'explorer'    => 'https://explorer.polispay.org',
	'address1'    => 'PKFWWDc3xYuMAWVeGJAdcj3Tojoz63DiHU',
	'address2'    => 'PF7QQRRJZDWgCS9g78j6fU7RW3RQEZ9Q3K',
},

3. вместо skip=monitor можно использовать @ перед именем монеты. помимо всего прочего это еще и отсортирует монеты: сначала мониторящиеся, затем все остальные

'@POLIS' =>
{
	'collateral'  => 1000,
	'rate'        => $TICKERS{cryptobridge}{POLIS_BTC},
	'explorer'    => 'https://explorer.polispay.org',
	'address1'    => 'PKFWWDc3xYuMAWVeGJAdcj3Tojoz63DiHU',
	'address2'    => 'PF7QQRRJZDWgCS9g78j6fU7RW3RQEZ9Q3K',
},

Рядом с курсом монеты добавлена информация о размере залога для одной мастерноды

 

image.thumb.png.f324d5925a0d29a32a78e37a1633c411.png

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

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

master_nodes.txt

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

И снова про мастерноды.

 

Со временем у меня их стало больше 40 штук. Нет ничего проще следить за всем этим хозяйством, когда вкалывают роботы.

 

На серверах по крону раз в сутки запускается скрипт, который собирает информацию со всех запущенных демонов. Это информация о статусе мастерноды и номеру блока:

 

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

echo "***h2o"
/root/wallets/h2o-cli masternode debug
/root/wallets/h2o-cli getinfo | grep "blocks"

echo "***almex"
/root/wallets/almex-cli masternode debug
/root/wallets/almex-cli getinfo | grep "blocks"

echo "***xinard"
/root/wallets/xinard-cli masternode debug
/root/wallets/xinard-cli getinfo | grep "blocks"

echo "***superlumic"
/root/wallets/superlumic-cli masternode debug
/root/wallets/superlumic-cli getinfo | grep "blocks"

echo "***cubd"
/root/wallets/cub-cli masternode debug
/root/wallets/cub-cli getinfo | grep "blocks"

echo "***zenad"
/root/wallets/zenad-cli masternode debug
/root/wallets/zenad-cli getinfo | grep "blocks"

echo "***wilod"
/root/wallets/wilo-cli masternode debug
/root/wallets/wilo-cli getinfo | grep "blocks"

echo "***versuscoind"
/root/wallets/versuscoind masternode debug
/root/wallets/versuscoind getinfo | grep "blocks"

echo "***smrtd"
/root/wallets/smrt-cli masternode debug
/root/wallets/smrt-cli getinfo | grep "blocks"

echo "***delord"
/root/wallets/delor-cli masternode debug
/root/wallets/delor-cli getinfo | grep "blocks"

free -t -h -w
uptime

 

 

заодно получается информация о расходе памяти и нагрузке и все это отправляется в телеграм

 

помимо всего прочего, все упавшие демоны, если такое происходит, поднимаются по крону каждые 5 минут:

 

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

if ! pgrep cubd >/dev/null
then
 echo "cubd is not running."
 /root/wallets/cubd -daemon
fi

if ! pgrep superlumicd >/dev/null
then
 echo "superlumicd is not running."
 /root/wallets/superlumicd -daemon
fi

if ! pgrep xinardd >/dev/null
then
 echo "xinardd is not running."
 /root/wallets/xinardd -daemon
fi

if ! pgrep almexd >/dev/null
then
 echo "almexd is not running."
 /root/wallets/almexd -daemon
fi

if ! pgrep h2od >/dev/null
then
 echo "h2od is not running."
 /root/wallets/h2od -daemon
fi

if ! pgrep zenadd >/dev/null
then
 echo "zenadd is not running."
 /root/wallets/zenadd -daemon
fi

if ! pgrep wilod >/dev/null
then
 echo "wilod is not running."
 /root/wallets/wilod -daemon
fi

if ! pgrep versuscoind >/dev/null
then
 echo "versuscoind is not running."
 /root/wallets/versuscoind -daemon
fi

if ! pgrep smrtd >/dev/null
then
 echo "smrtd is not running."
 /root/wallets/smrtd -daemon
fi

 

 

И в завершение, плагин мастернод теперь возвращает номер блока, чтобы всегда была возможность по быстрому оценить работу проблемных мастернод или оценить возможную причину отвала мастерноды (самая распространенная - демон застревает на каком-то блоке и бесконечно пишет: Masternode successfully started, хотя, на самом деле, это уже не так) без необходимости запуска локального кошелька и ssh сессии с сервером

 

Проверено лично! Всем профита! )

 

 

master_nodes.txt

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

  • 3 недели спустя...

Что-то затихла тема, где обсуждения конфигов/настройки? Или в связи с платностью всё перекочевало в личку под заказ?

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

  • 2 недели спустя...

Не очень существенное по функционалу, но очень существенное по стабильности работы обновление HRM и сервера: версии 0.84

 

Предыстория: Время от времени HRM зависал и не отваливался по таймауту при обращении к внешним ресурсам. У меня случалось это крайне редко и выявить проблему не представлялось возможным. До тех пор пока вынужденно не пришлось сменить провайдера, променяв белый выделенный IP на серую динамику за НАТом. И тут начались странности: SSH сессии отваливаются каждые 5 минут при отсутствии активности, HLS видеопоток регулярно прерывается, и самое главное, HRM зависал с периодичностью 30 минут - пол дня не возвращаясь из интернета. Более двух недель было потрачено на обнаружение причины, которая оказалась во внешнем модуле. Вот уже более двух суток проблем с зависанием HRM не наблюдается. Надеюсь, теперь это перманентное состояние

 

Крайне рекомендую обновиться!

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

  • 3 недели спустя...

XDNA добавили в WTM

судя по тому, что он иногда рисует block reward таким, каким он не бывает на практике, то, скорее всего, усредняет, также как и сложность.

у меня результаты сходятся, в пределах несущественных отклонений, но самые дотошные могут проверить точность вычислений профита в HRM.

интересно, выплаты с пула совпадают с расчетными? кто-нибудь майнит?

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

  • 3 недели спустя...

HRM v.0.85

Исправлена ошибка с неверным начислением $VARS{HD}

 

Если в майнинге и\или мониторинге участвуют монеты с небольшой разницей в профите, то погрешность в неправильном начислении $VARS{HD} была практически незаметна.

 

Но если в списке мониторится монета профит которой в десятки раз больше, то профит всех остальных снижался до, например, 5% от максимального, а при начислении $VARS{HD} (например, 7%) становился 12%!!! что, фактически, в 2.5 раза больше. Теперь ошибка исправлена и профит таких монет будет оцениваться верно (5+7%=5.35%)

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

  • 3 недели спустя...

HRM v.0.85

Изменения в плагине exch_tickers.txt в связи с изменениями в выдаче Crypto Bridge https://api.crypto-bridge.org/api/v1/ticker

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

В процессе эксплуатации фермы возникают различные нештатные ситуации. Одной из них была остановка вентилятора на одной из карт и работа ее при температуре 96 градусов.

 

теперь плагин reset_nvidia.txt дополнительно умеет резетить карты и\или перегружать ферму в случае если:

  • скорость вентилятора меньше указанного значения (по умолчанию отключено)
  • температура карты больше указанного значения (по умолчанию 80)

само собой, вся информация о нештатном поведении дублируется в телеграм

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

Подскажите где почитать параметры:

- 'hrurl'    => 'https://api-etc.ethermine.org/networkStats',

- 'hrregexp' => '"hashrate":(\d+),',

- 'eval'        => '',

и как они увязываются в нахождение нужных  параметров (хешрейт сети, курс и тд.). В примере с ETC, ETH, ZEC вроде как все понятно. Но когда нужно добыть хешрейт с пула, как то все сложнее. Я так понимаю надо через ''eval' делать и что за волшебное  $CStat{$c}{...} ????? 

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

@alexliverpool 

конкретно для ETC я использую

'ETC' =>
{
	'wtmname'     => 'EthereumClassic',
	'minerdir'    => 'C:\HRM\bats',
	'minerexe'    => 'ETC.bat',
	'hrurl'       => 'https://ethereum-classic.miningpoolhub.com/index.php?page=statistics&action=pool',
	'hrregexp'    => '<span id="b-diff">(\d+)</span>',
	'eval'        => '$CStat{$c}{hr} = $CStat{$c}{hr}/$CStat{$c}{bt};',
	'skip'        => 'false',
},

при этом курс и блок тайм берутся с WTM

%VARS = (
	'WC'  => 'https://whattomine.com/coins.json',
);

$CStat{$c}{...} - это значения различных параметров текущей монеты (в конфиге которой они используются)

 

сложность на https://api-etc.ethermine.org/networkStats, как мне показалось раньше, стоит как влитая и редко меняется или слишком усредняется. не использую. возможно сейчас ситуация изменилась, я не мониторил

 

 

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

Как вывести свисок диффов/хешрейтов всех активных монет (плагином по кнопке), чтобы понимать что изменилось в профите (биржевая цена только видна)?

Как сделать замер времени обсчета каждой монеты? (что-то начало по 3-5 минут считать каждый тик, при настройках в 1 минуту, не могу найти кто где "тупит")

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

11 минут назад, rezed сказал:

Как вывести свисок диффов/хешрейтов всех активных монет (плагином по кнопке), чтобы понимать что изменилось в профите (биржевая цена только видна)?

такого плагина нет. как вариант print "$c - $CStat{$c}{hr}\n" в самом начале внутри eval

11 минут назад, rezed сказал:

Как сделать замер времени обсчета каждой монеты? (что-то начало по 3-5 минут считать каждый тик, при настройках в 1 минуту, не могу найти кто где "тупит")

вот это не понял

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

8 hours ago, Serzh Black said:

такого плагина нет. как вариант print "$c - $CStat{$c}{hr}\n" в самом начале внутри eval

Я знаю что нет, потому и просил помощи в написании. Спасибо, понял что надо, и куда надо (как вариант).

 

8 hours ago, Serzh Black said:

вот это не понял

При настроенном опросе раз в 1 минуту, обсчеты по факту идут раз в 3-5 минуты, как я предполагаю, какой-то (а может и не один) из запросов (или к експлорерам монет, или к биржам) очень долго подвисает. Вручную перебрать все, хоть их и не много (порядка 10 монет), сложновато. Вот я и думал, как бы это сделать замер времени на обсчет каждой монеты (в перле, вроде тут он, я не очень силен), чтобы вычислить узкое место. Грубо говоря, надо вывести локальное время (до секунд, а лучше миллисекунд) сразу до и после обсчета каждой монеты.

ЗЫ: ну или просто скажи, если есть возможность, как вывести текущее локальное время до секунд, а я сам найду куда это пристроить )

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

Подскажите что не так. Хешрейт сети на страничке указывается через запятые, как их проигнорировать  этом примере? 

 

'UBQ' =>
{
    wtmname  => 'Ubiq',
    minerdir => 'PATH\TO\MINER',
    minerexe => 'MINER.bat',
    hrlimit  => '3000000',
    hrurl    => 'https://ubiq.suprnova.cc/index.php?page=statistics',
    hrregexp => '"b-nethashrate">(\d+\.\d+\.\d+)',
    skip     => 'monitor',
},

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

@rezed в последних версиях таймаут обращения к внешним ресурсам уменьшен с 60 до 20 секунд.

для вывода времени можно использовать print &GetDateTime();

@alexliverpool 

вот тут посмотрите. вопрос + ответ

 

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

И еще вопрос. В режиме хешрейта майню две монеты, SUQA и ETH. В режиме монитора хешрейты сетей обеих монет отображаются правильно и каждую минуту обновляются. В основном режиме, первый расчет происходит правильно, потом " - ETH will be ignored due to insufficient parameters - SUQA will be ignored due to insufficient parameters" и "No coins to mine". 

 

###################################################################
# VARIABLES                                                       #
###################################################################

%VARS = (
	# time in seconds between hashrates checks
	'TH'		=> 60,
	# how many times should the hashrate be checked before switch to new miner
	'TC'		=> 02,
	# delay in seconds before new miner will start
	'TK'		=> 01,
	# hashrate or profit increment for currently mined coin in percents
	'HD'		=> 10,
	# WTM coins.json URL
	'WC'		=> 'https://whattomine.com/coins.json',
);

###################################################################
# COINS                                                           #
###################################################################

%C = (

'ETH' =>
{
	wtmname  => 'Ethereum',
	minerdir => 'c:\SuperMine\ClaymoreDual',
	minerexe => 'eth_claymore_dhashimoto_ethermine.org_binance.bat',
	hrlimit  => '240000000000000',
	hrurl    => 'https://api.ethermine.org/networkStats',
	hrregexp => '"hashrate":(\d+),',
	main     => 'true',
	skip     => 'false',
},

'SUQA' =>
{
    wtmname  => 'SUQA',
    minerdir => 'c:\SuperMine\ccminer',
    minerexe => 'suqu_x22i_icemining.ca_local.bat',
    hrlimit  => '14000',
    hrurl    => 'https://www.coincalculators.io/coin.aspx?crypto=suqa-mining-calculator',
    hrregexp => '"currentnethash">(\d+\.\d+)',
    eval     => '$CStat{$c}{hr} = $CStat{$c}{hr}*1000',
    skip     => 'false',
},

);

1;

 

Screenshot_1.jpg

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

@alexliverpool 

Ваш конфиг работает отлично

image.thumb.png.a46355d6ea2a0a62c6d25835487075fb.png

 

Попробуйте в minerdir заменить \ на /

 

 

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

8 часов назад, Serzh Black сказал:

@alexliverpool 

Ваш конфиг работает отлично

image.thumb.png.a46355d6ea2a0a62c6d25835487075fb.png

 

Попробуйте в minerdir заменить \ на /

 

 

Заменил " \ на /", то же самое. Взял пример example2 , сделал батники под ETC, ETH, ZEC, хешрейт берется с ethermine. Первое чтение нормуль, последующие нуудачные. Может что версия lite, запускаю с ключами "..\hrm.exe --run --cfg:example2.cfg --dir:..\examples"

Screenshot_1.jpg

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

@alexliverpool я проверил. действительно есть косяк. запускать нужно так:

 

..\hrm.exe --run  --cfg:example2.cfg --dir:%~sdp0

 

попробуйте

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

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

@Serzh Black нашел где были тормоза:

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

On 9/25/2018 at 10:56 AM, Serzh Black said:

HRM v.0.85

Изменения в плагине exch_tickers.txt в связи с изменениями в выдаче Crypto Bridge https://api.crypto-bridge.org/api/v1/ticker

но т.к. старый плагин (у меня версия 0.80) работал без ошибок, я ничего не заметил.

Так вот, при разборе тормоза, выяснилось что старый скрипт именно тут застревал на 1-2 минуты.

по коду

while ($tickers =~ /\{"id":"(.+?)",.+?"bid":"(\d+\.?\d*)"\}/g)

я его изменил на

while ($tickers =~ /\{"id":"(.+?)",.+?"bid":"(\d+\.?\d*)"/g)

и все заработало так же быстро как и ранее ?

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

когда CB изменил формат, таки да, именно в этом месте начались тормоза )

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

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

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

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

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

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

Войти

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

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

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

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