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

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


Serzh Black

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

В 01.06.2018 в 21:40, sergif сказал:

поправил. работает

а в чём ошибка конфига была в итоге? можете запостить последнюю версию?

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

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

а в чём ошибка конфига была в итоге? можете запостить последнюю версию?

вот правильно

' eval'        => '
        $CStat{$c}{algo} = "Equihash";
        $CStat{$c}{bt} = 151;
        $CStat{$c}{br} = 12500;
        $CStat{$c}{rate} = $TICKERS{stocksexchange}{BTCZ_BTC};
        print $CStat{$c}{hr};
        $CStat{$c}{hr} = $CStat{$c}{hr}*8192/$CStat{$c}{bt};
    ',

ошибка была не в том месте прописал print $CStat{$c}{hr};

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

@Serzh Black 

отсюда возможно дёрнуть сложность https://explorer.bitcoininterest.io/status ?

 

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

В 01.06.2018 в 23:13, Serzh Black сказал:

@konfetka работает?

бота подключил, пока работает, буду тестить.

а плагин телеграма не умеет в socks5 прокси ? Пробовал TOR

$proxy{ip} = '127.0.0.1';
$proxy{port} = '9150';

ничего не вышло =(

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

@konfetka готово! )

новый плагин и новый экзешник

прокси:

# HTTPS proxy
my $proxy = 'connect://192.116.142.153:8080'; 
# SOCKS5 proxy
my $proxy = 'socks://192.168.0.13:9150';
# если есть логин\пароль (не проверял, но должно работать)
my $proxy = 'socks://user:pass[собака]192.168.0.13:9150';
my $proxy = 'connect://user:pass[собака]192.116.142.153:8080';

с Tor отлично работает

tor точно не ворует транзакции? пишут всякое

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

Вроде не ворует. Я правда не слишком много транзакций делал через Tor.

upd. TOR работет. Отлично.

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

Настройка и проверка работы плагина reset_nvidia.txt

 

  1. копируем все файлы из Additional files в папку windows
  2. открываем консоль
  3. вводим: "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" и нажимаем enter. Должны получить результат. Если его нет, тогда ищем где у вас в системе установлен nvidia-smi.exe и прописываем соответствующий путь в плагине
  4. вводим devconx64.exe findall =display и нажимаем Enter. Если команда не найдена, то выполняем шаг 1
  5. в списке видим все ваши видео адаптеры. скорее всего все карты NVIDIA будут со следующим vendor id VEN_10DE
  6. для того чтобы зарезетить все карты набираем devconx64.exe restart =display *VEN_10DE* и ждем Enter. Экран, скорее всего моргнет. Все верно, сброс произведен
  7. если (вдруг) vendor id у вас другой, то в плагине нужно прописать правильное значение используя * означающую любое количество любых символов
  8. добавляем плагин в конфиг и дожидаемся когда HRM выдаст результат опроса карт (на второй итерации после запуска, чтобы дать картам разогнаться и затем каждые 5 минут если с картами нет проблем или каждую минуту если процесс восстановления работоспособности запустился)
  9. если нужно указываем $utilization_limit - резетить карты если загрузка любой из карт в процентах меньше указанного здесь значения
  10. ждем проблем с картами ?

 

Можно проверить работу плагина следующим образом:

 

  1. в диспетчере устройств отключаем одну карту (или устраиваем ей переразгон)
  2. плагин при очередном опросе это обнаруживает и резетит все карты, после чего карта снова появляется в списке устройств как задействованная
  3. снова ее отключаем и смотрим как плагин снова резетит карты
  4. после нескольких неудачных резетов плагин уводит ригу в ребут

 

Основное отличие плагина от аналогичных зацикленных батников в том, что во первых: плагин сначала пытается восстановить работу карт без перезагрузки. во вторых: все внешние исполняемые команды выполняются как отдельные процессы и плагин не ждет окончания их завершения, но результат их работы или не удачи, тем не менее получает. это очень замечательно, т.к. при серьезном зависоне выполнение nvidia-smi.exe или devconx64.exe может не закончится никогда, а значит до ребута не дойдет. Но только не с HRM ?

 

Если установлен плагин telegram_bot.txt то все проблемы дублируются в телеграм

 

ЗЫ: плагин ждет очередного зависона моей фермы, чтобы стать (очень на это надеюсь) еще лучше

 

всем профита!

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

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

 

У меня работают 10 мастернод, поэтому проверять балансы вручную то еще удовольствие. Как и полагается, эту работу за меня делают компьютеры. Я не стал нагружать HRM постоянными проверками, а сделал так, что балансы я получаю по команде телеграм боту.

 

Плагин:

 

# плагин сработает только тогда когда получена команда MN из телеграма и сам плагин телеграм бота установлен 
if ($PLUGINS{telegram_bot}{externalcommands}{MN} and $PLUGINS{telegram_bot}{sendmessage})
{
	# здесь будем собирать контент для сообщения, которое будет отправлено в телеграм
	my $message;

	# получим курсы с Ёбита. если не нужно - удаляем
	my $ticker = &GetContentFromURL("https://yobit.net/api/3/ticker/btc_usd-btc_rur");
	my ($raterur,$rateusd) = ($2,$1) if $ticker =~ /"btc_usd":\{"high":.+?,"buy":(\d+\.?\d*),"sell":.+?\},"btc_rur":\{"high":.+?,"buy":(\d+\.?\d*),"sell":.+?\}/;

	# описание первой монеты
	# название
	my $coinname = 'ALMEX';
	# сколько монет было куплено для мастерноды
	my $initcoins = 1000;
	# курс монеты с соответствующей биржи из плагина exch_tickers.txt
	my $coinrate = $TICKERS{cryptobridge}{ALMEX_BTC};
	# URL блокэксплорера где можно узнать баланс кошелька мастерноды
	my $balance = 'http://explorer.almex.team/address/AXpY5CqLHqjv9R6GAgpamDjoPcdAg58Wdp';
	# получаем баланс и продолжаем только если он найден
	if (&GetContentFromURL($balance) =~ /<th>.+?<\/th><\/tr><\/thead><tbody>.+?<tr><td>.+?<\/td><td>.+?<\/td><td>(.+?)<\/td><\/tr>/)
	{
		# ниже определяем балансы мастерноды (залоченый, намайненый и сумарный) в монетах, а также в BTC, рублях и долларах
		# лишнее, кому не нужно, выкидываем
		my %coin;
		$coin{sumcoins} = $1;
		$coin{initcoins} = $initcoins;
		$coin{mintedcoins} = $coin{sumcoins} - $coin{initcoins};
		$coin{sumcoins}{btc} = $coin{sumcoins} * $coinrate;
		$coin{initcoins}{btc} = $coin{initcoins} * $coinrate;
		$coin{mintedcoins}{btc} = $coin{mintedcoins} * $coinrate;
		$coin{sumcoins}{rur} = sprintf("%.2f", $coin{sumcoins}{btc} * $raterur);
		$coin{initcoins}{rur} = sprintf("%.2f", $coin{initcoins}{btc} * $raterur);
		$coin{mintedcoins}{rur} = sprintf("%.2f", $coin{mintedcoins}{btc} * $raterur);
		$coin{sumcoins}{usd} = sprintf("%.2f", $coin{sumcoins}{btc} * $rateusd);
		$coin{initcoins}{usd} = sprintf("%.2f", $coin{initcoins}{btc} * $rateusd);
		$coin{mintedcoins}{usd} = sprintf("%.2f", $coin{mintedcoins}{btc} * $rateusd);
		# добавляем к нашему сообщению информацию о балансах в монетах и курс, если он поучен
		$message .= "$coinname".(($coinrate)?" ($coinrate)":'').": $coin{initcoins}+$coin{mintedcoins}";
		# добавляем к нашему сообщению информацию о балансах в рублях (или в чем угодно - исправьте сами)
		$message .= " = $coin{initcoins}{rur}+$coin{mintedcoins}{rur} RUR" if $coinrate and $raterur and $rateusd;
		$message .= "\n\n";
	}

	# монета номер два, описываем начальные значения, остальное без изменений
	my $coinname = 'H2O';
	my $initcoins = 1000;
	my $coinrate = $TICKERS{graviex}{h2obtc};
	my $balance = 'http://explorer.h2oproject.co/address/HhNL7jL8QfwArwcvid7CZRayxVjFGXBN3W';
	if (&GetContentFromURL($balance) =~ /<th>.+?<\/th><\/tr><\/thead><tbody>.+?<tr><td>.+?<\/td><td>.+?<\/td><td>(.+?)<\/td><\/tr>/)
	{
		my %coin;
		$coin{sumcoins} = $1;
		$coin{initcoins} = $initcoins;
		$coin{mintedcoins} = $coin{sumcoins} - $coin{initcoins};
		$coin{sumcoins}{btc} = $coin{sumcoins} * $coinrate;
		$coin{initcoins}{btc} = $coin{initcoins} * $coinrate;
		$coin{mintedcoins}{btc} = $coin{mintedcoins} * $coinrate;
		$coin{sumcoins}{rur} = sprintf("%.2f", $coin{sumcoins}{btc} * $raterur);
		$coin{initcoins}{rur} = sprintf("%.2f", $coin{initcoins}{btc} * $raterur);
		$coin{mintedcoins}{rur} = sprintf("%.2f", $coin{mintedcoins}{btc} * $raterur);
		$coin{sumcoins}{usd} = sprintf("%.2f", $coin{sumcoins}{btc} * $rateusd);
		$coin{initcoins}{usd} = sprintf("%.2f", $coin{initcoins}{btc} * $rateusd);
		$coin{mintedcoins}{usd} = sprintf("%.2f", $coin{mintedcoins}{btc} * $rateusd);
		$message .= "$coinname".(($coinrate)?" ($coinrate)":'').": $coin{initcoins}+$coin{mintedcoins}";
		$message .= " = $coin{initcoins}{rur}+$coin{mintedcoins}{rur} RUR" if $coinrate and $raterur and $rateusd;
		$message .= "\n\n";
	}

   # отправляем сообщение в ответ на команду если это сообщение успешно составлено
   $PLUGINS{telegram_bot}{sendmessage}->($message, $PLUGINS{telegram_bot}{externalcommands}{MN}) if $message;
}

 

Сохраняем это в папку plugins с именем, например, mnodes.txt и подключаем в конфиге:

 

	'EV'  => 'plugins:coins_blocks.txt;estimate_avg.txt;mnodes.txt',

отправляем боту команду MN и получаем результат:

 

image.thumb.png.57248e56c8f2d4f791d14dbde93115b6.png

 

Всем профита! :)

 

 

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

после выкидывания ненужного должно получиться чтото типа такого:

 

if ($PLUGINS{telegram_bot}{externalcommands}{MN} and $PLUGINS{telegram_bot}{sendmessage})
{
	my $message;
	my $ticker = &GetContentFromURL("https://yobit.net/api/3/ticker/btc_usd-btc_rur");
	my ($raterur,$rateusd) = ($2,$1) if $ticker =~ /"btc_usd":\{"high":.+?,"buy":(\d+\.?\d*),"sell":.+?\},"btc_rur":\{"high":.+?,"buy":(\d+\.?\d*),"sell":.+?\}/;

	my $coinname = 'ALMEX';
	my $initcoins = 1000;
	my $coinrate = $TICKERS{cryptobridge}{ALMEX_BTC};
	my $balance = 'http://explorer.almex.team/address/AXpY5CqLHqjv9R6GAgpamDjoPcdAg58Wdp';
	if (&GetContentFromURL($balance) =~ /<th>.+?<\/th><\/tr><\/thead><tbody>.+?<tr><td>.+?<\/td><td>.+?<\/td><td>(.+?)<\/td><\/tr>/)
	{
		my %coin; $coin{sumcoins} = $1; $coin{initcoins} = $initcoins;
		$coin{initcoins}{rur} = sprintf("%.2f", $coin{initcoins} * $coinrate * $raterur);
		$coin{mintedcoins}{rur} = sprintf("%.2f", ($coin{sumcoins} - $coin{initcoins}) * $coinrate * $raterur);
		$message .= "$coinname".(($coinrate)?" ($coinrate)":'').": $coin{initcoins}+".($coin{sumcoins} - $coin{initcoins});
		$message .= " = $coin{initcoins}{rur}+$coin{mintedcoins}{rur} RUR" if $coinrate and $raterur and $rateusd;
		$message .= "\n\n";
	}

	my $coinname = 'H2O';
	my $initcoins = 1000;
	my $coinrate = $TICKERS{graviex}{h2obtc};
	my $balance = 'http://explorer.h2oproject.co/address/HhNL7jL8QfwArwcvid7CZRayxVjFGXBN3W';
	if (&GetContentFromURL($balance) =~ /<th>.+?<\/th><\/tr><\/thead><tbody>.+?<tr><td>.+?<\/td><td>.+?<\/td><td>(.+?)<\/td><\/tr>/)
	{
		my %coin; $coin{sumcoins} = $1; $coin{initcoins} = $initcoins;
		$coin{initcoins}{rur} = sprintf("%.2f", $coin{initcoins} * $coinrate * $raterur);
		$coin{mintedcoins}{rur} = sprintf("%.2f", ($coin{sumcoins} - $coin{initcoins}) * $coinrate * $raterur);
		$message .= "$coinname".(($coinrate)?" ($coinrate)":'').": $coin{initcoins}+".($coin{sumcoins} - $coin{initcoins});
		$message .= " = $coin{initcoins}{rur}+$coin{mintedcoins}{rur} RUR" if $coinrate and $raterur and $rateusd;
		$message .= "\n\n";
	}

	$PLUGINS{telegram_bot}{sendmessage}->($message, $PLUGINS{telegram_bot}{externalcommands}{MN}) if $message;
}

 

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

и домашнее задание ))))))))))

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

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

'hrurl'    => 'http://explorer.yenten.lolpool.club/api/getdifficulty',

Который день не работает уже. Где теперь лучше брать?

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

@konfetka как отсюда правильно вытащить значение? в regexp не силен(

https://cryptoservices.net/en/ytn-explorer

 

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

можно и отсюда. у ytn нет чтоли нормального эксплорера с апи или пула где попроще?

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

@Amarok ок. завтра помогу. сегодня лень

 

ЗЫ: в папку Some files положил два файла

  • tcping.exe - проверка открытости портов (например стратума)
  • tgnotify.exe - шлет сообщения в телеграм (например в того бота, который вы создали для HRM) из командной строки. может использоваться где угодно, например в walletnotify и alertnotify виндовых демонов или в любом батнике или планировщике для информирования себя любимого о чем то важном или не очень
Ссылка на комментарий
Поделиться на другие сайты

Привет всем. Как настроить по следующей задаче: чтобы считывал хешрейт монеты и когда ее хешрейт падал до заданной цифры (но не выше 15% от заданной)  -  копало ее, а когда хешрейт снова вырастал выше заданного значения на 15%+, то начинало  копать мейн монету? Спасибо)

 

%VARS = (
	'TH'		=> 30,
	'TC'		=> 02,
	'TK'		=> 01,
	'HD'		=> 15,
);

%C = (

'1' =>
{
	wtmname  => '1',
	minerdir => 'D:\MINERS\1',
	minerexe => '1.bat',
	hrlimit  => '',
	main     => 'true',

},

'2' =>
{
	wtmname  => '2',
	minerdir => 'D:\MINERS\2',
	minerexe => '2.bat',
	hrlimit  => '1700000000',
	hrurl    => 'https://[shitcoin]/api/getnetworkhashps',
	hrregexp    => '^(\d+)$',
},

 

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

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

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

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

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

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

Войти

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

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

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

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