A python based poolhopper for bitcoin
Python C
Pull request Compare This branch is 1606 commits behind c00w:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
StatSkin
eventlet
httplib20_7_1
plugins
webob
.gitignore
CODING_STYLE
POOLS_INFO
POOLS_INFO_ESP
README
README_esp
api.py
bh.cfg.default
bh.cfg.default_esp
bitHopper.py
data.py
database.py
diff.py
eventlet_LICENSE
getwork_store.py
index.html
irclib.py
lp.py
lp_callback.py
lpbot.py
plugin.py
pool.py
pools.cfg
run-bithopper.bat
scheduler.py
speed.py
user.cfg.default
user.cfg.default_esp
webob_LICENSE
website.py
work.py

README

# License

BitHopper by Colin Rice is licensed under a Creative Commons
Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Based on a work at github.com


# Ubuntu installation

In order to run bitHopper you need to have Python installed in your system. Version 2.7 of Python is suggested
although it has been tested and appears to work with version 2.6 too. To find out which version of Python your
system currently has type "python -V" to a shell console.

If you don't have Python installed at all you have to run:

sudo apt-get install python

After verifying that you have Python installed then you have to install some extra packages that bitHopper
requires to function properly:

sudo apt-get install python-dev python-setuptools
sudo easy_install greenlet
sudo easy_install importlib

If you would like to use the poclbm miner plugin do
sudo easy_install numpy

Tested and working in Ubuntu 11.04, 10.10 and 10.04 LTS


# Instructions for Windows users

ActiveState Python(recommended, use 32 bit even when you have 64 bit system)
http://downloads.activestate.com/ActivePython/releases/2.7.2.5/ActivePython-2.7.2.5-win32-x86.msi

Greenlet
http://pypi.python.org/pypi/greenlet

Although you can download greenlet from the original web site and compile the source manually this is
known to cause issues for lot of users. It is much easier to install greenlet automatically using Python
package manager that comes with ActiveState Python.

To do this you have to click:

Start -> All Programs -> ActiveState ActivePython 2.7(32-bit) -> Python Package Manager

Console will open up and to this console you have to type:

pypm install greenlet

After pypm has finished installing greenlet successully type "exit" and your bitHopper is all set. Although
using ActiveState Python's pypm should work 99% of the time there have been reports of people having issues
with using it. If this is the case you could also download greenlet package from:

http://www.lfd.uci.edu/~gohlke/pythonlibs/

Please be aware that these are unofficial Windows binaries for Python. It is always best to either download
greenlet source yourself and compile it or use pypm method. If you have no other way and you have to use
these unofficial binaries then greenlet-0.3.1.win32-py2.7.exe is the correct one to download. It will
extract itself into correct directory.


# Configuring user settings

BitHopper Stats page: http://localhost:8337/stats

Copy "user.cfg.default" to a new file called "user.cfg" then modify the new file to include your pool 
worker usernames and passwords. Repeat with "bh.cfg.default" and make sure default values work for you.
Run "python bitHopper.py" in *nix or in Windows you can double click on run-bithopper.bat. After script
updates info check if the pools have been added correctly to your stats page.

If any of the pools turns red or there is something else missing then edit your "user.cfg" accordingly.

If you don't want to use a pool delete it from "user.cfg" or go to Stats page and switch its role to
disable. BitHopper listens on loopback interface so you should direct your miner to localhost:8337
with any username and password (not blank).


# Switches

You can launch bitHopper with the following parameters (some get overwriten at runtime by the ones
you set-up in "bh.cfg"):

   --ip                  = IP to listen on
   --port                = Port to listen on
   --auth                = Ask for user and password on stats page (--auth user,pass)
   --config              = Select an alternate main config file from "bh.cfg"
   --listschedulers      = List alternate schedulers available
   --scheduler           = Select an alternate scheduler
   --threshold           = Override difficulty threshold (default 0.43)
   --p2pLP               = Starts up an IRC bot to validate LP based hopping
   --debug               = Extra error output. Basically print all caught errors
   --trace               = Extra debugging output
   --logconnections      = Show connection log


# Available Schedulers:

   OldDefaultScheduler

A none slicing scheduler. May actually be the best scheduler there is.

   DefaultScheduler

The time based default scheduler. All that matters is time and it tries to be completely fair across all
pools. A little less effective but thoroughly debugged.

   AltSliceScheduler

Tries to be more aggressive at switching pools when thresholds are met rather than finishing a slice. Can be
used with --altslicesize=xxx --altminslicesize=xxx (where you replace x with a number for slice size and min).
Also slice size can be used with --altslicejitter=xx which adds some random variance to slice size. There can
be issues with failing to re-slice often enough.

Specific parameters:

   --altslicesize            = Override Default AltSliceScheduler Slice Size of 900
   --altminslicesize         = Override Default Minimum Pool Slice Size of 60 (AltSliceScheduler only)
   --altslicejitter          = Add some random variance to slice size, disabled by default (AltSliceScheduler only)
   --altsliceroundtimebias   = Bias slicing slightly by round time duration with respect to round time target (default false)
   --altsliceroundtimetarget = Round time target based on GHash/s (default 1000 Ghash/s)
   --altsliceroundtimemagic  = Round time magic number, increase to bias towards round time over shares


   RoundTimeScheduler

Not currently in use.

   RoundTimeDynamicPenaltyScheduler

Not currently in use.


# Skins

You can change the color scheme on the status page. Skins and .jpg preview are located in the StatSkin sub directory.
Just rename your choice to index.html and copy to the main directory to change skin. (Current version requires you to restart bH)
Tested and working on the following browsers: Firefox 6 (Win 7; Android); Chrome 13 (Win 7)
Known issues with the following browsers: WebKit (Android 2.3.4); Internet Explorer 9 (Win 7)


# More help

You can go to https://github.com/c00w/bitHopper/wiki and start reading the bitHopper wiki or ask for help in the oficial forum
at https://bitcointalk.org/index.php?topic=26866. Join us on Freenode (http://webchat.freenode.net/) #bithopper channel.


# Donations

If you think this project is cool and you want more features added consider making a donation, anything counts ;)

 1HEmzeuVEKxBQkEenysV1yM8oAddQ4o2TX - c00w

 17wp2zfxZKeycWt6NKiueVYmYyrciiuq2t - ryouiki
 1CWjg4soWEAQjMD4dCchdPpJ6fWDBRUU5b - ed64
 15iS8iDqVCM2MF5ndaS3exR7Kw4LxFf2ra - hawks5999
 1QEBu4Tr7Qe6BMHdpeTmNDTPJhMqpDDtQ3 - paraipanakos
 13hP5QuFccLUZQDNxPwnfmn6q5RiV48TEn - macboy80
 1GgorPurRdDgsbPmoGEJm2WWGxKkJ8ktkf - sdogi

 All the people who contribute to this project - https://github.com/c00w/bitHopper/network/members

 flower1024, echiu64 (ed64), graphiclunarkid, elitak, Clipseza, littleant, bb-btc, gnaget, murfshake, Sukrim, gtrrkicw,
 swordv2, bitcoindaddy, rkozola, ryouiki, starlightbreaker, hawks5999, erasmo, pueytan, macboy80, sdogi, joulesbeef,
 Seoulboy1, paraipanakos, Swicher, lucita777