Giter Club home page Giter Club logo

poclbm's Introduction

GUIMiner - a graphical interface for mining Bitcoins

by Chris 'Kiv' MacLeod based on:

  • "poclbm" by m0mchil
  • 'rpcminer' by puddinpop
  • bitcoin-miner by ufasoft

What is it?

GUIMiner is a graphical front end for mining Bitcoins. It provides a more convenient way to operate Bitcoin miners without having to use the command line. It supports both NVIDIA and ATI GPUs, as well as CPU mining. It supports both pooled mining and solo mining, with a wide list of pool servers pre-set with the program.

What is it not?

GUIMiner does not replace the standard Bitcoin client from bitcoin.org - you still need that program to view your account balance and send transactions. It is not a server, so it has to connect either to a mining pool, or to your computer's 'bitcoin.exe' if mining solo.

The Latest Version

You can get the latest version on the project page at GitHub:

https://github.com/Kiv/poclbm

Features

  • Supports multiple miners in a tabbed interface.
  • Remembers your login info between sessions.
  • Supports both solo and pooled mining.
  • Supports OpenCL, CUDA, and CPU mining.
  • Minimizes to tray. Hover on tray icon to see status.
  • Displays your accepted and stale/invalid shares over time.
  • View your account balance with a pool and/or withdraw funds from the GUI, at participating pools.

Requirements

  • To mine using an ATI GPU, you need an OpenCL compatible card with a working version of OpenCL installed. If you are unsure whether your GPU supports OpenCL, try the GPU Caps Viewer:

    http://www.ozone3d.net/gpu_caps_viewer/

For AMD/ATI cards, to get a version of OpenCL you need the Stream SDK which is available here: http://developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/

For NVIDIA cards, you can also install OpenCL and mine that way, or you can install CUDA and use rpcminer-CUDA which may provide slightly higher performance since it is optimized specifically for NVIDIA cards.

For CPU mining, you don't need anything special; you can mine using rpcminer-cpu or rpcminer-4way; try both to see which has better performance on your CPU.

Instructions for Pooled Mining

Pooled mining is recommended for most users, since it gives steadier payouts than solo mining. Several pool servers are supported out of the box; you can select one from the "Server" dropdown menu. Different servers have different fees and features; you can visit the website for each one to learn more. Also, the official Bitcoin forums are a good source for information:

http://www.bitcoin.org/smf/

Most servers require (free) registration; to register go to the server website and follow their instructions.

Once you've registered, you can enter your login information in the fields of the GUI. The "Extra flags" field is optional and can be used to fine-tune GPU performance.

Click "Start mining!" to connect to the server. The miner should connect and start showing your hash rate. This is the number of attempts per second to solve the current block. After a while the miner will also show "shares" accepted by the pool. The more shares you have, the larger your share will be of the 50 Bitcoins when the block is solved.

To see if your hashing rate is comparable to others, you can look up your GPU on this chart:

http://pastebin.com/AvymGnMJ

You can save your login info for next time by using File -> Save. Next time you open the GUI your login will be remembered.

You can run multiple CPUs/GPUs in separate tabs by using File -> New and entering the new miner's login info. Remember to save your login info after it's entered.

Solo Mining

Solo mining is recommended for users with a lot of computing power available, or if you can't find or connect to any pools. It doesn't give any award at all unless you find a block (which takes weeks to months), at which point you get 50 BTC all at once.

For solo mining, instead of connecting to a pool server you connect to your own local machine's copy of 'bitcoin.exe'. Instead of registering with the pool server, you put your login info in a special file called 'bitcoin.conf'.

GUIMiner has utilities to help with these tasks. To create the bitcoin.conf, choose "Solo utilities -> Create solo password..." and create a user and password. It should show a message saying that it was successful.

To launch bitcoin.exe in server mode, you might need to point GUIMiner to the location of bitcoin.exe. If you installed Bitcoin in the regular location of Program Files/Bitcoin, you can skip this step. Otherwise choose "Solo utilities -> Set Bitcoin client path".

Then make sure bitcoin.exe is not running already and choose "Solo utilities -> Launch Bitcoin client". This should bring up the official Bitcoin client. You will need to leave this open while you are solo mining.

You will need to be connected to the Bitcoin network before you can mine; in the official client this is shown in the status bar as "6 connections" or similar.

If this is the first time you've launched the official Bitcoin client, you will also need to wait while the block chain is downloaded. This can take a long time on slower computers.

Now you can enter your information in the text boxes. Make sure the "Host" option reads "localhost" since the server is on your own machine. Put your username and password that you chose earlier. Then press "Start mining!" to connect and start mining.

Useful OpenCL flags

These flags can be entered in the Extra Flags field when using the OpenCL miner to tweak the miner settings:

-v Enable vectors, which is faster on some cards. -f30 Set priority to the specified number (default 30). A higher number is lower priority. Increase this to reduce desktop lag or to make a miner yield GPU control to other miners or games. -s0.01 Sleep for the specified number of seconds between iterations (default 0). Increase this to reduce hashing performance if your temperatures are too high.

These are the most useful flags; for a complete list, see here: http://forum.bitcoin.org/?topic=4122.0

Running From Source

Running GUIMiner from source requires: - Python 2.6 or higher (Python 3 not supported) - wxPython

Mining using OpenCL with poclbm also requires:
- PyOpenCL
- numpy

Once these are installed run "guiminer.py" to start.

Bug Reporting

This is very early software, so any bug reports are appreciated. Issues and forks can be created at:

https://github.com/Kiv/poclbm    

poclbm's People

Contributors

andrejfilatov avatar blauwbek avatar brandonjank avatar brocktice avatar colindean avatar enolan avatar fpgaminer avatar gominoa avatar gregbuehler avatar jasonic8 avatar jine avatar ketzer2002 avatar kiv avatar kpfile avatar kylegibson avatar laanwj avatar luke-jr avatar m0mchil avatar macabu avatar magnuspub avatar mikeallisonjs avatar mroswald avatar parceval avatar sandrohc avatar thebaba avatar wesleym avatar xslidian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

poclbm's Issues

guiminer doesn't work on windows 8 ?

I've upgraded to windows 8 this morning, but now guiminer won't launch !

All I get is the icon in the taskbar for a few seconds, and it disapears. I have no error message, no windows, no error logs.

I have tried launching the app as an administrator, and in "windows xp" and "windows 7" compatibility modes.

CPU affinity on version 6/14

By default it uses all the cores. This becomes a problem with multiple miners, on a quad core/etc. It uses 25% cpu for each card 4*25=100 load. If I set it to use core 0 only then i get 25 % for all 4 cards. I think this feature would work better if was set to 1 core by default. Took me a few days to figure this out, but alot of people have not and are maxxing out their CPU for no good reason.

executable flag and hash-bang in guiminer.py

diff --git a/guiminer.py b/guiminer.py
old mode 100644
new mode 100755
index e8c9499..c5d09c3
--- a/guiminer.py
+++ b/guiminer.py
@@ -1,3 +1,5 @@
+#!/usr/bin/python
+
 """GUIMiner - graphical frontend to Bitcoin miners.

 Currently supports:

Add a scheduling feature

My power is billed based on a time-of-use system. ie. my power is much cheaper overnight than it is during the day (half the price).
If GUIMiner could allow me to setup a simple schedule I could disable mining during weekdays and only mine weeknights/weekends and save quite a bit of money on my power bill.

No longer works with slush

I restarted my computer after some windows updates, but now I get this error when I try to mine using the slush pool:

2011-06-14 23:46:55: Listener for "Slush1" started
2011-06-14 23:46:55: Listener for "Slush1": 14/06/2011 23:46:55, Backend is not connected!
2011-06-14 23:46:57: Listener for "Slush1": 14/06/2011 23:46:57, Backend is not connected!
2011-06-14 23:46:58: Listener for "Slush1": 14/06/2011 23:46:58, Call to bitcoind failed: [Errno socket error] [Errno 111] Connection refused
2011-06-14 23:46:59: Listener for "Slush1": 14/06/2011 23:46:59, Backend is not connected!
2011-06-14 23:47:04: Listener for "Slush1": 14/06/2011 23:47:04, Call to bitcoind failed: [Errno socket error] [Errno 111] Connection refused
2011-06-14 23:47:07: Listener for "Slush1" shutting down

The path for bitcoin is ok. I downloaded the new bitcoin 0.3.23 and the latest guiminer, but the problem persists. I can do solo fine. I don't know if they are related, but after the DDOS attack when I logged into my account, I saw this message:

For optimal performance, please point your miners to new URL: api.bitcoin.cz

Can't save config

Hi,

I'm using GUIMiner v2012-12-03

When I click "Save parameters", nothing happen. When I try to quit, "Do you want to save ?" => "Yes", nothing happen.

Where should I start digging ? Thanks

rpcminer-cuda.exe?

where is it?
and why when starting CUDA I have nothing? nada!
no log, no error , no nothing :(

ext path it is looking for it:
C:\Users\My.name\Downloads\guiminer-20121203\guiminer\miners\puddinpop\rpcminer-cuda.exe

i don't have folder miners !

Connection problems with new release of poclbm

In the console window, when I've replaced the poclbm.exe from 2012-02-19 packaged with GUIMiner of the same date with the poclbm.exe from yesterday's release (2012-09-20).

2012-09-21 17:45:26: Listener for "6850" started
2012-09-21 17:45:26: Listener for "6850": 21/09/2012 17:45:26, need more than 1 value to unpack
2012-09-21 17:45:26: Listener for "6850": Traceback (most recent call last):
2012-09-21 17:45:26: Listener for "6850": File "poclbm.py", line 85, in <module>
2012-09-21 17:45:26: Listener for "6850": File "BitcoinMiner.pyo", line 50, in __init__
2012-09-21 17:45:26: Listener for "6850": File "BitcoinMiner.pyo", line 263, in get_adapter_info
2012-09-21 17:45:26: Listener for "6850": NameError: global name 'ADLError' is not defined

Long-polling deprecated, use stratum port where available

Eclipse offers stratum protocol on port 3333 of all servers, m0mchil#65 implies getwork/long-polling is deprecated and stratum should be used where available. Change port on eclipse from 8337 to 3333 in servers.ini to avoid some issues. Not sure of stratum availability on other pools.

Add MTRed pool

    {
        "name": "MTRed",
        "host": "mtred.com",
        "url": "https://mtred.com/",
        "port": 8337,
        "balance_host": "https://mtred.com",
        "balance_url": "/api/user/key/%s/",
        "balance_token_url": "https://mtred.com/user/profile/edit.html"
    },

Not 100% sure that the balance will work, didn't look closely at the parsing code. My guess is it is something like changing confirmed to balance in the code, but you are the coder! An example of the JSON returned can be found at https://mtred.com/api/user/key/d0c3696e93e172c284fd1c818bee54b2

Thanks!

POCLBM fails on 7970

This is the log:

2012-11-26 14:22:25: Listener for "GPU0" started
2012-11-26 14:22:25: Listener for "GPU0": 26/11/2012 14:22:25, ADL_Adapter_Active_Get failed, cutoff temperature disabled for 0:0:Tahiti
2012-11-26 14:22:25: Listener for "GPU0": Traceback (most recent call last):
2012-11-26 14:22:25: Listener for "GPU0": File "poclbm.py", line 78, in
2012-11-26 14:22:25: Listener for "GPU0": File "OpenCLMiner.pyo", line 100, in initialize
2012-11-26 14:22:25: Listener for "GPU0": File "OpenCLMiner.pyo", line 129, in init
2012-11-26 14:22:25: Listener for "GPU0": TypeError: 'NoneType' object has no attribute 'getitem'
2012-11-26 14:22:31: Listener for "GPU0" shutting down

Minor issue for new users mining locally

Hi,

When you select "Launch Bitcoin as a server," the program immediately notifies the user that it's ready to work. On my computers, it takes about 20 seconds before the Bitcoin server loads and creates connection. If you try to mine before the client it ready, guiminer gives a connection error message. Maybe the wording can be changed to tell the users to wait until the Bitcoin client is loaded and has connections. Also, new users may not know about needing to wait until all the blocks are downloaded before mining.

The program is working beautifully. I have it running on two computers, one with SLI. They ally have Nvidia 9800 GT cards. Each card is calculating 30 Mhash/sec.

I want to make a donation, but the link takes me to MyBitcoin site and I don't have any Bitcoins to send you right now. Do you accept Paypal?

No Json object could be decoded

I'm new to the GUI miner, and am having difficulty. When I try to start I see the error message no json object could be detected. Any hints on what I ma be doing wrong?

guiminer drops to khash

Hello,

I have an issue. I am running GUIminer with 2x ATI 5970s. The problem that I am having is that the Mhash rate will run for a few minutes at 300 mhash per core (1.2k mhash total) and then drop down to minimal (312 KHash) for no reason that I am able to troubleshoot. Do you have any idea why this would be happening?

Any help would be appreciated.

Thank you

GUIMiner won't recognize GPU or CPU

I'm trying to set GUIMiner on my Windows Server 2008R2 box but when I start it it lists "No OpenCL device" in the drop down list.

I have an Intel Xeon E3-1230 proc and a Geforce 8400 GS card which isn't great but it's still compatible with CUDA and has the latest drivers installed.

Is it possible that it can't see the hardware because I typically log on to the server through an RDP session?

ImportError: No module named tools

When I connect to slush's pool, I get the following error:

ImportError: No module named tools

It seems to be coming from ioutil.py in this line:

from serial.tools import list_ports

I'm running Python 2.7.3 on Linux Mint Maya. I haven't installed python-opencl since I don't have any GPU or CUDA. (In fact, when GUIMiner starts it says "No OpenCL devices detected"). I have installed "python-serial" and "python-numpy" already. Meaning import serial works but import serial.tools fails.

This error happens with latest code from master (as of today).

There is no way to use a proxy

I'm behind a firewall and there is a squid proxy that I can use, but there is no configuration available to include address, port, username and password so it can connect through a proxy, as pools have http addresses.

Start mining when the screensaver is activated

Hi there

I just hacked together a little something that polls dbus and starts/stops mining when the screensaver comes on/off.

My editor removes whitespace at line ends so there's a few occurrences of that in the diff. This will of course only work on systems with dbus. Since I'm really not a python programmer I'd like to leave the task of making this safe for other platforms (e.g. disabled) and maybe adding a console switch to (de)activate this feature or add a checkbox in the gui and whatnot to you.

For my purposes, this is sufficient but I hope it might be useful to others and so am trying to contribute back.

Have fun!

diff --git a/guiminer.py b/guiminer.py
old mode 100644
new mode 100755
index e8c9499..780fe7a
--- a/guiminer.py
+++ b/guiminer.py
@@ -1,3 +1,5 @@
+#!/usr/bin/python
+
 """GUIMiner - graphical frontend to Bitcoin miners.

 Currently supports:
@@ -14,6 +16,7 @@ import sys, os, subprocess, errno, re, threading, logging, time, httplib, urllib
 import wx
 import json
 import collections
+import dbus

 try:
     import win32api, win32con, win32process
@@ -165,7 +168,7 @@ def get_opencl_devices():
     for i, platform in enumerate(platforms):
         devices = platform.get_devices()
         for j, device in enumerate(devices):
-            device_strings.append('[%d-%d] %s' % 
+            device_strings.append('[%d-%d] %s' %
                 (i, j, merge_whitespace(device.name)[:25]))
     if len(device_strings) == 0:
         raise IOError
@@ -227,9 +230,9 @@ logger, formatter = init_logger()

 def http_request(hostname, *args, **kwargs):
     """Do a HTTP request and return the response data."""
-    conn_cls = httplib.HTTPSConnection if kwargs.get('use_https') else httplib.HTTPConnection        
-    conn = conn_cls(hostname) 
-    try:        
+    conn_cls = httplib.HTTPSConnection if kwargs.get('use_https') else httplib.HTTPConnection
+    conn = conn_cls(hostname)
+    try:
         logger.debug(_("Requesting balance: %(request)s"), dict(request=args))
         conn.request(*args)
         response = conn.getresponse()
@@ -294,11 +297,11 @@ class ConsolePanel(wx.Panel):

     def append_text(self, text):
         self.text.AppendText(text)
-        lines_to_cut = self.text.GetNumberOfLines() - self.n_max_lines 
+        lines_to_cut = self.text.GetNumberOfLines() - self.n_max_lines
         if lines_to_cut > 0:
             contents = self.text.GetValue()
             position = find_nth(contents, '\n', lines_to_cut)
-            self.text.ChangeValue(contents[position + 1:])                        
+            self.text.ChangeValue(contents[position + 1:])

     def write(self, text):
         """Forward logging events to our TextCtrl."""
@@ -501,7 +504,7 @@ class PhoenixListenerThread(MinerListenerThread):
         (r"Currently on block",
             lambda _: None), # Just ignore lines like these
     ]
-    
+
 class CgListenerThread(MinerListenerThread):
     LINES = [
         (r"Accepted .* GPU \d+ thread \d+",
@@ -513,7 +516,7 @@ class CgListenerThread(MinerListenerThread):
         (r"^GPU\s*\d+",
             lambda _: None), # Just ignore lines like these
     ]
-    
+

 class MinerTab(wx.Panel):
     """A tab in the GUI representing a miner instance.
@@ -806,13 +809,13 @@ class MinerTab(wx.Panel):
             text = format_khash(self.last_rate)
         self.summary_status.SetLabel(text)

-        self.summary_shares_accepted.SetLabel("%d (%d)" % 
+        self.summary_shares_accepted.SetLabel("%d (%d)" %
             (self.accepted_shares, len(self.accepted_times)))

         if self.is_solo:
             self.summary_shares_invalid.SetLabel("-")
         else:
-            self.summary_shares_invalid.SetLabel("%d (%d)" % 
+            self.summary_shares_invalid.SetLabel("%d (%d)" %
                 (self.invalid_shares, len(self.invalid_times)))

         self.summary_start.SetLabel(self.get_start_stop_state())
@@ -987,7 +990,7 @@ class MinerTab(wx.Panel):
         #  use universal_newlines to catch the \r output on Mhash/s lines
         try:
             logger.debug(_('Running command: ') + cmd)
-            # for cgminer: 
+            # for cgminer:
             # We need only the STDOUT for meaningful messages.
             if conf_func == self.configure_subprocess_cgminer:
                 self.miner = subprocess.Popen(cmd, cwd=cwd,
@@ -1003,7 +1006,7 @@ class MinerTab(wx.Panel):
                                               universal_newlines=True,
                                               creationflags=flags,
                                               shell=(sys.platform != 'win32'))
-            
+
         except OSError:
             raise #TODO: the folder or exe could not exist
         self.miner_listener = listener_cls(self, self.miner)
@@ -1321,14 +1324,14 @@ For cgminer use -I 8 or -I 9. Without any params for desktop usage."""))
                                       "mtred.com",
                                       "rr.btcmp.com",
                                       "bitcoin-server.de"]
-        if host in HOSTS_REQUIRING_AUTH_TOKEN: return True        
-        if "btcguild" in host: return True      
+        if host in HOSTS_REQUIRING_AUTH_TOKEN: return True
+        if "btcguild" in host: return True
         return False
-    
+
     def requires_https(self, host):
         """Return True if the specified host requires HTTPs for balance update."""
         return host == "mtred.com"
-    
+
     def on_balance_refresh(self, event=None):
         """Refresh the miner's balance from the server."""
         host = self.server_config.get("host")
@@ -1388,14 +1391,14 @@ For cgminer use -I 8 or -I 9. Without any params for desktop usage."""))
         self.http_thread.start() # TODO: look at aliasing of this variable

     def request_payout_btcmp(self, balance_auth_token):
-        """Request payout from btcmp's server via HTTP POST."""        
+        """Request payout from btcmp's server via HTTP POST."""
         response, data = http_request(
             self.server_config['balance_host'],
             "GET",
             self.server_config["payout_url"] % balance_auth_token,
             use_https=False
         )
-        
+
         if self.is_auth_token_rejected(response):
             data = _("Auth token rejected by server.")
         elif not data:
@@ -1870,7 +1873,7 @@ class GUIMiner(wx.Frame):
         self.Bind(wx.EVT_MENU, self.launch_solo_server, id=ID_LAUNCH)
         self.Bind(wx.EVT_MENU, self.on_change_language, id=ID_CHANGE_LANGUAGE)
         self.Bind(wx.EVT_MENU, self.on_donate, id=ID_DONATE_SMALL)
-        self.Bind(wx.EVT_CLOSE, self.on_close)        
+        self.Bind(wx.EVT_CLOSE, self.on_close)
         self.Bind(wx.EVT_ICONIZE, self.on_iconize)
         self.Bind(fnb.EVT_FLATNOTEBOOK_PAGE_CLOSING, self.on_page_closing)
         self.Bind(fnb.EVT_FLATNOTEBOOK_PAGE_CLOSED, self.on_page_closed)
@@ -1881,7 +1884,7 @@ class GUIMiner(wx.Frame):

         if not self.start_minimized_chk.IsChecked():
             self.Show()
-            
+
     def on_iconize(self, event):
         if event.Iconized() and sys.platform == 'win32':
             self.Hide() # On minimize, hide from taskbar.
@@ -2005,6 +2008,10 @@ class GUIMiner(wx.Frame):
             self.Hide()
             event.Veto()
         else:
+
+            # terminate the dbus mainloop
+            dbusThread.stop()
+
             if any(p.is_modified for p in self.profile_panels):
                 dialog = wx.MessageDialog(self, _('Do you want to save changes?'), _('Save'),
                     wx.YES_NO | wx.YES_DEFAULT | wx.ICON_QUESTION)
@@ -2100,7 +2107,7 @@ class GUIMiner(wx.Frame):

         if config_data.get('show_console', False):
             self.show_console()
-            
+
         window_position = config_data.get('window_position')
         if window_position:
             self.SetRect(window_position)
@@ -2261,7 +2268,7 @@ class GUIMiner(wx.Frame):
         """Duplicate the current miner to another miner."""
         p = self.nb.GetPage(self.nb.GetSelection())
         if p not in self.profile_panels:
-            return        
+            return
         self.name_new_profile(event=None, extra_profile_data=p.get_data())

     def on_change_language(self, event):
@@ -2304,7 +2311,7 @@ class DonateDialog(wx.Dialog):
             data.SetText(DONATION_ADDRESS)
             wx.TheClipboard.SetData(data)
         wx.TheClipboard.Close()
-        
+

 class ChangeLanguageDialog(wx.Dialog):
     """Dialog prompting the user to change languages."""
@@ -2385,7 +2392,7 @@ To remember this token for the future, save your miner settings.""")

 class AboutGuiminer(wx.Dialog):
     """About dialog for the app with a donation address."""
-    
+
     def __init__(self, parent, id, title):
         wx.Dialog.__init__(self, parent, id, title)
         vbox = wx.BoxSizer(wx.VERTICAL)
@@ -2436,10 +2443,58 @@ class OpenCLWarningDialog(wx.Dialog):
     def is_box_checked(self):
         return self.no_show_chk.GetValue()

+# have a thread that polls the screensaver status from dbus. polling sucks but
+# apparently it is not possible to have 2 mainloops (the app/window already has
+# one and dbus requires to have another one if we want to be a signal (event)
+# receiver.
+class DbusThread(threading.Thread):
+    def run(self):
+        print('starting dbus integration')
+        self.keep_running = True
+        bus = dbus.SessionBus()
+        ss  = bus.get_object('org.freedesktop.ScreenSaver', '/ScreenSaver')
+        lastVal = ss.GetActive()
+        while self.keep_running:
+            try:
+                time.sleep(1)
+                val = bool(ss.GetActive())
+                if lastVal != val:
+                    print('Screensaver Active = %r' % val)
+                    if val == True:
+                        for p in frame_1.profile_panels:
+                            if p.is_mining:
+                                print('Already Mining, No Change')
+                            else:
+                                print('Mining Start!')
+                                wx.CallAfter(p.start_mining)
+                    else:
+                        for p in frame_1.profile_panels:
+                            if p.is_mining:
+                                print('Mining Stop!')
+                                wx.CallAfter(p.stop_mining)
+                            else:
+                                print('Not Mining, No Change')
+
+                lastVal = val
+            except Exception, e:
+                logging.exception("Exception: %r" % e)
+
+        print('dbus main loop has finished')
+
+    def stop(self):
+        print('stopping dbus integration')
+        self.keep_running = False
+
+
+# the dbus thread must be able to access frame_1.profile_panels
+frame_1 = GUIMiner(None, -1, "")
+
+# the on close method of the frame must be able to stop the dbus thread
+dbusThread = DbusThread()

 def run():
     try:
-        frame_1 = GUIMiner(None, -1, "")
+        dbusThread.start()
         app.SetTopWindow(frame_1)
         app.MainLoop()
     except:

2011-08-23 "Accepted" not working

With the latest 2011-08-23 release the "Accepted" column on the summary page seems broken (at least for slush/poclbm)
The pool actually accepts shares but they won't get listed.

Documentation clarification

Could you clarify something? When I look at my summary page, there is a column labeled Accepted, but there are two number listed for each worker. What is the number outside the parenthesis and the number inside the parenthesis? Same question for the Stale column.

If I have two cards running two different miners, do I need to register two different workers? For example, I joined slush pool and created a single worker. I'm using the single worker for both my miners. Is this right or do I need to set up a separate worker for each miner?

Thanks,
Ali

Update BTCGuild and Remove defunct BitPenny pool

New BTCGuild server setup

        {   "name": "BTC Guild (Florida, USA)",
            "host": "useast.btcguild.com",
            "url": "http://www.btcguild.com",
            "port": 8332,
            "balance_token_url": "http://www.btcguild.com/my_api.php",
            "balance_host": "www.btcguild.com",
            "balance_url": "/api.php?api_key=%s"            
        },

        {   "name": "BTC Guild (California, USA)",
            "host": "uswest.btcguild.com",
            "url": "http://www.btcguild.com",
            "port": 8332,
            "balance_token_url": "http://www.btcguild.com/my_api.php",
            "balance_host": "www.btcguild.com",
            "balance_url": "/api.php?api_key=%s"            
        },

        {   "name": "BTC Guild (United Kingdom)",
            "host": "uk.btcguild.com",
            "url": "http://www.btcguild.com",
            "port": 8332,
            "balance_token_url": "http://www.btcguild.com/my_api.php",
            "balance_host": "www.btcguild.com",
            "balance_url": "/api.php?api_key=%s"            
        },

        {   "name": "BTC Guild (The Netherlands)",
            "host": "nl.btcguild.com",
            "url": "http://www.btcguild.com",
            "port": 8332,
            "balance_token_url": "http://www.btcguild.com/my_api.php",
            "balance_host": "www.btcguild.com",
            "balance_url": "/api.php?api_key=%s"            
        },

Also, BitPenny is closed indefinitely, so it should be removed IMHO.

Missing logo?

When starting the GUI, I get a modal error:

"can't open file 'logo.ico' (error 2: No such file or directory)

I am sure it's there, the logo file, just not sure why I get the error. In addition, the system tray con is a blank white square. I assume that is due to the offending file.

Slow performance with 701

I updated the software from 614 to 701 and my speeds fell from 32 and 30 to 24 and 22. I deleted 701 and reinstalled 614 and now my speed is back to 32 and 30.

Looking for a hard-coded path config-file

I've remapped my appdata folder location, and when I try to start guiminner.exe I'm getting the error:

No such file or directory: 'C:\Users{me}\AppData\Roaming\Bitcoin\bitcoin.conf'

which is no longer where my AppData (and thus bitcoin.conf file) is located.

Can you use the %APPDATA% env variable instead?

Also, I often run a portable version of bitcoin-qt.exe where I specify yet another location for my bitcoin.conf file.

Would it be (or is it already?) possible to set the bitcoin.conf file location in an .ini file?

no GPU device

*** CAL version mismatch:
This OpenCL build requires version 1.4.879, version 1.4.635 installed.
Aborting.
No device specified or device not found, use -d to specify one of the following

[0] Intel(R) Core(TM) i3 CPU M 370 @ 2.40GHz



i'm installed latest software, but ... there is no GPU

[hardware]
device: Sony VAIO VPCEA3S1R
video: ATI Mobility Radeon HD 5650
os: Windows 7 x86_64

[drivers]
latest video driver:
Graphics Driver (ATI) - 8.723.8.2 64 bits 229.12 MB 19/11/2010
http://www.sony.ru/product/vn-e-series/vpcea3s1r-w

latest OpenCL driver:
AMD APP SDK v2.4 with OpenCL™ 1.1
http://developer.amd.com/sdks/AMDAPPSDK/downloads/Pages/default.aspx

long poll IO error Traceback

eu.eclipsemc.com:8337 13/04/2013 16:30:31, long poll IO error
Traceback (most recent call last):
File "GetworkSource.pyo", line 198, in long_poll_thread
File "GetworkSource.pyo", line 106, in request
File "GetworkSource.pyo", line 144, in timeout_response
File "httplib.pyo", line 1018, in getresponse
ResponseNotReady
eu.eclipsemc.com:8337 13/04/2013 16:30:31, LP connected to eu.eclipsemc.com:8337

Sadly I have no idea why this happens, just that it does. There appears to be recovery when this error occurs when running poclbm in DOS console, not sure if it will have other issues with the guiminer parser.

Slower performance with 6/14

Updated from 6/9 release and I lost nearly 80Mhash/s with OpenCL miner (HD5870 and -v -w128 -f60 flags). Normally get ~390Mhash/s, Im down near 310Mhash/s now. I re-did all settings and resetup from scratch, no change.

Tracebacks when network connection lost

eu.eclipsemc.com:8337 13/04/2013 17:12:17, long poll IO error [Errno 10061] No connection could be made because the target machine actively refused it
Traceback (most recent call last):
File "GetworkSource.pyo", line 198, in long_poll_thread
File "GetworkSource.pyo", line 105, in request
File "httplib.pyo", line 958, in request
File "httplib.pyo", line 992, in _send_request
File "httplib.pyo", line 954, in endheaders
File "httplib.pyo", line 814, in _send_output
File "httplib.pyo", line 776, in send
File "httplib.pyo", line 757, in connect
File "socket.pyo", line 571, in create_connection
error: [Errno 10061] No connection could be made because the target machine actively refused it

This is repeated over and over when a network connection is lost. Maybe poclbm should start (and notify about) an exponential backoff rather than just continuing to spam the logs every ~3s when connection is lost?

virus in guiminer-20110701.exe!

There is a virus reported by Avira in guiminer\miners\ufasoft\bitcoin-miner.exe. And the file is really bigger than the newest official ufasoft\bitcoin-miner.exe. Please check it!!!

UnicodeEncodeError

Hi guys,

I noticed a Unicode Encode Error in guiminer. Iam just useing the newest Version (guiminer-20110824.exe).
What happened?
I entered my deepbit.net accountinformation and sayed "files->save". I also checked the "autostart"(checkbox) in the "summary" of this just entered new worker.
Then i closed the guiminer and want to start it again. The miner tries to load the saved settings and want to start automatically. The Problem is that i entered some strange ASCII codes for having a safe password. (containing i.e. #!?/_-ä)

Now?
I start the miner and get a error message: "error occured: see the logfile '***' for details"
here is the logfileentry:
Traceback (most recent call last):
File "guiminer.py", line 2283, in
File "guiminer.py", line 2274, in run
File "guiminer.py", line 1717, in init
File "guiminer.py", line 1942, in load_config
File "guiminer.py", line 955, in start_mining
File "subprocess.pyo", line 621, in init
File "subprocess.pyo", line 830, in _execute_child
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in position 154: ordinal not in range(128)

best regards, noone

False claims of "accepted shares"

I've tried running GUIminer on my custom pool that currently sends Getworks with Difficulty>1. Mining on it for a bit, I see GUIminer display notification of "1 accepted shares". Checking that claim against logs from Wireshark and console output of my pool, I can see that no data has been submitted along with the request. Only having mined more shares do valid Getwork results appear to be submitted. I'm guessing GUIminer claims any share with Difficulty 1 it finds to be both valid and automatically accepted by the pool, regardless of it even being sent to the pool for evaluation.

My computer freeze when stopping the miner

Hi,

When I stop the CUDA miner, my computer completly freeze and I cant do anything.

I can mouve the mouse cursor, CTRL-ALT-DELETE doesnt work, same for ALT-F4. I think that when I stop the miner, my Nvidia card simply crash and I have to restart my computer.

HTTPS omission

seems Slush's pool started mandating HTTPS for the API. Here's a potential fix?

from:
def requires_https(self, host):
"""Return True if the specified host requires HTTPs for balance update."""
return host == "mtred.com"

to:
def requires_https(self, host):
"""Return True if the specified host requires HTTPs for balance update."""
HOSTS_REQUIRING_HTTPS = ["mtred.com",
"api2.bitcoin.cz"]
if host in HOSTS_REQUIRING_HTTPS: return True
return False

Bear with me, I've got no experience with Python. Can't run it from source for some reason, attempting it gives me

Traceback (most recent call last):
File "D:\guiminer\guiminer.py", line 13, in
import sys, os, subprocess, errno, re, threading, logging, time, httplib, urllib
File "C:\Python27\lib\httplib.py", line 71, in
import socket
File "C:\Python27\lib\socket.py", line 47, in
import _socket
ImportError: DLL load failed: %1 is not a valid Win32 application.

and I can't quite figure out what I'm missing. Fresh installation of Python 2.7.2 and wxPython.

New Server Support

Hi Kiv,

I've tried to Fork your Guiminer to support my Server. Unfortunately I didn't get the compilation of the Pythonfiles to work properly.

Everytime I'm trying to start the Guiminer it says:

Traceback (most recent call last):
File "guiminer.py", line 14, in
ImportError: No module named wx

its the import wx directive in guiminer.py that my eclipse doesn't understand... I now have 3 different Python Versions. 2.6, 2.7 and 3.2 and tried to use wx-28-ansi and unicode. none of them worked fine... do you know, how to solve this problem?

Thanks in Advance

Best Regards

Boris

By the way the guiminer.py in my Fork is allready updated to support my server, so If the solution for my problem is to complicated I would be happy, if you merge our versions and do an update of your software, so that my pool's api can be used.

For future upcoming pools it might be very usefull to set the different window settings (like if there is an api support or a withdrawal service) in a extra config file, or even in the servers.ini, so that you don't have to change guiminer.py everytime a pooladmin needs to support his features.

Freezing computer push stop button @ GUIMiner v2012-12-03

If I want to stop the GUIMiner running rpcminer-cuda.exe on a Nvidia Quadro FX 880M the computer freezes forever. Only a restart would solve the problem. My current workaround for this problem is to shut down the wireless conection and wait 1-2 Minutes. After that the stop button stops the miner and the computer doesn`t freeze.

Long poll IO error timeout

eu.eclipsemc.com:8337 13/04/2013 16:27:53, long poll IO error timed out
Traceback (most recent call last):
File "GetworkSource.pyo", line 198, in long_poll_thread
File "GetworkSource.pyo", line 105, in request
File "httplib.pyo", line 958, in request
File "httplib.pyo", line 992, in _send_request
File "httplib.pyo", line 954, in endheaders
File "httplib.pyo", line 814, in _send_output
File "httplib.pyo", line 776, in send
File "httplib.pyo", line 757, in connect
File "socket.pyo", line 571, in create_connection
timeout: timed out
eu.eclipsemc.com:8337 13/04/2013 16:27:53, LP connected to eu.eclipsemc.com:8337

Sadly I have no idea why this happens, just that it does. There appears to be recovery when this error occurs when running poclbm in DOS console, not sure if it will have other issues with the guiminer parser.

A few things that may or may not help.

I am no way a strong python master, and I know nothing about OpenCL, but I did notice some things in the code that could "help" over wall.... I did notice a lot of:

if bla = "": or if bla != 0:
why not just do:
if bla:

I saw a lot of .sleeps commands... seems like a waste if the program is to run as fast as it can.

Also, I am guessing you did test, but how are you gaining anything from threading the code? Wouldn't the python GIL get in the way? I think you are better of writing some timer code if you are just wanting you sync the code in the matter that way it is all one big thread instead of smaller threads fighting for control.

Another option would to also coverent some python code using cython. I've seen hug jumps in speed when I did with in my own server (not a bitcoin miner).

Take what I said with a grand of surger xD Like I said, I'm no way a geru of python, and I haven't read all the code to understand how it all works yet. The code other wise seems clean.

New address for slush pool

It looks like there is a new address for slush to correct "connection" issues.

http://api2.bitcoin.cz:8332

It may be helpful to have the ability to change the address in the GUI. It seems like this pool changes its address regularly after DDOS attacks.

Thanks,
Ali

Guiminer working with trough a Proxy?

Hello Kiv,

first I well tell you you make a very good job...
I have a question for the guiminer...
can you make an option that the miner can connct trough a Proxy???

I have wahn to connet with clients (win XP) to a pool but i must connet with a proxy at work...
Thx an please give me a feedback...is that a parameter i must write in a config dat?

The miner is not starting a connetion....because the blockchain data is not connectet from me client Pc to the main server by the proxy 8080...

GiuMiner
GiuMiner_01

poclbm/guiminer halts processing

13/04/2013 16:33:33, started OpenCL miner on platform 0, device 0 (Cypress)
13/04/2013 16:33:33, Setting server (user @ eu.eclipsemc.com:8337)
eu.eclipsemc.com:8337 13/04/2013 16:33:33, checking for stratum...
eu.eclipsemc.com:8337 13/04/2013 16:33:38, no response to getwork, using as stratum
eu.eclipsemc.com:8337 13/04/2013 16:33:51, Failed to subscribe
eu.eclipsemc.com:8337 13/04/2013 16:33:53, IO errors - 1, tolerance 2

At this point poclbm just seems to hang, ctrl-c and running it again and the problem is gone but I seem to get this a fair bit and it may be the reason why guiminer just stops processing blocks for me frequently. Interestingly though poclbm on the command-line seems more stable, so maybe the hang issue is threading or subprocess buffer-related? My apologies for the somewhat mixed bug here :(

Put hash rate into log?

Is this possible (in current version) to see hash rate in log file? If now I would highly appreciated it - ex. to put new one value every 10 min. or so.

Because I would make a program to restart PC (or email notification) if hashrate is below some value or if it would become offline (or you can include it in GUIMiner - I can't help you as I don't know Python).

POCLBM fails

2013-03-12 09:14:41: "无标题" 监听器已启动: Traceback (most recent call last):
2013-03-12 09:14:41: "无标题" 监听器已启动: File "poclbm.py", line 104, in
2013-03-12 09:14:41: "无标题" 监听器已启动: NameError: name 'OpenCLMiner' is not defined

ValueError: need more than 1 value to unpack

Hi, im new to the mining scene, and have tried setting up GUIMiner, but when i click start mining i get this error:

ValueError: need more than 1 value to unpack

Any ideas?
I have an account and worker with slush's pool and as far as i know ive set everything up properly.

Thanks

EDIT

Ok i re-opened GUIMiner, and re-entered my details but now i am receiving these error messages in this order:

No JSON object could be decoded

Failed to subscribe

IO errors - 1, tolerance 2

Ufasoft - bitcoin-miner

Ufasoft no longer ships (0.39) with bitcoin-miner.exe / bitcoin-miner-64.exe, and instead uses coin-miner.exe

This means GUIMiner fails to start mining, as it relies on seeing 'bitcoin-miner' in the external path.

I temporarily got round this by renaming coin-miner.exe to bitcoin-miner.exe, but I think guiminer.py needs to be updated to reflect this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.