Hey everyone,
I've created a fork of the Phoenix miner with a few improvements/changes over the main line
New functionality:- Retrying of failed work submissions: When standard Phoenix miner has an issue communicating with the pool while submitting work it simply discards the work unit, losing possibly valid shares. It will now retry submission until it is able to connect
- Roll Ntime support: Locally update work time so we don't have to get new work from the pool server nearly as often. This should help reduce the number of "miner idle" warnings, for those of you who have them. Also important, it will help keep your pool operator's administration costs down which will keep them from having to institute or raise fees to keep the pool going. (Only supported on some pools.) Technical details at
https://en.bitcoin.it/wiki/Getwork#rollntimeCosmetic changes:- New status output format: The only major change here is that it shows reject %, but I think it also looks better. Will also show getwork count and efficiency (getworks vs. accepted shares) when -v is passed. Can be disabled by passing --old-status
- Make the status line scroll: It's now possible to disable the redrawing of the status line (hash rate, accepted/rejected, etc.), so it scrolls like any other log message. This is useful for programmatically parsing the miner's output, or redirecting to a log for later review. Enable this with --disable-redraw. Change the rate at which it outputs status with --refresh-rate or -r
- Reject reason is now shown next to the rejected share message, rather than in a separate log message (verbose mode only)
- Redrawing of the status line should no longer result in the text flashing or disappearing for a moment, as it redraws the entire line in one go rather than needlessly writing four separate times
Bug fixes:- Discard current work unit if a share from it is invalid (e.g. stale). Previously it'd simply keep working on the work unit until we exhausted the entire 32-bit nonce range or until an LP returned, which could result in multiple invalid shares being wastefully produced
- Potentially prevent an indefinitely long loop of getwork calls if Phoenix receives a work from an earlier block after one from the most recent block
Github URL:
https://github.com/aldiyen/Phoenix-Miner-aldiyenDirect download link:
https://github.com/aldiyen/Phoenix-Miner-aldiyen/zipball/v0.2.4Windows .exe download:
http://aldiyen.com/phoenix-ald-v0.2.4_onefile.zipI've created a new Guiminer-compatible exe. Unpack it to a new directory, so you don't overwrite any existing Guiminer files. You can change the path to the executable from within Guiminer to point to my Phoenix in the directory you've just unpacked it to. Download at:
http://aldiyen.com/phoenix-ald-v0.2.4_gm.zipIt seems that people like the XML-RPC patch from thejfk, so here's a version which is compatible with this version of Phoenix:
http://www.aldiyen.com/phoenix-ald-xmlrpc.diff - see
https://bitcointalksearch.org/topic/xml-rpc-interface-for-phoenix-allows-monitoring-23308 for an explanation
Note: I previously stated that rollntime could notably reduce stales, but I have been unable to reproduce the rejects with mainline Phoenix miner that I did with my initial tests, so I assume the rejects with mainline Phoenix during that testing were a fluke. My apologiesI don't have any plans to add more changes at this point, but I'd be happy to fix bugs and I would consider new features if you have something in particular in mind
Feedback is most welcome. Thanks!
-aldiyen
p.s. I haven't tested it at all with the MMP protocol