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

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


Serzh Black

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

HRM v.0.72

Использование HRM в сети из нескольких ферм

Во время работы HRM обращается к различным ресурсам в интернете, а в сети из нескольких ригов количество таких обращений возрастает пропорционально количеству установленных копий HRM. Для того чтобы минимизировать трафик и вероятность получения отказа в доступе из-за слишком частых обращений (Too many requests) HRM может работать в master и slave режимах

 

Запуск HRM в режиме мастер (основной) производится при помощи переключателя --master:

  • hrm.exe --run --cfg:my.cfg --dir:\\MASTERRIG\HRM --log --rig:master --savestat --profit --master

Если указан переключатель --master, то ответы на все запросы, которые производятся по любым адресам URL, HRM будет кэшировать на диске в директории \\MASTERRIG\HRM

 

Все остальные копии HRM в сети из нескольких ферм необходимо запустить в режиме slave (подчиненный) указав переключатель --slave:

  • hrm.exe --run --cfg:my.cfg --dir:\\MASTERRIG\HRM --log --rig:slave1 --profit --slave
  • hrm.exe --run --cfg:my.cfg --dir:\\MASTERRIG\HRM --log --rig:slave2 --profit --slave
  • hrm.exe --run --cfg:my.cfg --dir:\\MASTERRIG\HRM --log --rig:slave3 --profit --slave

В этом случае HRM прежде чем сделать запрос по адресу URL сначала попытается найти его в кэше в директории \\MASTERRIG\HRM, который создал HRM master. Если данные найдены и со времени создания кэша прошло менее 180 секунд, то используются данные из кэша. Если же данные не найдены или просрочены (HRM master прекратил работу), то HRM slave проигнорирует кэш и получит актуальные данные из интернета.

 

Совместное использование переключателей --master и --slave

  • hrm.exe --run --cfg:my.cfg --dir:\\MASTERRIG\HRM --log --rig:slave1 --profit --master --slave

В этом случае HRM ведет себя как slave до тех пор пока рабатает HRM master (--rig:master). Если же по каким-то причинам HRM master прекратил работу, то через 180 секунд HRM не только скачает данные из интернета но и закэширует их для всех slave копий в сети и будет делать это каждые 180 секунд до тех пор пока HRM master не заработает снова.

 

Переключателю --slave можно указать значение в секундах в течение которого данные в кэше будут считаться актуальными:

  • hrm.exe --run --cfg:my.cfg --dir:\\MASTERRIG\HRM --log --rig:slave1 --profit --slave:240

По умолчанию это значение 180 секунд (3 минуты)

 

Приятный бонус: на время отладки конфига можно указать --master и --slave одновременно и, нажимая [N] в программе перечитывать его проверяя результат. В течение 180 секунд HRM не будет "зависать" на обращениях к URL и отладка будет продвигаться быстрее

 

ЗЫ: очевидно, что HRM master может работать на любом компьютере или ноутбуке, снабжая данными все копии HRM slave

 

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

Вот такой высокоточный калькулятор  :) прогноз на сутки и статистика майнинга за 24 часа при неизменной сложности

 

image.thumb.png.57c2fc5cab923512e4dd9b7b2de91ad6.pngimage.thumb.png.f678f5e67f98f00b915245850b1f5bbf.png

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

@Shpirny 

смотрим сложность монет на официальных блокэксплорерах и сложность последнего найденного блока на пуле:

GBX (~одинаковые)

https://explorer.gobyte.network/api/getdifficulty

http://yiimp.eu/explorer/GBX

RVN (~одинаковые)

https://rvnstats.info/d/000000006/ravencoin-statistics-v0-2?refresh=1m&orgId=1

http://yiimp.eu/explorer/RVN

А вот что рисует нам оф. BE и что майнит пул BWK:

http://explorer.bulwarkcrypto.com/api/getdifficulty что совпадает с http://whattomine.com/coins/224-bwk-nist5

данные же пула: https://poolr.io/explorer/BWK совпадают с данными по getmininginfo и getdifficulty в кошельке

 

вот только WTM и Эксплорер рисуют HR 234 GH\s  а getmininginfo 28 Gh\s

 

Вывод: WTM верить нельзя. Блокэксплореру доверяй, но проверяй. Или может быть я чтото не учел

 


14:52:19

getmininginfo


14:52:19

{
    "blocks" : 96736,
    "currentblocksize" : 0,
    "currentblocktx" : 0,
    "difficulty" : 885.22880236,
    "errors" : "",
    "genproclimit" : -1,
    "networkhashps" : 28978822385,
    "pooledtx" : 0,
    "testnet" : false,
    "chain" : "main",
    "generate" : false,
    "hashespersec" : 0
}

 

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

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

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

@Serzh Black 

 

А можно научить HRM выдавать средние значения по получаемой прибыли?Например за сутки.Теоретически можно вытаскивать из эксель файла,но это достаточно муторная процедура.Но и она с погрешностью,потому что усреднять можно максимальные значения,но не факт ,что они майнились в этот момент(из- за задержки в включении майнера).

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

можно. но не нужно. профит это не увеличит. стабильность не повысит. а вот добавить в csv колонку в которой будет указана майнилась монета в это время или нет, можно

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

18 минут назад, Serzh Black сказал:

можно. но не нужно. профит это не увеличит. стабильность не повысит. а вот добавить в csv колонку в которой будет указана майнилась монета в это время или нет, можно

 

Похожий вопрос, можно научить HRM выдавать среднее значение hrwtm режиме хешрейт? А ещё лучше чтоб среднее значение автоматом подставлялось в hrlimit самой программы :)

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

@Riva я понимаю зачем это все затеяно ))) я когда майнил в hashrate режиме корректировал hrlimit не часто. неужели сейчас есть такая необходимость усреднять и корректировать каждый день?

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

7 минут назад, Serzh Black сказал:

@Riva я понимаю зачем это все затеяно ))) я когда майнил в hashrate режиме корректировал hrlimit не часто. неужели сейчас есть такая необходимость усреднять и корректировать каждый день?

 

Не знаю с чем это связано, но чем больше проходит времени тем больше в итоге растёт погрешность. Если сначала практически всё совпадает с профит режимом и сайтом WTM, то со временем расхождения уже становятся всё больше и больше. Поэтому хешрейт режим маслает в холостую для справки. Перешёл на профит режим.

 

 

Странное дело, решил сравнить в профит режиме (по wtm, по хешрейту, по сложности). Отклонения ОГРОМНЫЕ. Вот на примере двух сонет. Что не так с ZEC2 например ???

 

 - DNR: 438515224560 - 3.0 - 53.0 - 0.00026951
 - DNR1: 395679641010 - 3.0 - 53.0 - 0.0002746178
 - DNR2: 223019434022.272 - 3 - 53 - 0.0002746178
 - ZEC: 490882028 - 10.0 - 150.0 - 0.028637
 - ZEC1: 485634699 - 10.0 - 150.0 - 0.0287833511
 - ZEC2: 258901986462918 - 10 - 150 - 0.0287833511


 ZEC2    :       1.1923e-005 < 14.731086016         0.0001%         0s|0  (0/1)
 ZEC!    :        6.33986958 < 14.731086016        43.0374%         0s|0  (0/1)
 ZEC1    :       6.441122843 < 14.731086016        43.7247%         0s|0  (0/1)

 DNR!    :       7.630022508 < 14.731086016        51.7954%      3m55s|1  (0/1)
 DNR1    :       8.616295594 < 14.731086016        58.4906%         0s|0  (0/1)
 DNR2    >      14.731086016 = 14.731086016       105.0000%  48y89d16h|0  (0/1)

 

 

'ZEC' =>
{
    wtmname  => 'Zcash',
    minerdir => 'D:\HRM',
    minerexe => 'ZEC.bat',
    eval     => 'print " - $c: $CStat{$c}{hr} - $CStat{$c}{br} - $CStat{$c}{bt} - $CStat{$c}{rate}\n";',
    skip     => 'false',
    comments => 'Equihash',
},

'ZEC1' =>
{
    wtmname  => 'Zcash',
    minerdir => 'D:\HRM',
    minerexe => 'ZEC.bat',
    hrurl    => 'https://api.zcha.in/v2/mainnet/network',
    hrregexp => '"hashrate":(\d+),',
    eval     => '
            my $coinrate = &GetContentFromURL("https://api.coinmarketcap.com/v1/ticker/zcash/?convert=BTC");
               $CStat{$c}{rate} = $1 if $coinrate =~ /"price_btc": "(\d+\.\d+)"/;

    print " - $c: $CStat{$c}{hr} - $CStat{$c}{br} - $CStat{$c}{bt} - $CStat{$c}{rate}\n";
    ',
    skip     => 'false',
    comments => 'Equihash',
},

'ZEC2' =>
{
    wtmname  => 'Zcash2',
    minerdir => 'D:\HRM',
    minerexe => 'ZEC.bat',
    hrurl    => 'https://api.zcha.in/v2/mainnet/network',
    hrregexp => '"difficulty":(.*?),',
    eval     => '
        $CStat{$c}{algo} = "Equihash";
        $CStat{$c}{br} = 10;
        $CStat{$c}{bt} = 150;
        $CStat{$c}{hr} = $CStat{$c}{hr}*0x100000000/$CStat{$c}{bt};

            my $coinrate = &GetContentFromURL("https://api.coinmarketcap.com/v1/ticker/zcash/?convert=BTC");
            $CStat{$c}{rate} = $1 if $coinrate =~ /"price_btc": "(\d+\.\d+)"/;

    print " - $c: $CStat{$c}{hr} - $CStat{$c}{br} - $CStat{$c}{bt} - $CStat{$c}{rate}\n";
    ',
    skip     => 'false',
    comments => 'Equihash',
},

 

'DNR' =>
{
    wtmname  => 'Denarius',
    minerdir => 'D:\HRM',
    minerexe => 'DNR.bat',
    eval     => 'print " - $c: $CStat{$c}{hr} - $CStat{$c}{br} - $CStat{$c}{bt} - $CStat{$c}{rate}\n";',
    skip     => 'false',
    comments => 'Tribus',
},

'DNR1' =>
{
    wtmname  => 'Denarius',
    minerdir => 'D:\HRM',
    minerexe => 'DNR.bat',
    hrurl    => 'https://denariusexplorer.org/api/gethashespersec',
    hrregexp => '(\d+\.\d+)',
    eval     => '
        $CStat{$c}{hr} = $CStat{$c}{hr}*1000000000;

            my $coinrate = &GetContentFromURL("https://api.coinmarketcap.com/v1/ticker/denarius-dnr/?convert=BTC");
            $CStat{$c}{rate} = $1 if $coinrate =~ /"price_btc": "(\d+\.\d+)"/;

    print " - $c: $CStat{$c}{hr} - $CStat{$c}{br} - $CStat{$c}{bt} - $CStat{$c}{rate}\n";

    ',
    skip     => 'false',
    comments => 'Tribus',
},

'DNR2' =>
{
    wtmname  => 'Denarius2',
    minerdir => 'D:\HRM',
    minerexe => 'DNR.bat',
    hrurl    => 'https://denariusexplorer.org/api/getdifficulty',
#    hrregexp => '"proof-of-work": (.*?),',
    hrregexp => '"proof-of-work": (\d+\.\d+)',
    eval     => '
        $CStat{$c}{algo} = "Tribus";
        $CStat{$c}{br} = 3;
        $CStat{$c}{bt} = 53;
        $CStat{$c}{hr} = $CStat{$c}{hr}*0x100000000/$CStat{$c}{bt};

            my $coinrate = &GetContentFromURL("https://api.coinmarketcap.com/v1/ticker/denarius-dnr/?convert=BTC");
            $CStat{$c}{rate} = $1 if $coinrate =~ /"price_btc": "(\d+\.\d+)"/;

    print " - $c: $CStat{$c}{hr} - $CStat{$c}{br} - $CStat{$c}{bt} - $CStat{$c}{rate}\n";

    ',
    skip     => 'false',
    comments => 'Tribus',
},
 

 

 

 

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

@Riva у эквихеша пересчет сложности в HR производится по другой формуле:

        $CStat{$c}{hr} = $CStat{$c}{hr}*8192/$CStat{$c}{bt};

 

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

Походу когда много обращений к WTM с одного IP, срабатывает ddos защита. Первый раз сегодня такое заметил. Выключил, подождал минут 5, запустил вроде пошло. Потом снова ошибка. Это значит что на WTM не стоит пологаться и брать данные не с WTM а с пулов.

 

- ERROR: http://whattomine.com/coins/207.json : 521 Origin Down 
 - ERROR: http://whattomine.com/coins/230.json : 521 Origin Down
 - ERROR: http://whattomine.com/coins/212.json : 521 Origin Down
 - ERROR: http://whattomine.com/coins/187.json : 521 Origin Down
 - ERROR: https://whattomine.com/coins/1.json : 521 Origin Down
 - ETC will be ignored due to initial hashrate can not be obtained
 - ETC (Equihash) will be ignored due to initial profit can not be obtained or equal to zero
 - ETH will be ignored due to initial hashrate can not be obtained
 - ETH (Equihash) will be ignored due to initial profit can not be obtained or equal to zero
 - GBX will be ignored due to initial hashrate can not be obtained
 - GBX (Equihash) will be ignored due to initial profit can not be obtained or equal to zero
 - HUSH will be ignored due to initial hashrate can not be obtained
 - HUSH (Equihash) will be ignored due to initial profit can not be obtained or

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

2 часа назад, Serzh Black сказал:

@Riva у эквихеша пересчет сложности в HR производится по другой формуле:


        $CStat{$c}{hr} = $CStat{$c}{hr}*8192/$CStat{$c}{bt};

 

До этого самому додуматься нереально. Нужна справка :)

 

Ещё в моём примере выше, по второй монете DNR разница в доходности в 2 раза отличается. Всё стандартно, данные с оф. источников.  Там тоже другая формула для алгоритма Tribus или ещё где подвох?

 

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

521 ошибка означает origin down )) Используется только cloud flare. hrm здесь не причём.

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

@Serzh Black 

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

можно. но не нужно. профит это не увеличит. стабильность не повысит. а вот добавить в csv колонку в которой будет указана майнилась монета в это время или нет, можно

Хорошо,тогда по другому вопрос поставлю.

А общую сумму намайненного можно сделать?Ну,за какой-то срок.Соображения чисто практические.Когда майнится много монет,а больше трех я считаю это уже много.,то приходится лезть в кошельки и смотреть куда сколько "прилетело".Гораздо удобнее видеть в программе где и сколько...

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

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

@339557 вот правда не хочу я ее этому учить. это надо будет запоминать гдето данные и хранить. потом вывод за указанные промежутки времени надо будет делать комиссию пула считать а потом и электричество... ну не те это функции для переключателя как мне кажется. и все равно будет брехня т.к. получится что мы будем считать не проданное и чисто теоретически посчитанное с отрывом от реальности. вот если я добавлю флажок в csv файл, тогда появятся данные для анализа в стороннем программе и в том же экселе. может кто макрос напишет который по одному клику все посчитает за указанный промежуток.

 

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

 

мне не хватает, какойнть програмки которая по API с бирж сливала бы все в биток автоматом. не супер трейдер а примитив. я думаю самому написать, но пока есть задачи более насущные. вот если такая програмка была, тогда бы можно было ТОЧНО посчитать сколько было продано за любой промежуток времени и сравнит с тем что посчитал HRM. провести анализ пулов и блокчейна на вшивость и исключить паразитов

 

 

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

@339557 до перезапуска HRM сделать можно. исходя из времени работы майнеров.

можно также написать плагин, который по [C] вызывается. проверит нужные пары на биржах

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

сделал по [C] - Estimate earnings since момента запуска

ну так-то прикольно. но если HRM работает два-три дня и более, и продажи на биржах уже были то все равно проверять кошельки. думается мне надо биржи проверять. пулы проверять не стоит, это придется все кошельки из батников в HRM перетаскивать, хоть это и можно уже делать

 

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

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

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

Синтаксис проверял, перепроверял, писал заново и т.д., все самые безумные варианты проверил. Результат один и тот же при запуске:

- XXX will be ignored. C:/XXX/XXX.bat was not found

На месте XXX любая монета, на месте C:/XXX/XXX.bat любой путь к файлу и любое название .bat файла.

.Bat файл запускается только из единственной папки C:\Soft\Miners\ccminer_spmod1_luxcoin, при таком конфиге любой монеты

{
    wtmname  => 'SPD',
    minerdir => 'C:\Soft\Miners\ccminer_spmod1_luxcoin',
    minerexe => 'SPD.bat',
},

"Удачная" папка нашлась совершенно случайно, когда прописывал пути ко всем нужным монетам.

Никакого логического объяснения после многочасовых изысканий данной ситуации я не нашел. 

На данный момент все .bat файлы запускаются из вышеупомянутой папки ссылаясь на другие .bat файлы лежащие в папках "правильных"  майнеров для той или иной монеты/алгоритма. Другого решения я не придумал. Буду благодарен за идеи/мысли как сие исправить. Спасибо.
 

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

Ого. Попробовал следущее:

%VARS = (
...
	'PL'  => '
		$gpus = 6;
...
%ALGSHR = (
	'Ethash'        => '24 * $gpus',
...

Работает!

Удобно быстро править под разные однотипные риги, просто указав кол-во видюх.

А также:

	'PL'  => '
		$ex_graviex = &GetContentFromURL("https://graviex.net/api/v2/tickers.json");
		$ex_cryptobridge = &GetContentFromURL("https://api.crypto-bridge.org/api/v1/ticker");
		$ex_coinexchange = &GetContentFromURL("https://www.coinexchange.io/api/v1/getmarketsummaries");
...
'RVN' =>
{
	'wtmname'     => 'RAVEN',
	'minerdir'    => '',
	'minerexe'    => '',
	'hrurl'       => 'http://explorer.threeeyed.info/api/getnetworkhashps',
	'hrregexp'    => '(\d+\.\d+)',
	'eval'        => '
						$CStat{$c}{algo} = "x16r";
						$CStat{$c}{br} = 5000;
						$CStat{$c}{bt} = 60;
						$CStat{$c}{rate} = $1 if $ex_cryptobridge =~ /\{"id":"RVN_BTC",.+?"bid":"(\d+\.\d+)"\}/;
					 ',
	'skip'        => 'monitor',
},

Когда много монет и по всем надо сбегать на одну биржу, не нужно по каждой монете туда бегать! Делаем один запрос на каждый обсчет всей пачки монет, раз в минуту (или что у вас там настроено в {TH}), и на каждой монете используем уже полученное (только найти регекспом свою пару)!

 

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

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

@rezed спасибо! правильной дорогой идете!

@Morrowind чудеса. пришлите папку и имя батника, которые НЕ работали. я проверю.

 

ЗЫ: обновляю сервер. теперь у него есть свой конфиг. умеет прибивать и паразапускать HRM на удаленных машинах, а также перегружать фермы. потестите кому интересно. для работы понадобятся pstools. качать с сайта микрософта. интересны пожелания в этом направлении

 

для запуска hrm рекомендованный батник, который отчасти решит проблемы с вылетом при использовании --getby:ie

@echo off
:StartHRM
hrm.exe
timeout /t 15 
goto StartHRM

 

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

Плагины

В качестве значения для $VARS{PL}, $VARS{EV}, $VARS{CC} и $C{COIN}{eval} может быть код Perl в явном виде или во внешнем файле. Во втором случае, чтобы указать в каких файлах находятся плагины значения переменных необходимо записывать следующим образом

%VARS = (
	'CC'  => 'plugins:estimate_usd.txt;estimate_usd.txt',
);

Плагины должны находиться в директории plugins и перечисляются через ; (точка с запятой)

 

пересчет в профита в рубли и доллары по курсу Ёбит в комплекте с программой. по умолчанию - USD

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

3 часа назад, Serzh Black сказал:

для запуска hrm рекомендованный батник, который отчасти решит проблемы с вылетом при использовании --getby:ie


@echo off
:StartHRM
hrm.exe
timeout /t 15 
goto StartHRM

К этому не мешало бы, наконец-то решить в вопрос с запуском devfee раз в сутки, а не после каждого перезапуска HRM. За сутки раз 5-6 вылетит из-за --getby:ie, да плюс еще ферма перезагрузится не один раз, и имеем 40-60 минут майнинга на разработчика. Не многовато вам?

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

@5alex отключите --getby я признаю что модуль глючный и вылетает. насчет многовато: за все время 0.00013946 BTC вместе со мной. так что, по большому счету, это так хобби и осталось.

ЗЫ: насчет 40-60 минут... я бы таки всплески в статистике заметил. но их нет.

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

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

отключите --getby

--getby используется не от хорошей жизни, а чтобы обойти защиту сайта. Без него не получим нужные данные.

А что, для вас проблема обеспечить вами же заявленный режим работы devfee (один раз в сутки)?

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

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

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

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

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

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

Войти

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

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

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

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