Bitcoin Forum
May 06, 2024, 06:33:41 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: **UPDATED Sep. 6th** Improved Phoenix miner -- new features!  (Read 3831 times)
aldiyen (OP)
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
August 22, 2011, 05:54:33 AM
Last edit: September 07, 2011, 04:21:51 AM by aldiyen
 #1

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#rollntime

Cosmetic 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-aldiyen

Direct download link:
https://github.com/aldiyen/Phoenix-Miner-aldiyen/zipball/v0.2.4

Windows .exe download:
http://aldiyen.com/phoenix-ald-v0.2.4_onefile.zip

I'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.zip

It 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://bitcointalk.org/index.php?topic=23308.0 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 apologies

I 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
1714977221
Hero Member
*
Offline Offline

Posts: 1714977221

View Profile Personal Message (Offline)

Ignore
1714977221
Reply with quote  #2

1714977221
Report to moderator
In order to achieve higher forum ranks, you need both activity points and merit points.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Crs
Member
**
Offline Offline

Activity: 107
Merit: 10



View Profile
August 22, 2011, 07:19:26 AM
 #2

Hey buddy,

Using it to mine SolidCoins.

nmc@nm:~/phoenix_beta$ sudo python phoenix.py -u http://crs:pass@localhost:7556/ DEVICE=1 -k phatk PLATFORM=1 BFI_INT VECTORS AGGRESSION=12 WORKSIZE=256
[22/08/2011 10:15:59] Phoenix Miner (aldiyen mod) v1.6.2 starting...
[22/08/2011 10:15:59] Connected to server
[337.19 Mhash/sec] [0 Accepted] [0 Rejected] [RPC]

Your version is about 4 mil hashes faster and everything seems to be ok.
Thanks !
aldiyen (OP)
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
August 22, 2011, 08:36:45 PM
 #3

cool, glad to hear it. it probably won't perform any differently unless you're mining at a pool, but it's still helpful to know that it's not doing anything weird when you're not connected to something that supports updating the work time. thanks!
tarion3
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
August 23, 2011, 05:11:48 AM
 #4

I just installed your version on my 2x5830 machine and am testing it now against Bitp.it. I'm going to let it run overnight and let you know the results as soon as I get the chance. I usually average about 1-2% rejections from this pool over a 24hr period. So far, no issues and everything seems to be running smoothly. Will keep you posted.  Grin
Fletch
Full Member
***
Offline Offline

Activity: 168
Merit: 100


I'll have a steak sandwich and a... steak sandwich


View Profile
August 23, 2011, 08:57:50 AM
Last edit: August 23, 2011, 07:13:45 PM by Fletch
 #5

Ditto. I just started running it against bitcoins.lc. I usually get about 0.3% stales so there's not a lot to improve on, but I guess every share counts Smiley

How do I know if a pool supports rollntime?

Edit: So far so good. "Grand Total : [1088.90 MHash/sec] [551 Accepted] [0 Rejected] [0% Rejected]"

Edit2: Still going strong. "Grand Total : [1088.68 MHash/sec] [3035 Accepted] [0 Rejected] [0% Rejected]"

Edit3: I'm impressed. "Grand Total : [1088.82 MHash/sec] [9490 Accepted] [0 Rejected] [0% Rejected]"

HashPeak - GPU mining hashrate peak detector
BTC: 1FLETCHvcUKosefrcZCLUQTtvx4WvgnYMC
aldiyen (OP)
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
August 23, 2011, 09:05:40 PM
 #6

How do I know if a pool supports rollntime?

Some pools have mentioned that they support it here in the forums, and some may list it as a feature on their sites, but in general I don't think it's well documented. I haven't added any output to explicitly indicate that the server supports rollntime, but if you run with the -v (verbose) flag, you will see when the miner gets new work, which should be a pretty good indicator. The normal phoenix gets work 2-3 times per minute on my system, at 410MH/sec, whereas this version will get work once every 4 minutes (on servers that support rollntime) unless the server explicitly specifies a work expiration (for instance, Eligius sets expiration to 120 seconds).

Anyway, I'm glad to hear that it's working well so far! Some time, perhaps later this week, I'm planning to add some functionality for the software to try re-submitting work that fails due to communication errors / timeouts; currently any such work is treated as a reject and discarded. After that I may add some other little tweaks to make the software a little bit friendlier. I'll update this thread as soon as I add any new features.
tarion3
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
August 23, 2011, 11:22:29 PM
 #7

I just installed your version on my 2x5830 machine and am testing it now against Bitp.it. I'm going to let it run overnight and let you know the results as soon as I get the chance. I usually average about 1-2% rejections from this pool over a 24hr period. So far, no issues and everything seems to be running smoothly. Will keep you posted.  Grin

Ok, so the results are in:

[300 Mh/s] [4456 Accepted] [1 Rejected] = 0.02% Rejected
[290 Mh/s] [4420 Accepted] [0 Rejected] = 0.00% Rejected

I have to say... awesome job!
anatolikostis
Legendary
*
Offline Offline

Activity: 2026
Merit: 1005



View Profile
August 23, 2011, 11:29:56 PM
 #8

why every link is launching two phoenix.exe process?  Huh Huh Huh
aldiyen (OP)
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
August 24, 2011, 02:41:23 AM
 #9

why every link is launching two phoenix.exe process?  Huh Huh Huh

I assume you mean when you run the phoenix.exe it spawns two processes called "phoenix.exe"? something to do with the way the software I used to convert the python to a windows .exe operates, from the look of it. one of them is using 0% CPU and only 1MB of memory, so I can't imagine it's doing much of anything. perhaps it's needed to spawn the main process
aldiyen (OP)
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
September 03, 2011, 06:31:12 PM
 #10

why every link is launching two phoenix.exe process?  Huh Huh Huh

Here's an explanation of why it spawns two phoenix.exe processes when you run the exe:
http://www.pyinstaller.org/export/latest/tags/1.4/doc/Manual.html?format=raw#how-one-file-mode-works

Also, I've uploaded a newer version with some refinements and enhancements. See the original posts for details.

-aldiyen
twmz
Hero Member
*****
Offline Offline

Activity: 737
Merit: 500



View Profile
September 04, 2011, 12:43:45 AM
 #11

I like the --disable-redraw in concept, but it causes a new line with status information to be written every second (which is just as much noise in a log file).  Any chance to add an additional option to control how often a status line is output when in --disable-redraw mode? 

Was I helpful?  1TwmzX1wBxNF2qtAJRhdKmi2WyLZ5VHRs
WoT, GPG

Bitrated user: ewal.
aldiyen (OP)
Newbie
*
Offline Offline

Activity: 18
Merit: 0


View Profile
September 04, 2011, 01:30:59 AM
 #12

I like the --disable-redraw in concept, but it causes a new line with status information to be written every second (which is just as much noise in a log file).  Any chance to add an additional option to control how often a status line is output when in --disable-redraw mode? 

done. you'll have to get a copy of the latest revision from the repository. use --refresh-rate or -r <value> to override the default.

-aldiyen
billywilly
Newbie
*
Offline Offline

Activity: 15
Merit: 0


View Profile
September 05, 2011, 08:00:25 PM
 #13

On lastest phoenix had very serious issues with LP and empty queue on ars pool. Tried yours from yesterday and the stales still about the same (maybe location and ping), but the other problems mentioned before are solved, no more empty queue Cheesy.


Thumbs up!
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!