Bitcoin Forum
March 28, 2024, 02:10:48 PM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: New mining program for Slush's pool  (Read 7654 times)
joshua70448 (OP)
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
April 08, 2013, 04:00:57 PM
Last edit: April 25, 2013, 06:50:03 PM by joshua70448
 #1

I've created my own GUI specifically designed to work with Slush's pool. It's similar in concept to GUIMiner, but with a few enhancements:

  • Since it's designed to work with Slush's pool, you log in using your API Key and your list of workers is pulled down automatically
  • Because you're logged into your Slush account, your account stats are pulled down every minute allowing you to keep track of your rewards in the program
  • Exchange market information is pulled from Bitcoincharts.com, allowing you to pick your desired currency and market and have your reward balances shown in that currency as well
  • More logging output
  • Support for proxy servers
  • Options like frames, sleep, and vector are exposed and explained better

.NET Framework 3.5 SP1 is required, along with Windows XP or newer. Both 32-bit and 64-bit systems are supported, and this program uses a Stratum-compatible POCLBM backend. This program is geared especially toward new Bitcoin miners, and since it's designed for Slush's pool it doesn't support solo mining or other pools. I'll consider adding support for other pools and solo mining in the future. I knocked this program together pretty quick so I'm sure there's probably bugs in it, but if anyone wants to try it out and let me know what they think, I'd appreciate it!

SlushMiner 0.2 download: https://sourceforge.net/projects/slushminer

Edit: Current version has been updated to 0.2, click above link to download!
"There should not be any signed int. If you've found a signed int somewhere, please tell me (within the next 25 years please) and I'll change it to unsigned int." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
joshua70448 (OP)
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
April 08, 2013, 09:04:29 PM
 #2

I hate bumping my own thread, but this forum moves kinda quick and I'd like to get some exposure for my little creation. Smiley
VishwaJay
Newbie
*
Offline Offline

Activity: 56
Merit: 0



View Profile
April 08, 2013, 09:06:42 PM
 #3

Received this:

Invalid download ID#

When I tried to snag the .msi file.

eeh
Full Member
***
Offline Offline

Activity: 185
Merit: 100


View Profile
April 08, 2013, 09:13:28 PM
 #4

I'll check it out this week. Thanks for the work!
joshua70448 (OP)
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
April 08, 2013, 09:13:56 PM
 #5

Received this:

Invalid download ID#

When I tried to snag the .msi file.

I could smack myself for that, looks like my website is buggy too Roll Eyes All better now!
VishwaJay
Newbie
*
Offline Offline

Activity: 56
Merit: 0



View Profile
April 08, 2013, 09:16:00 PM
 #6

Getting excited does that to me, every time... I overlook one LITTLE detail and stuff doesn't work correctly.

So, thanks. Downloading it and checking it out, will post my feedback in this thread.
RadChad
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
April 08, 2013, 09:29:06 PM
 #7

Here's what I got:

Code:
4/8/2013 5:18:10 PM Starting SlushMiner 0.1
4/8/2013 5:18:13 PM Getting currency market information
4/8/2013 5:18:14 PM Getting OpenCL platforms from POCLBM (attempt #1)
4/8/2013 5:18:16 PM Found platform #0: Intel(R) OpenCL
4/8/2013 5:18:17 PM Finished getting platforms
4/8/2013 5:18:17 PM Getting OpenCL devices from POCLBM for platform #0: Intel(R) OpenCL
4/8/2013 5:18:19 PM Finished getting currency market information
4/8/2013 5:18:20 PM Found platform #0 device #0: Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz
4/8/2013 5:18:20 PM Finished getting devices for platform #0
4/8/2013 5:19:37 PM Getting Slush Pool account information
4/8/2013 5:19:49 PM Finished getting Slush's Pool account info
4/8/2013 5:20:27 PM 0:0 started OpenCL miner on platform 0, device 0 (Intel(R) Core(TM) i5 CPU         650  @ 3.20GHz)
4/8/2013 5:20:28 PM 0:0 Setting server (itsradchad.worker1 @ stratum.bitcoin.cz:3333)
4/8/2013 5:20:28 PM 0:0 checking for stratum...
4/8/2013 5:20:28 PM 0:0 no response to getwork, using as stratum
4/8/2013 5:27:53 PM 0:0 Process exited
VishwaJay
Newbie
*
Offline Offline

Activity: 56
Merit: 0



View Profile
April 08, 2013, 09:49:50 PM
 #8

Initial reaction: COOL IDEA!  Cool

Love the thought that went into the tooltips. Love the live stats (which means I don't have to keep refreshing web pages).

Wishlist:
  • Faster load time for "initializing" phase... my card is slow, it reports a hashrate of 26.556 MHash/s with your GUI, but 33.5 with GUIMiner and 29.8 with cgminer. At 10 minutes after execution of the "start mining" button, it still isn't mining (cgminer isn't slowing down, and is running alongside it). There needs to be some indicator of activity. Log file indicated it was trying getwork first and didn't get a response, when slush prefers Stratum-only (according to what I can read on the site). It didn't ask for Windows firewall protection overrides, and so I'm wondering if this might actually be where the issue might be.
  • Dynamic processing similar to cgminer, with failover, etc.
  • Dynamic (once per x second(s)) hash rate update
  • Graphing performance functions (accepts per time frame: second/minute/hour/day or whatever)
  • Optimizations for popular GPUs
  • Reporting of accepts in log? I can't tell, since it didn't actually get running.

I know that's a lot to work on, but where it just didn't do anything for 10 minutes, I stopped using it and went back to cgminer for the moment. I'm willing to try it again in the future, and there is a lot of great potential for this software, but for the moment I think it's not working for me.

Logfile:
Code:
4/8/2013 3:46:02 PM Starting SlushMiner 0.1
4/8/2013 3:46:02 PM Getting currency market information
4/8/2013 3:46:02 PM Getting OpenCL platforms from POCLBM (attempt #1)
4/8/2013 3:46:02 PM Getting Slush Pool account information
4/8/2013 3:46:03 PM Found platform #0: AMD Accelerated Parallel Processing
4/8/2013 3:46:03 PM Finished getting platforms
4/8/2013 3:46:03 PM Getting OpenCL devices from POCLBM for platform #0: AMD Accelerated Parallel Processing
4/8/2013 3:46:05 PM Found platform #0 device #0: BeaverCreek
4/8/2013 3:46:05 PM Found platform #0 device #1: AMD A6-3420M APU with Radeon(tm) HD Graphics
4/8/2013 3:46:05 PM Finished getting devices for platform #0
4/8/2013 3:46:07 PM Finished getting currency market information
4/8/2013 3:46:21 PM Finished getting Slush's Pool account info
4/8/2013 3:46:21 PM 0:0 Process exited
4/8/2013 3:47:14 PM 0:0 WARNING: no adl3 module found (github.com/mjmvisser/adl3), temperature control is disabled
4/8/2013 3:47:14 PM 0:0 started OpenCL miner on platform 0, device 0 (BeaverCreek)
4/8/2013 3:47:14 PM 0:0 Setting server (VishwaJay.worker1 @ stratum.bitcoin.cz:3333)
4/8/2013 3:47:14 PM 0:0 checking for stratum...
4/8/2013 3:47:15 PM 0:0 no response to getwork, using as stratum
4/8/2013 3:47:43 PM 0:0 Process exited

Note that it took 20 seconds to get the account info, not sure why.

Device #1 doesn't parallel process. I always have to go with device #0 for some reason (with any software, not sure why that is, it may be hardware-related?).

But still... freakin' awesome idea, and I'll try it again once it can actually hash on my laptop.
montgolfier
Member
**
Offline Offline

Activity: 119
Merit: 10



View Profile
April 08, 2013, 09:54:31 PM
 #9

Mining with this now!

Looks and works really nice, will update if I get any errors

Cheers!
joshua70448 (OP)
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
April 08, 2013, 10:07:36 PM
 #10

Thanks for all of the feedback! I found that I wasn't catching StdErr messages coming from POCLBM, so I'm working on getting out a bugfix 0.1.1 version that catches those errors and logs them out so we can figure out exactly what's going on. I'll try to get that uploaded later tonight or tomorrow.

(VishwaJay, as for your device #1 not running, that's odd because my work machine has an AMD CPU and video card and they both run side-by-side without problems. Hopefully the StdErr fix will help me figure that one out...)
VishwaJay
Newbie
*
Offline Offline

Activity: 56
Merit: 0



View Profile
April 08, 2013, 10:31:53 PM
 #11

Looking forward to it!  Grin
joshua70448 (OP)
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
April 16, 2013, 04:47:04 AM
Last edit: April 25, 2013, 06:50:26 PM by joshua70448
 #12

I've released version 0.1.1 of SlushMiner on SourceForge (https://sourceforge.net/projects/slushminer) with the following improvements:

  • Miners automatically retry after errors (like lost connection) instead of sitting all night without running. A new dialog window will appear when a miner has a failure, and the miner will retry after 1 minute. If it fails again, this increases to 2, then 3, then 5, then 10. If it succeeds, it disappears from the list, and if the list is empty, the dialog closes itself (this way you don't wake up to an error message when the pool server has a hiccup in the middle of the night, but is running fine in the morning). If the miner fails to start right when you click START MINING, however, the standard error message will appear like before.
  • Handles JSON errors correctly (so the program won't crash when the currency market data is corrupt)
  • Errors sent by POCLBM to StdErr are now logged correctly (this should help with diagnosing problems)
  • System tray icon context menu (so you can right-click on the tray icon when minimized to start/stop mining)

Let me know what you think!
razibuzouzou
Sr. Member
****
Offline Offline

Activity: 354
Merit: 251


coinorama.net


View Profile WWW
April 16, 2013, 07:52:37 AM
 #13

Nice idea !
I am not a Windows user, but it sounds good for sure, keep up !
Qdentica
Newbie
*
Offline Offline

Activity: 11
Merit: 0


View Profile
April 16, 2013, 09:05:24 AM
 #14

Will test this one later tonight on my test rig!
ft73
Hero Member
*****
Offline Offline

Activity: 564
Merit: 508


View Profile
April 16, 2013, 09:15:04 AM
 #15

Nice to know
VishwaJay
Newbie
*
Offline Offline

Activity: 56
Merit: 0



View Profile
April 16, 2013, 10:35:47 AM
Last edit: April 16, 2013, 10:48:58 AM by VishwaJay
 #16

My Review
I will say this... I've been running it for about 10 hours.

The Upside
Hash rate increased to 33 MH/s ... not sure what that's about, but hey, it's 7 MH/s faster than before, so I'm going with it. Zero stales this time, too. Not sure if that's the pool or the miner, but it's pretty cool.

Pulls the information from slush's pool flawlessly. Confirmed with all of the exchanges, no errors. Confirmed with slush's pool, no errors, and consistently faster than my browser. Yay!

I'm actually very impressed with this little app.

The Downside
I'm not sure why, but poclbm fails to terminate with the application when I click the "close" box. In fact, it ran in the background for almost 4 hours, slowing down my hash rate on another miner and not reporting any shares to slush the whole time. I wouldn't have noticed, except that my fan was still going when I shut down the other one to switch and fired up your program again. This was really the only bugfix issue I noticed. Great job!

I have to run it as an administrator, for some really strange reason that I can't fathom, or it doesn't get access to my old laptop's GPU. This might not be wise, but setting the shortcut to require admin privileges might actually be a good short-term solution.

The Wishlist
This is my wishlist (not that joshua70448 has to conform... I can still dream!) (and the list is in no particular order):
  • A fix for the miniscule amounts I sometimes pull... rather than 1 satoshi displaying as 1.000E-08 BTC, having it display as 0.00000001 BTC. This might simply need to be a math-to-text conversion for the purposes of display, though I'm not sure if something like that is possible.
  • An image of Scarlett Johansson lying nude on the... wait, no, that's just me. Never mind.
  • Difficulty of hashes submitted, with an independent points calculator based on slush's disclosed calculations (just because I hate relying on web sites which might mis-report at any given moment because of heavy usage or hack attacks, etc., and it's good to have something independent to check with). And if it varies by a satoshi or two, I'm pretty sure nobody will care much... but significant differences should trigger a highlight on the tab.
  • Data from the "statistics" page: I would like a running log of as much of the data as I want to store (i.e., "lines of log to store" settable to 0 (off) and from 1b to 16mb), pulled on a regular basis from the pool's website. I believe this is really about as complex as pulling the information from the user page, though the link with the JSON information at the bottom might warrant its own tab. No math needs to be done on these numbers, just a display-and-log mechanism. If the log is updated and information corrected, highlighting would be awesome.
  • If we have the API key, why is there a need to manually pull the worker passwords? Auto-populating the passwords from the web page would be awesome, if that's even possible (I don't know anything about slush's API, so this very well might not even be possible or practical).
  • A selector which allows data pulled from multiple exchanges, with an "average" price per share (and optionally, from a single exchange).
  • A selector which allows multiple currencies to be pulled.
  • A way to completely turn off the financials... mainly because I'm not interested in the minute (as in: tiny) gains or losses of the exchange rates while I mine. This one might just be me, but I really don't care about the exchange rate at the moment.
  • An image of Scarlett Johansson, standing nude... woops, never mind, that's not a good feature for everyone.
  • An option to donate a small portion of my proceeds to the developer's BTC or NMC fund, with optons for flat-rate amount per time period AND/OR percentage of each payout from slush. I think this is fair, so long as it defaults to being "off" and isn't pumped or hyped any more than the link on the "about" window, etc. (some of us are less concerned about the money and reminders tend to be annoying)
  • The ability to select a miner other than poclbm (not because I necessarily want to, but experimentation and a snazzy interface like the one for poclbm would be nice... different miners seem to work better with specific pieces of hardware than others... not sure if there's a pattern to this or not).
  • The ability to input a command to the command line, such as C:\cgminer\cgminer -w32 -I15 <etc.> so that an alternate miner can be used, if a new one happens to come out. This could be complicated, though, since it would necessarily have to reject the URL and user/password stuff... just an idea.
  • A comprehensive help file, for those who aren't necessarily the most literate on Bitcoin, your software, etc.
  • Tooltips! The ones that are there during the non-mining would be helpful so that we can research and figure out what we want to do during mining, stop, drop in the extra flags or check/uncheck a box, and get back to mining before anyone notices that it's even down. As mining gets faster and more complex, this could actually become a bigger issue.
  • Log export function, copy-to-clipboard, save-to-text-file, send-report-to-developer, etc., just some button so that we don't have to copypasta by hand.
  • Adjustable log verbosity (export is full verbosity, but we might not want everything in the display).
  • Some kind of "easter egg"/undocumented fun to discover.
  • An image of Scarlett Johansson... geez, I really have to let that go.
  • An option to set/change worker difficulty.

I'm kind of an asshole to people (if you haven't read some of my other posts on the other threads). But truth be told, I find very little wrong with this software, from a user perspective. The only issues I see are that this community tends to want to look at the code, so open sourcing might be good for marketing purposes here.

And I'll pass it through my rootkit detectors and multiple virus checkers, really torture-test stuff later on (just to see if there are any compatibility issues with any virus checkers out there, since Chrome apparently labels one of the miners as malware, even though it's clearly not), but for now I'm really liking what I see. I reiterate: great job, joshua70448!
headygains
Newbie
*
Offline Offline

Activity: 32
Merit: 0



View Profile
April 16, 2013, 12:13:18 PM
 #17

downloading now, after reading the discussion above I'm excited for the features!
joshua70448 (OP)
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
April 16, 2013, 12:14:49 PM
 #18

I'm not sure why, but poclbm fails to terminate with the application when I click the "close" box. In fact, it ran in the background for almost 4 hours, slowing down my hash rate on another miner and not reporting any shares to slush the whole time. I wouldn't have noticed, except that my fan was still going when I shut down the other one to switch and fired up your program again. This was really the only bugfix issue I noticed. Great job!

I've noticed this too, and it's a problem I've already solved on the program I work on in my real job so I'll just take a look at the code over there and copy it over Wink

I have to run it as an administrator, for some really strange reason that I can't fathom, or it doesn't get access to my old laptop's GPU. This might not be wise, but setting the shortcut to require admin privileges might actually be a good short-term solution.

I use my computers in admin mode by default (shame on me, I know, but I'm lazy), so I'll try to play with the program in a restricted account and see what's up.

The Wishlist
This is my wishlist (not that joshua70448 has to conform... I can still dream!) (and the list is in no particular order):

Hey, I'm always a fan of ideas for new features, gives me something to do Cheesy

  • A fix for the miniscule amounts I sometimes pull... rather than 1 satoshi displaying as 1.000E-08 BTC, having it display as 0.00000001 BTC. This might simply need to be a math-to-text conversion for the purposes of display, though I'm not sure if something like that is possible.

Definitely something I'll fix in the next version, and not that hard to fix either.

  • Data from the "statistics" page: I would like a running log of as much of the data as I want to store (i.e., "lines of log to store" settable to 0 (off) and from 1b to 16mb), pulled on a regular basis from the pool's website. I believe this is really about as complex as pulling the information from the user page, though the link with the JSON information at the bottom might warrant its own tab. No math needs to be done on these numbers, just a display-and-log mechanism. If the log is updated and information corrected, highlighting would be awesome.

Yeah, those stats have their own JSON page, I would just add a timer to pull that on a regular basis and log it out to the interface. I plan on implementing that at some point, once I get the major kinks worked out of the rest of the program.

  • If we have the API key, why is there a need to manually pull the worker passwords? Auto-populating the passwords from the web page would be awesome, if that's even possible (I don't know anything about slush's API, so this very well might not even be possible or practical).

The API key lets me get the JSON information for your account, including a list of your workers, but sadly it doesn't give me passwords. I tried really hard to build a screen scraper that would let you log into your account and pull your worker passwords for you, but I couldn't get it to authenticate Sad

  • A selector which allows data pulled from multiple exchanges, with an "average" price per share (and optionally, from a single exchange).
  • A selector which allows multiple currencies to be pulled.
  • A way to completely turn off the financials... mainly because I'm not interested in the minute (as in: tiny) gains or losses of the exchange rates while I mine. This one might just be me, but I really don't care about the exchange rate at the moment.

I'll add more interesting stuff for the currencies at some point, and for now you can turn them off by changing the Currency dropbox to (none) to turn that off (I'll try to make a checkbox that does the same thing at some point).

  • An option to donate a small portion of my proceeds to the developer's BTC or NMC fund, with optons for flat-rate amount per time period AND/OR percentage of each payout from slush. I think this is fair, so long as it defaults to being "off" and isn't pumped or hyped any more than the link on the "about" window, etc. (some of us are less concerned about the money and reminders tend to be annoying)

I'll at least add a donation link to the About tab, and I'll consider something like what you're suggesting, I just really hate when developers beg for money in their apps. If I add something, I guarantee it'll be as low-key as possible Wink

  • The ability to select a miner other than poclbm (not because I necessarily want to, but experimentation and a snazzy interface like the one for poclbm would be nice... different miners seem to work better with specific pieces of hardware than others... not sure if there's a pattern to this or not).
  • The ability to input a command to the command line, such as C:\cgminer\cgminer -w32 -I15 <etc.> so that an alternate miner can be used, if a new one happens to come out. This could be complicated, though, since it would necessarily have to reject the URL and user/password stuff... just an idea.

These two suggestions are a little trickier, since I've written this program to specifically handle output from POCLBM. An idea for the (not terribly near) future might be some kind of addon system for various mining programs.

  • Log export function, copy-to-clipboard, save-to-text-file, send-report-to-developer, etc., just some button so that we don't have to copypasta by hand.

I thought about these when I was first putting the app together, but I was too lazy to actually do them. I'll probably add them in the next release, though; it would make problems easier to diagnose.

  • Adjustable log verbosity (export is full verbosity, but we might not want everything in the display).

I'll probably do something similar to the program I work on in my real job, where I use a listview to show the log info with various severity levels (message, warning, error, fatal, etc.).

  • An option to set/change worker difficulty.

Sadly, this is another one of those things that I would need to be able to authenticate in order to do, and I can't do that at the moment. If anyone has some C# code that can authenticate to Slush's pool, I would really appreciate it! Cheesy

The only issues I see are that this community tends to want to look at the code, so open sourcing might be good for marketing purposes here.

I'm definitely a fan of open-source, I'm just not quite ready to release the code yet, I wanted to make sure it was working well and I need to clean up and comment the code (again, I'm a lazy programmer Wink )

And I'll pass it through my rootkit detectors and multiple virus checkers, really torture-test stuff later on (just to see if there are any compatibility issues with any virus checkers out there, since Chrome apparently labels one of the miners as malware, even though it's clearly not), but for now I'm really liking what I see. I reiterate: great job, joshua70448!

Thanks Cheesy One of the reasons I used POCLBM to mine was it doesn't set off the enterprise virus scanner on my work machine, whereas cgminer is blocked as malware (some nasty viruses bring along a copy of cgminer to mine bitcoins on infected machines and send the proceeds to the virus author).
VishwaJay
Newbie
*
Offline Offline

Activity: 56
Merit: 0



View Profile
April 16, 2013, 05:30:54 PM
 #19

Wow, I didn't actually expect such a detailed reply, LOL!

Thanks, though: it demonstrates a level of seriousness which lends a little to your software.

But IIRC, you've done a really great job so far with this. Hope that not all of my suggestions are necessarily taken seriously... feeping creature and all that.

For the financials, I didn't see the (none) ... it would be helpful if it was in both lists, perhaps? (Add that to the wishlist.) But the fact I can already turn it off is actually pretty awesome. Smiley
VishwaJay
Newbie
*
Offline Offline

Activity: 56
Merit: 0



View Profile
April 16, 2013, 06:51:32 PM
 #20

Also, just wondering: is there a way to set up poclbm to spit out a verbose log, perhaps with a config file?
Pages: [1] 2 »  All
  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!