Author

Topic: bitHopper: Python Pool Hopper Proxy - page 189. (Read 355816 times)

sr. member
Activity: 302
Merit: 250
July 16, 2011, 01:51:23 PM
now that nofeemining.com are no longer protecting their stats with a captcha, i decided to add them (i added and defined nofee_user_apikey in passwords.py):

Code:
      'nofee':{'shares': default_shares, 'name': 'nofee',
           'mine_address': 'nofeemining.com:8332', 'user': nofee_user,
           'pass': nofee_pass, 'lag': False, 'LP': None,
           'api_address':'https://www.nofeemining.com/api.php?key=' + nofee_user_apikey, 'role':'mine'}
...

def nofee_sharesResponse(response):
    global servers
    info = json.loads(response)
    round_shares = int(info['poolRoundShares'])
    servers['nofee']['shares'] = round_shares
    bitHopper.log_msg('nofee:' + FormatShares(round_shares))

...

'nofee':nofee_sharesResponse,

but i get the following error:


Code:
"[Failure instance: Traceback: : No JSON object could be decoded\n/usr/lib/python2.6/dist-packages/twisted/internet/defer.py:1076:gotResult\n/usr/lib/python2.6/dist-packages/twisted/internet/defer.py:1063:_inlineCallbacks\n/usr/lib/python2.6/dist-packages/twisted/internet/defer.py:361:callback\n/usr/lib/python2.6/dist-packages/twisted/internet/defer.py:455:_startRunCallbacks\n---  ---\n/usr/lib/python2.6/dist-packages/twisted/internet/defer.py:542:_runCallbacks\n/home/user/bitHopper/pool.py:195:selectsharesResponse\n/home/user/bitHopper/pool.py:169:nofee_sharesResponse\n/usr/lib/python2.6/json/__init__.py:307:loads\n/usr/lib/python2.6/json/decoder.py:319:decode\n/usr/lib/python2.6/json/decoder.py:338:raw_decode\n]"

the api definitely works from curl and wget, and the identifier is 'poolRoundShares'.

no fee mining is a prop pool that proudly proclaim on their website :"no pool hopping protection" !  they want us bad. i like being wanted. So any ideas on a fix?

I'm having the same issues, have you figured this out? Ive on NFM for a while and it looks and sounds decent. If you hit up  https://www.nofeemining.com/api.php you get the pool stats, no API key required. What does No JSON object could be decoded mean? It seems like there is a poolRoundShares item in the response.
member
Activity: 111
Merit: 10
July 16, 2011, 12:45:07 PM
request
can you add the option to put 2/3/4 workers per pool in pwds.py

You could just run more bitHoppers on different ports. How would it know which client is which worker?
legendary
Activity: 1428
Merit: 1000
July 16, 2011, 11:27:09 AM
why kickout python 2.6?
for me this version works...(debian)
legendary
Activity: 1428
Merit: 1000
July 16, 2011, 11:15:58 AM
i made a small linux-vm for this purpose.
works well Smiley

(i used debian which is a little tricky when it comes to python 2.6; you could try latest ubuntu)
member
Activity: 84
Merit: 10
July 16, 2011, 11:15:20 AM
C:\c00w-bitHopper-50ab019>bitHopper.py
Traceback (most recent call last):
  File "C:\c00w-bitHopper-50ab019\bitHopper.py", line 7, in
    import work
  File "C:\c00w-bitHopper-50ab019\work.py", line 12, in
    from bitHopper import *
  File "C:\c00w-bitHopper-50ab019\bitHopper.py", line 16, in
    import lp
  File "C:\c00w-bitHopper-50ab019\lp.py", line 11, in
    from twisted.internet import reactor, defer
  File "C:\Python27\lib\site-packages\twisted\internet\reactor.py", line 37, in

    from twisted.internet import selectreactor
  File "C:\Python27\lib\site-packages\twisted\internet\selectreactor.py", line 1
7, in
    from zope.interface import implements
ImportError: No module named zope.interface


C:\c00w-bitHopper-50ab019>

I had python installed already, I installed twisted.. that didn't work.  I installed zope.interface by putting it in "C:\Python27\Lib\site-packages" directory...

I am still getting this damn error.  What is the problem and why won't this damn zope.interface install correctly on Win7?

Thank you and please help me.

Are you placing the .egg file in that directory?  Thats what I did and I got the same error.  You have to unzip the .egg file and place the contents in that directory, then it works perfectly.  Just open it up with winrar or whatever you use to extract things.
member
Activity: 84
Merit: 10
July 16, 2011, 11:12:56 AM
C:\c00w-bitHopper-50ab019>bitHopper.py
Traceback (most recent call last):
  File "C:\c00w-bitHopper-50ab019\bitHopper.py", line 7, in
    import work
  File "C:\c00w-bitHopper-50ab019\work.py", line 12, in
    from bitHopper import *
  File "C:\c00w-bitHopper-50ab019\bitHopper.py", line 16, in
    import lp
  File "C:\c00w-bitHopper-50ab019\lp.py", line 11, in
    from twisted.internet import reactor, defer
  File "C:\Python27\lib\site-packages\twisted\internet\reactor.py", line 37, in

    from twisted.internet import selectreactor
  File "C:\Python27\lib\site-packages\twisted\internet\selectreactor.py", line 1
7, in
   from zope.interface import implements
ImportError: No module named zope.interface


C:\c00w-bitHopper-50ab019>

I had python installed already, I installed twisted.. that didn't work.  I installed zope.interface by putting it in "C:\Python27\Lib\site-packages" directory...

I am still getting this damn error.  What is the problem and why won't this damn zope.interface install correctly on Win7?

Thank you and please help me.

***____________________________________***

How I got it working.. I downloaded easy install from here http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11.win32-py2.7.exe#md5=57e1e64f6b7c7f1d2eddfc9746bbaf20

Then i put the .egg file from http://pypi.python.org/pypi/zope.interface#download

in the "C:\Python27\Scripts" directory

Then I went to a cmd and went into the "C:\Python27\Scripts" directory and typed  "easy_install.exe zope.interface-3.6.4-py2.7-win32.egg"

And I could run the stuff.

member
Activity: 84
Merit: 10
July 16, 2011, 10:28:11 AM
Quote
Is there a way to simply re-enable bitcoins.lc?

I would look to see how he handled the multiclone situation before re-enabling.

He banned multiclone but decided to keep their coins they generated.

after outcry, he relented but the guy comes off as a real douche.

I can see being annoyed with hoppers, and dont have a problem with the banning, but taking the coins and being a dick about it was wrong.

I dont care if you hop him, just think you should know the kinda guy he is, and just know unlike multiclone, if he bans you and steals your coin, it is hard to have an outcry with only one individual.

I know.  I just feel that the chances of getting banned are slim to none.  he banned multiclone because one account had thousands of connections every second and it was harming the pool.  bithopper doesnt work like that.

On a separate note, what is a better implementation of bithopper.  Running a separate bithopper instance on each machine I am mining in or pointing all my miners on various rigs to one machine running bithopper on my network?
sr. member
Activity: 476
Merit: 250
moOo
July 16, 2011, 09:51:14 AM
Quote
Is there a way to simply re-enable bitcoins.lc?

I would look to see how he handled the multiclone situation before re-enabling.

He banned multiclone but decided to keep their coins they generated.

after outcry, he relented but the guy comes off as a real douche.

I can see being annoyed with hoppers, and dont have a problem with the banning, but taking the coins and being a dick about it was wrong.

I dont care if you hop him, just think you should know the kinda guy he is, and just know unlike multiclone, if he bans you and steals your coin, it is hard to have an outcry with only one individual.
donator
Activity: 2058
Merit: 1007
Poor impulse control.
July 16, 2011, 08:43:00 AM
100Ghps seems correct. Bitpit seems to have extra 100Ghps at the start of last round:
http://mksv.ath.cx/bit/graph.php?node=XS1YWGD4UA



Deepbit's variation is an easy 100Ghps, although it's hard to tell if it coincides with rounds:
http://mksv.ath.cx/bit/graph.php?node=2AC1BVST4N



Arsbitcoin seems to have reverse hopping - where everyone goes into hopping limbo:
http://mksv.ath.cx/bit/graph.php?node=29MPXJT6WF




Anyone with hopping strategies in place (eg multipool) would be adding to this, not just us. We're not even doing deepbit yet.

member
Activity: 66
Merit: 10
July 16, 2011, 08:16:50 AM
Why is it though that Mt. Red has 100 Mhash jumps, while others only get ~10 Mhash jumps?
I'd guess it's not all us. There must be lots of people out there hopping Mt. Red.
bb
member
Activity: 84
Merit: 10
July 16, 2011, 07:52:02 AM
I dont think I need to comment - except ... been 'hopped much, Mt Red?



(thanks to mperth's stats at http://mksv.ath.cx/bit/stats.php)

Why is it though that Mt. Red has 100 Mhash jumps, while others only get ~10 Mhash jumps?
donator
Activity: 2058
Merit: 1007
Poor impulse control.
July 16, 2011, 07:24:22 AM
Interestingly, the 'cheater function' shows that even hopping at = has a 22% increase in effective hashrate (and thus coinage), which is better than eligius/arsbitcoin at 0% increase. So I it seems like it might pay have the jump off proportion of difficulty at 1.0 instead of 0.4

burp mentioned it earlier in the thread, be interesting to see if anyone tried it.

tl;dr change the hop shares from 0.4*diff to 1.0*diff
donator
Activity: 2058
Merit: 1007
Poor impulse control.
July 16, 2011, 06:36:07 AM
Efficiency update, calculated from the website data (only using bitHopper, all same difficulty):

bitcoins-lc: 67.9%
btc guild: 181.0%
eclipse: 146.5%
Mt Red: 181.7%
 
for a total earnings increase of 158.7%
donator
Activity: 2058
Merit: 1007
Poor impulse control.
July 16, 2011, 06:28:56 AM
Is there a way to simply re-enable bitcoins.lc?

In pools.py, change the last part of

Code:
  'bclc':{'shares':default_shares, 'name':'bitcoins.lc', 
            'mine_address':'bitcoins.lc:8080', 'user':bclc_user, 'pass':bclc_pass,
            'lag':False, 'LP':None,
            'api_address':'https://www.bitcoins.lc/stats.json', 'role':'info' },

to
 
Code:
                                                                 'role':'mine' },
                       
member
Activity: 84
Merit: 10
July 16, 2011, 05:55:01 AM
Is there a way to simply re-enable bitcoins.lc?
full member
Activity: 196
Merit: 100
July 16, 2011, 01:03:48 AM
1) Code already updated?
I'm a beast! In reality I run the software the same as you guys. Global issues get fixed quickly. Non global issues get fixed when someone tells me about them.

2) Update on progress with regards to stats?
So I know what I have to do. And I know how to do it. But all of tomorrow is busy. I'll see If I can knock it out on sunday. I'll need to rewrite everything again though in a less dramatic fashion. And I already figured out the system. I'm not going to automate pulling payouts from wallets though so if you want accurate stats you are going to have to tell the system when you get payouts from most pools. Some like btcguild have enough data in the API. Most don't.
hero member
Activity: 556
Merit: 500
July 15, 2011, 08:36:30 PM
Wow code update already on github, "Updated eclipse mc to not be hopped and added a default difficulty if calls fail"
hero member
Activity: 556
Merit: 500
July 15, 2011, 07:54:38 PM
blockexplorer is having issues getting the current difficulty, what I did to fix was change the code in diff.py like so:

Code:
#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.

import urllib2

def get_difficulty():
   # req = urllib2.Request('http://blockexplorer.com/q/getdifficulty')
   # response = urllib2.urlopen(req)
   # diff_string = response.read()
    diff_string = "1564057"
    return float(diff_string)

difficulty = get_difficulty()

this just hard codes the difficulty in the meantime.
full member
Activity: 157
Merit: 101
July 15, 2011, 06:59:41 PM
Same here

What I am doing wrong?

Code:
root@linuxcoin:/opt/miners/phoenix/bithopper# sudo python bitHopper.py
Traceback (most recent call last):
  File "bitHopper.py", line 7, in
    import work
  File "/opt/miners/phoenix/bithopper/work.py", line 12, in
    from bitHopper import *
  File "/opt/miners/phoenix/bithopper/bitHopper.py", line 8, in
    import diff
  File "/opt/miners/phoenix/bithopper/diff.py", line 13, in
    difficulty = get_difficulty()
  File "/opt/miners/phoenix/bithopper/diff.py", line 9, in get_difficulty
    response = urllib2.urlopen(req)
  File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.6/urllib2.py", line 397, in open
    response = meth(req, response)
  File "/usr/lib/python2.6/urllib2.py", line 510, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.6/urllib2.py", line 435, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.6/urllib2.py", line 518, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 503: Service Unavailable
newbie
Activity: 55
Merit: 0
July 15, 2011, 06:56:33 PM
What I am doing wrong?

Code:
root@linuxcoin:/opt/miners/phoenix/bithopper# sudo python bitHopper.py
Traceback (most recent call last):
  File "bitHopper.py", line 7, in
    import work
  File "/opt/miners/phoenix/bithopper/work.py", line 12, in
    from bitHopper import *
  File "/opt/miners/phoenix/bithopper/bitHopper.py", line 8, in
    import diff
  File "/opt/miners/phoenix/bithopper/diff.py", line 13, in
    difficulty = get_difficulty()
  File "/opt/miners/phoenix/bithopper/diff.py", line 9, in get_difficulty
    response = urllib2.urlopen(req)
  File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.6/urllib2.py", line 397, in open
    response = meth(req, response)
  File "/usr/lib/python2.6/urllib2.py", line 510, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.6/urllib2.py", line 435, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.6/urllib2.py", line 518, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 503: Service Unavailable
Jump to: