Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

divert test discussion #34

Open
P-D-A opened this issue Feb 24, 2018 · 120 comments
Open

divert test discussion #34

P-D-A opened this issue Feb 24, 2018 · 120 comments

Comments

@P-D-A
Copy link

P-D-A commented Feb 24, 2018

Discussion (Обсуждение)

@P-D-A P-D-A changed the title **Discussion (Обсуждение)** Discussion (Обсуждение) Feb 24, 2018
@P-D-A P-D-A mentioned this issue Feb 24, 2018
@P-D-A
Copy link
Author

P-D-A commented Feb 24, 2018

Лучше всего запускать start.bat через ink с повышением

@Demion Demion changed the title Discussion (Обсуждение) divert test discussion Feb 28, 2018
@Demion
Copy link
Owner

Demion commented Feb 28, 2018

divert3.6.zip
divert3.5.zip
divert3.3.zip
divert3.2.zip
divert3.1.zip
divert3.zip
divert2.2.zip
divert2.1.zip
divert.zip

Thanks SiegHeil for idea and basil00 for core library WinDivert.

3.6 Change Log:

  • output delay config
  • error message keyword / press any key after critical
  • add missing administrator rights request

3.5 Change Log:

  • log saves to file each 10 seconds instead of instantly (might improve performance)
  • faster string (packet) pattern search (might improve performance)
  • tweaked WinDivert filter format (might improve performance)
  • tweaked / fixed log format
  • show / hide console feature
  • project files (vs2015) included with source code

config.txt file format:

Main Wallet (only ethereum 42 character long wallet, username support will be in future releases)
NoDevFee Wallet (can be different from main)
NoDevFee Worker (not supported now, for future releases)
NoDevFee Protocol (ESM protocol, not supported now, for future releases)
Main Pool Count (list of all your main pools, more than 1 if you are using failover)
Main Pool Address Port
DevFee Pool Count (pool list which will be redirected to your last used main pool)
DevFee Pool Address Port
NoDevFee Pool Count (can be 0, used to redirect devfee to another pool)
NoDevFee Pool Address Port
Log Level (0 - no log, 1 - console log, 2 - console & file log (default), 
3 - verbose packet log (for troubleshooting), 4 - full packet log (not recommended))
Show Console (0 - hide, 1 - show)
Output Delay (log file output delay in seconds, 10 - default)

Can be run without config.txt if you dont need redirection. Your Main Wallet and NoDevFee Wallet will be deduced from first authorization packet. If used config file should be strict format as mentioned above.

Starting from claymore 11.1 and phoenix 2.7c not supported because of SSL.
More details here - #34 (comment)

Before any troubleshooting please provide

  1. miner log
  2. miner bat / config
  3. config.txt
  4. log.txt

Set log level 3 / 4 for verbose logging.

No need to inject, no need any config files, can be located at any folder, just run divert.exe, run your miner as usual (without nodevfee.exe), divert.exe should keep running.

divert version is based on WinDivert driver by basil00 which is using Windows Filtering Platform.
https://reqrypt.org/windivert.html
It is low level driver which intercepts and modifies network traffic. Should be less detectable and overall better approach as there is no direct interaction with miner (no dll injection, no memory modification (no winapi function hooks)).
It is very alpha, test build, may be unstable.
If it proves to be solid, nodevfee will be most likely replaced by WinDivert implementation in further releases (v.0.3).

Use edit button instead of new messages in a row. Use thumbs up / down instead of posting "Thanks" "I agree" etc. For other discussions / problems please create new separate issues.

@dugyitla
Copy link

dugyitla commented Feb 28, 2018

theoretically, divert will work with pheonix right?

edit:

jeez, divert3.x is very nice, feature-rich.

hope to see future other esm support and username login support (miningpoolhub)

this dev really codes.

@Hackintoshihope
Copy link

Hackintoshihope commented Feb 28, 2018

Here is the log (removed log) and a screenshot of the rejected shares when divert is active.

error

@Demion
Copy link
Owner

Demion commented Feb 28, 2018

@Hackintoshihope Add 0x before your wallet in config.txt ?

@dugyitla Should work with any miner that use ESM 0 / 1 protocols with no SSL encryption including PhoenixMiner, havent tested though. According to #28 (comment) issue was resolved and working fine.

3.2 - nothing new, just extensive logging for troubleshooting.
New protocols (ESM 2 / 3), username login and devfee traffic modification to needed protocol is planned for future releases.

@Hackintoshihope
Copy link

Hackintoshihope commented Feb 28, 2018

Will report back with that change in about 15min (usually when dev fee activates).

@Demion Simple fix... Works as intended, now to test on all my miner rigs.

@ioMinx
Copy link

ioMinx commented Feb 28, 2018

minor question : how do i delete the previous version without restarting? I think the process still run background even tough we already close the divert.exe. This is the screenshot when i try to delete the last file in the folder

screen shot 2018-03-01 at 4 29 56 am

@Demion
Copy link
Owner

Demion commented Feb 28, 2018

divert.exe process is not running in a background.
WinDivert driver is installed on first run into system and works until reboot.
You can try stopping and uninstalling manually (but close divert.exe first).
sc stop WinDivert1.3
sc delete WinDivert1.3
https://reqrypt.org/windivert-doc.html#uninstalling

@Kekkonshiki
Copy link

Kekkonshiki commented Mar 1, 2018

@Demion include the uninstall.cmd file in the package

uninstall.zip

@Kekkonshiki
Copy link

@Demion, what about SSL protocol? Is it affected to the traffic and packet filtration by WinDivert?

@Demion
Copy link
Owner

Demion commented Mar 1, 2018

What do you mean affected to the traffic?
divert only filter IP and TCP protocol.
Starting from v3 divert only filter ports used in config.txt, you can see port list after Port Count: message in console.

SSL traffic is encrypted before it is sent via WinApi (WinSock2) and before it is added to network packet queue at WinDivert (WFP).
Only way, I know, to modify SSL traffic is to hook api that is used to encrypt it. Which in most cases is OpenSSL, but it can be static linked inside exe, modified, packed and obfuscated by code virtualization (VMProtect, Themida / WinLicense).

@Scappotto
Copy link

Hi to all,
i'm currently testing divert, with my rig i got 187mh/s on claymore 11 and eth, with divert3.1 i got 184 mh/s but it works well, with divert 3.2 no impact on hashrate, but when it's devfee time, claymore freeze itself, i've to close divert and restart claymore, any suggestion? Thanks!

@delim888
Copy link

delim888 commented Mar 1, 2018

Стояла версия divert3, на пуле появлялся отдельный воркер и можно было видеть его статистику, сейчас поставил версию 3.2, воркер с пула пропал, это нормально?
и еще вопрос, зачем прописывать devfee pools? разве не получится отследить пакет который летит на ардес отличающийся от main pool или nodevfee pool и имеющий отличающийся от main wallet или nodevfee wallet адрес кошелька и перенаправить его на пул и кошелек указанные в настройках

@ioMinx
Copy link

ioMinx commented Mar 1, 2018

I second @Scappotto on the version 3.2.
Version 3.0 approach is stable and proof works on diverting the wallet address. Too bad it only works at 1 rig, but failed in others rigs.

Not sure what happened since version 3.2 above, the hashrate is not stable. Do you plan to publish the source code here too @Demion ?

@Scappotto
Copy link

@ioMinx @Demion I've cleared and unistalled divert and windivert, but claymore continue freezing after a while...

@Demion
Copy link
Owner

Demion commented Mar 1, 2018

@Scappotto try 3.3 it has logging level setting and increased driver queue size / time that may affect performance. Still need at least log level 3 for troubleshooting, but you can also try with level 1 or 2 if that helps.

@ioMinx Sources are in Source folder in zip with every release 😆.
New branch on github will be created soon.

Pay attention to Before any troubleshooting please provide - #34 (comment).
Without logs I barely can help with anything, thats for everyone.

@delim888 воркер появляется, только когда devfee находит шары.
Во-первых, изменять адрес нужно перед отсылкой первого пакета (при подключении).
Во-вторых, нет возможно автоматически определить это devfee пул или пул дуал коина.
Конечно можно ловить пакет авторизации к devfee пулу, потом отключать соединение к devfee пулу, создавать новое соединение к основному пулу и потом перенаправлять пакеты с нового соединения на старое, но это лишнее усложнение.

@delim888
Copy link

delim888 commented Mar 1, 2018

На монету в дуале разве отправляется ethlogin и ему подобное? Этим можно и поймать различие, либо переделать config.txt более удобоваримым:
Main Wallet
Main Pool Address Port
DevFee Pool Address Port
NoDevFee Wallet - 0 такойже как и mainwallet, либо указать другой
NoDevFee Worker
NoDevFee Protocol
NoDevFee Pools - 0 тотже пул что и mainpool либо указать пулы порты
Log Level

Те в основном идея убрать pool count

@Demion
Copy link
Owner

Demion commented Mar 1, 2018

Я же вам написал, что изменять адрес нужно при подключении, перед отправкой какого либо пакета (eth_submitLogin / eth_Login). В чем проблема с таким форматом?

А это лишнее усложнение, на мой взгляд.

отключать соединение к devfee пулу, создавать новое соединение к основному пулу и потом перенаправлять пакеты с нового соединения на старое

Pool Count нужен не только для DevFee пулов, но и для failover (main) пулов. Я так понимаю вам не нравится такой формат, что нужно указывать кол-во записей вручную (Pool Count). Можно это решить изменив формат настроек на json или ini, но это не приоритет сейчас, по-моему.

@ioMinx
Copy link

ioMinx commented Mar 1, 2018

https://medium.com/@bitfly/ethermine-stratum-security-upgrade-d2245076e1b5

@delim888
Copy link

delim888 commented Mar 1, 2018

confi00g.txt
вот такой конфиг не работает

@Demion
Copy link
Owner

Demion commented Mar 1, 2018

У вас конфиг неправильный. Повторяющиеся пулы во всех трех разделах. Чего вы достичь пытаетесь?

@delim888
Copy link

delim888 commented Mar 1, 2018

универсальности, у меня 12 ферм, и хотел сделать один для всех, часть копает на нанопуле эфир часть на ethermine копает классик

@delim888
Copy link

delim888 commented Mar 1, 2018

etcnano-ethermine.txt
как я понял универсальности не добиться, такой файл правильный?
цель с фермы которая копает классик на нанопуле перевести devfee на кошелек эфира на ethermine

ошибочка, вот файлик
config.txt

попробовал, не работает
log — копия.txt

@Demion
Copy link
Owner

Demion commented Mar 1, 2018

Я понял как вы хотите настроить, но так не получится с текущим алгоритмом перенаправления.
В Main Pools и DevFee Pools первые 7 записей совпадают *.nanopool.org:19999.
Если их убрать, то devfee будет копать etc на nanopool.
Если оставить, то нет возможности определить разницу между Main и DevFee, поэтому весь трафик будет перенаправлен в [0] eu1.ethermine.org:4444 (что судя по логу и происходит).
Грубо говоря сейчас от NoDevFee Pools не много смысла.

Если принципиально именно перенаправить с etc nanopool на eth etheremine, то можете попробовать один из вариантов:

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

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

@delim888
Copy link

delim888 commented Mar 1, 2018

в общем убрал в конфиге из devfee pools адреса нанопула, коннектится работает, но во время devfee шары улетают по указанному мной адресу кошелька но не на эфирный ethermine пул, а на классик пул нано))))
как вы и сказали от nodevfee pools смысла нету походу( шары на другой пул не уходят((, но хотябы работает перенаправление на другой кошелек
confign.txt
log — копия.txt
если сделаете чтобы шары уходили на другой пул, то будет вообще замечательно

и еще вопрос по SSL пулам, я так понял что реализовать такуюже систему работы как сейчас с майнером\пулом с SSL соединением не получится? как быть в будущем?

@moracha
Copy link

moracha commented Mar 1, 2018

Is there any sort of confirmation when a devfee share is submitted? Is it possible to print this to the user?

For instance, would this behavior be normal:

Main Wallet : 0x1234
NoDevFee Wallet : 0x1234
01.03.2018 17:29:33
eth_submitLogin[0] -> 0x1234
01.03.2018 17:59:02
eth_submitLogin[0] -> 0x1234

@Kekkonshiki
Copy link

Kekkonshiki commented Mar 2, 2018

@delim888

и еще вопрос по SSL пулам, я так понял что реализовать такуюже систему работы как сейчас с майнером\пулом с SSL соединением не получится? как быть в будущем?

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

@Demion
Copy link
Owner

Demion commented Mar 18, 2018

@ElMamut

Any proofs?
Although, as far as I know, different pools may have different share difficulty level, which depends on pool total hashrate, so share count may vary (and you compare nanopool vs dwarfpool which has 30% smaller total hashrate).
Also how you compare for month if all ethereum network hashrate / difficulty increased drastically last month?

Anyway, I am pretty sure all miners (Claymore, Phoenix, ethminer) have same efficiency, difference is maximum 1-5%, not 30% as you saying, unless you provide any proofs.
As I were saying, I respect open source and also can suggest ethminer, as described in previous post, but it has it flaws (bugs) and not suitable for everyone, so be less arrogant please.

Ethermine
Min Payout: 0.05 ETH
HashRate: 22 TH/s
Difficulty: 4 Billion

NanoPool
Min Payout: 0.05 ETH
HashRate: 7.72 TH/s
Difficulty: 5 Billion

DwarfPool
Min Payout: 0.05 ETH
HashRate: 5.64 TH/s
Difficulty: 2 Billion

According to this https://investoon.com/mining_pools/eth

be careful with this link it actually connects to pools (for ping or something) and divert / nodevfee goes crazy trying to redirect connection 😆

Good explanation what actually share is - https://ethereum.stackexchange.com/questions/4529/for-pool-mining-what-exactly-is-a-share

Anyway lets stop offtopic.
Create new issue with actual proofs (screenshots), if you are so interested in pool / miner comparison.

@ghost
Copy link

ghost commented Mar 18, 2018

@Demion no, my goal was never to document anything, just get the maximum performance from the little hash I have, I do not try to cheat anyone I just shared it, try it :)

Stratum-Proxy for Ethereum: https://bitcointalk.org/index.php?topic=1200891.0
ethminer: https://github.com/ethereum-mining/ethminer/releases
pool: https://dwarfpool.com/eth
max speed: http://dwarfpool.com/faq/#maxspeed

@Demion Interesting.

Repository owner deleted a comment Mar 20, 2018
Repository owner deleted a comment Mar 20, 2018
@Demion
Copy link
Owner

Demion commented Mar 20, 2018

@ElMamut Use edit button instead of new messages in a row.

@hardworker01 I already replied you. Read this for more explanation - #40 (comment)

You only see 2nd worker (default / empty) when devfee finds share it is determined by luck, so it is random (it may not find any for few times in a row).
Only way to determine if it is working by logs and, as I were saying, your actual effective hashrate on pool statistics (less then 24 hours may be inaccurate).

Update:
@hardworker01 I am not mad, read rules please you are flooding the topic.
Use thumbs up / down instead of posting "Thanks" "I agree" etc.

@destroy3r
Copy link

@hardWorker1 sometimes it misses shares. as long as it works, then it seems to fine.

Repository owner deleted a comment from hardworker01 Mar 20, 2018
@dugyitla
Copy link

@Demion

I can confirm that you have fixed pool redirection in latest version. There is no delay anymore. Great job.

@Kekkonshiki
Copy link

@Demion на данный момент редирект на NoDevFeePool не реализовано? Что-то у меня при любом конфиге всегда NoDevFee Host Count: 0

@holyr00d
Copy link

holyr00d commented Mar 29, 2018

got this working on miningpoolhub to the point it addded devfee worker, showed connected. However no devfees appeared in miner. due to -esm 2 setting no doubt.

Love this work though. Works on other pools I use.

My only request would be to decrease the devfee timer so it does it more often.

@brunolopes446
Copy link

Could you please provide a config.txt example for ETC?
I'm asking this due to the DevFee Pool Addresses required - don't know how to list all them.

@mar0chka
Copy link

mar0chka commented Apr 3, 2018

@Demion

							if ((strlen(MainWallet) < 42) || (strlen(NoDevFeeWallet) < 42))
							{
								memcpy(MainWallet, wallet, 42);
								memcpy(NoDevFeeWallet, wallet, 42);
								if (LogLevel >= 1)
									Print(stdout, Log, "Main Wallet: %s\nNoDevFee Wallet: %s\n\n", MainWallet, NoDevFeeWallet);
							}

Если я правильно понял этот кусок кода копирует MainWallet и NoDevFeeWallet из первого пакета, если один из кошельков не указан. Было бы не плохо сделать проверку для каждого кошелька отдельно. Бывает что MainWallet разный, а NoDevFeeWallet заранее известен.

							if (strlen(MainWallet) < 42)
							{
								memcpy(MainWallet, wallet, 42);
								if (LogLevel >= 1)
									Print(stdout, Log, "Main Wallet: %s\n", MainWallet);
							}
							if (strlen(NoDevFeeWallet) < 42)
							{
								memcpy(NoDevFeeWallet, wallet, 42);
								if (LogLevel >= 1)
									Print(stdout, Log, "NoDevFee Wallet: %s\n\n", NoDevFeeWallet);
							}

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

@holyr00d
Copy link

holyr00d commented Apr 3, 2018

@Demion

why does Divert only divert ETH pool infos?

I tried this on zecash Claymore and claymore looked to connect to a devfee pool once loaded. claymore connected to port 5555, after first 3333 failed. devfee never came to me though.

surely with Divert we can divert whatever miner devfee we choose? as long as it is not sll secured?

@Demion
Copy link
Owner

Demion commented Apr 3, 2018

@R00dNet

  1. Only Ethash coins are supported (with same protocol as ETH)
  2. Zcash miner always use SSL for devfee (even if you use non SSL main pool)

@SiegHeil
Должно работать, может что-то с конфигом не то, но на практике могут быть проблемы с определением куда перенаправлять (подробнее тут - #34 (comment)).

@mar0chka
Вы хотите указывать NoDevFee Wallet, а Main Wallet чтобы определялся автоматически?
Желательно указывать оба кошелька, при возможности. Main Wallet определяется по первому пакету, и в некоторых случаях это может быть не ваш кошелек, а DevFee.

Попробуйте,
Свойства - Совместимость - Выполнять эту программу от имени администратора

@mar0chka
Copy link

mar0chka commented Apr 3, 2018

@Demion
Да именно это и имел ввиду. Просто есть несколько ригов и все майнят на разные кошельки + еще по расписанию включается майнинг на другой кошелек. Будет удобно если везде будет одинаковый конфиг. Поэтому и не хочу жестко задавать Main Wallet. Я так понимаю при опции -allcoins -1 сначала включается майнинг DevFee в остальных случаях должно быть все ок.

А с запросом прав нашел два решения:

  1. Отключить UAC
  2. Есть утилиты которые создают сервис, либо задачу в планировщике
    Свойства - Совместимость - Выполнять эту программу от имени администратора не помогает запрос UAC все равно появляется, а если кинуть ярлык в автозагрузку программа не запускается.
    А у вас как решен вопрос с автозапуском?

@dugyitla
Copy link

dugyitla commented Apr 4, 2018

hello, i have a question. do we get bad reputation or somewhat low shares in PROP pools? seems like devfee rig looks pool hopping since it come and go every hour.

@Kekkonshiki
Copy link

Kekkonshiki commented Apr 6, 2018

@Demion как убедиться, что v3.6 вообще работает? (на v3.3 работает) Просто запустил на сутки и ни одного сообщения в логе о том, что какой-то пакет был заменён.. как-будто и не работает совсем. Попробовал также и на конфиге, который в "поставке", заменив адрес кошелька, но ситуация не изменилась. Использовал на ethermine.org

@Freekers
Copy link

Freekers commented Apr 7, 2018

@Demion are you planning on releasing a new version, based on these (test) results?
Thank you.

@rzrwolf
Copy link

rzrwolf commented Apr 10, 2018

Anyone tried divert with phoenix 2.8c version?

@Kekkonshiki
Copy link

Kekkonshiki commented Apr 15, 2018

@Demion
Я нашёл причину своей проблемы!!!
{"id":1,"jsonrpc":"2.0","method":"eth_login","params":["..."]}
а поиск идёт по "eth_Login"

@Kekkonshiki
Copy link

@rzrwolf
i'm use it with v2.9d: need fixed divert.exe for method "eth_login"

@Demion
Copy link
Owner

Demion commented Apr 24, 2018

@dugyitla never used PROP pools, but I understand what you mean, maybe devfee worker rename (when implemented) might help.

@rzrwolf

Starting from claymore 11.1 and phoenix 2.7c not supported because of SSL.
More details here - #34 (comment)

Unless using non SSL pool, then maybe protocol name case needs fixing (as SiegHeil mentioned), I will take a look.

@Freekers divert will be merged to main branch, when I will have time to clean up and finalize code.

@mar0chka у меня отключен UAC полностью. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA = 0 Потестирую на виртуальной машине по поводу прав администратора и запуска через задачу.

@dugyitla
Copy link

@Demion very well then. I hope you can find time to implement it in the future. thanks.

@Kekkonshiki
Copy link

Kekkonshiki commented Apr 25, 2018

@Demion

Потестирую на виртуальной машине по поводу прав администратора и запуска через задачу.

Проще добавить возможность запуска divert в качестве сервиса (пример есть в том же goodbye-dpi)

@mar0chka
Copy link

mar0chka commented Jun 2, 2018

In archive updated soruce of divert 3.6. Changelog:

  1. Added support for Ethereum Stratum (-esm3)
  2. Now you can add few Main wallets in config. My rig mining in different wallets, so it is very usefull for me (I don't need to edit config and relaunch divert every time I change wallet). Config.txt file format changed a bit. First number is Main Wallet Count, then Main wallets every new line. There is no compiled.exe in zip, so do it youreself
    Source.zip

@komyaka
Copy link

komyaka commented Sep 30, 2018

Помогите пожалуйста с настройкой, не получается.
Задача: devfee шары пускать на определенный пул.
Не получается, перепробовал множество настроек...
Вариант с перечислением пулов. Прошу показать где моя ошибка. Задача девфи пускать на нанопул, но майнится куда угодно, но не туда.

Please help with the setting, it does not work. Task: devfee balls allowed on a certain pool. It does not work, I tried a lot of settings ... A variant with a list of pools. Please show where my mistake is. The task of the devi is to start up on the nanoppool, but it is mined anywhere, but not there.

Var2.txt

@Kekkonshiki
Copy link

Kekkonshiki commented Dec 23, 2018

Win10 LTSC: windivert don't work anymore or need rebuild it? Can you test it?

@krioTT
Copy link

krioTT commented Nov 11, 2019

@Demion
On Win7 x64 Ultimate got this error after run it:
"Error WinDivertOpen 577"

What's the solution for this issue?
It's something related to driver signing,
but can't figure.
I already enabled Win7 Test Mode, but doesn't helps.
Can you please help?
Thanks

EDIT: Solved, its caused by bugged Windows,
its require Win update # KB3033929 to resolve the issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests