Author

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

hero member
Activity: 504
Merit: 502
July 18, 2011, 05:05:37 AM
yeh so my settings do check out however api doesnt meh
nob
newbie
Activity: 23
Merit: 0
July 18, 2011, 05:04:40 AM
uhm.. pool.py is correct
hero member
Activity: 504
Merit: 502
July 18, 2011, 04:59:34 AM
yeh I did, but quite possibly in the wrong file, should it be in pool.py or bithopper.py ? I put it in pool.py.
nob
newbie
Activity: 23
Merit: 0
July 18, 2011, 04:45:35 AM
i just pasted the code mentioned above into pool.py and everything was fine.

Have you imported re ?
hero member
Activity: 504
Merit: 502
July 18, 2011, 04:40:13 AM
I removed that api part from password.py and still get triplemining api error.
hero member
Activity: 504
Merit: 502
July 18, 2011, 04:14:22 AM
The triplemining code worked except it spaz out api errors

I did add triplemining_user_apikey to password.py

...and why? I don't see this being used anywhere in the code!

hmmm good point Wink I got confused with the api inclusion in the first part of the code, my bad.
legendary
Activity: 2618
Merit: 1007
July 18, 2011, 04:10:22 AM
The triplemining code worked except it spaz out api errors

I did add triplemining_user_apikey to password.py

...and why? I don't see this being used anywhere in the code!
hero member
Activity: 504
Merit: 502
July 18, 2011, 04:05:37 AM
The triplemining code worked except it spaz out api errors

I did add triplemining_user_apikey to password.py
legendary
Activity: 2618
Merit: 1007
July 18, 2011, 04:01:39 AM
Wow, this really feels like we're on a war footing.

The difference being that every strategy session from the PoolHopper side of the war takes place in a public forum. A public forum that is likely monitored by the PoolOperator side of the war.
I don't want to pool hop forever. I want all pools to be as secure, reliable and open as possible. In the mean time, I get a little cut from hopping (as I don't get paid anything else anyways)

What I find important is to finally get rid of that broken beyond measurement payout scoring system that ONLY exists, because deepbit as one of the first pools (unknowingly that it can be exploited) implemented it and all the "sheep" started copying.

The reason why I write this stuff in public is to show that proportional pools are broken. Peroid. No matter what you do on pool side, you will always be able to be hopped and you will compromise your transparency and security by doing so. Without any reason at all.

If I rather wanted to profit, I would silently keep this to myself, start moaning that "hopping now has been countered effectively by delaying stats" and secretly just measure block announcements and hop on or even just sell that code/idea.
hero member
Activity: 504
Merit: 502
July 18, 2011, 03:37:18 AM
Can anyone comment on this ?

On a sidenote, I have a small problem with latest update(I think its related to that), if my connection drops while busy on ozco.in for instance, it goes to backup server and doesnt seem to return to proper server even while that server is
nob
newbie
Activity: 23
Merit: 0
July 18, 2011, 03:08:16 AM
Quote
Might need a few minor adjustments (the log function is now in a different file for example) though, but its easy enough to do I guess.


thanks Sukrim I think I got it working, would have never figured that out without your code

Quote
I tried it, couldn't get it to work. I'll try again tonight, and post errors if they occur.

I'm using flowers mod but here is the  code i used to get it working if it helps


Code:
import re

I almost missed that.. needs to be near the top chillin with the rest of the elitist import statements.

Code:
        'triplemining':{'shares': default_shares, 'name': 'triplemining.com',
           'mine_address': 'eu.triplemining.com:8344', 'user': triplemining_user,
           'pass': triplemining_pass, 'lag': False, 'LP': None,'slice':-1, 'slicedShares':0,
           'api_address':'https://www.triplemining.com/stats', 'role':'mine'},

you can cut out the slice stuff if using cows, just look at another one for example


Code:
def triplemining_sharesResponse(response):
    global servers
    statpage = response
    shares = re.search(r"[0-9]*", statpage).group(0)[4:-5]
    round_shares = int(shares)
    servers['triplemining']['shares'] = round_shares
    bitHopper.log_msg( 'triplemining :' + FormatShares(round_shares))


that had some minor adjustments Smiley


and of course

Code:
def selectsharesResponse(response, args):
    #bitHopper.log_dbg('Calling sharesResponse for '+ args)
    func_map= {'bitclockers':bitclockers_sharesResponse,
        'mtred':mtred_sharesResponse,
'nofee':nofee_sharesResponse,
'triplemining':triplemining_sharesResponse,
'ozco':ozco_sharesResponse,
        'bitp':bitp_sharesResponse}
    func_map[args](response)
    bitHopper.server_update()


and dont forget the password file

Thanks got it working
legendary
Activity: 1428
Merit: 1000
July 18, 2011, 02:58:33 AM
i think doing this publicity is the only way to go.
i dont want that only some people can hop.

everybody or nobody. (ok everybody means nobody too, as if everybody would do it ALL prop pools will die shortly)

so my goal ist: make the best hopper available. and publish it.
then prop-pools have two choices: still try to counter it (which will get them an endless story - they can't really win. at least the pool's isp or the pool owner itself always has the possibility to hop] or just go with another payout system)
hero member
Activity: 504
Merit: 502
July 18, 2011, 02:53:21 AM
Wow, this really feels like we're on a war footing.

The difference being that every strategy session from the PoolHopper side of the war takes place in a public forum. A public forum that is likely monitored by the PoolOperator side of the war.

Yeh this is turning out to be semi-counter productive lol

On a sidenote, I have a small problem with latest update(I think its related to that), if my connection drops while busy on ozco.in for instance, it goes to backup server and doesnt seem to return to proper server even while that server is
Im also getting this error with latest git version from time to time,

Code:
Caught, jsonrpc_call insides
'NoneType' object is not callable
donator
Activity: 2058
Merit: 1007
Poor impulse control.
July 18, 2011, 02:52:19 AM
Wow, this really feels like we're on a war footing.

The difference being that every strategy session from the PoolHopper side of the war takes place in a public forum. A public forum that is likely monitored by the PoolOperator side of the war.

 Grin

Well, we are trying to learn 'em. If they see as a group we can keep going as long as they proportionate (is that really a verb?) then - we win.
full member
Activity: 168
Merit: 100
July 18, 2011, 02:39:58 AM
Wow, this really feels like we're on a war footing.

The difference being that every strategy session from the PoolHopper side of the war takes place in a public forum. A public forum that is likely monitored by the PoolOperator side of the war.
sr. member
Activity: 476
Merit: 250
moOo
July 18, 2011, 02:38:44 AM
Quote
Might need a few minor adjustments (the log function is now in a different file for example) though, but its easy enough to do I guess.


thanks Sukrim I think I got it working, would have never figured that out without your code

Quote
I tried it, couldn't get it to work. I'll try again tonight, and post errors if they occur.

I'm using flowers mod but here is the  code i used to get it working if it helps


Code:
import re

I almost missed that.. needs to be near the top chillin with the rest of the elitist import statements.

Code:
        'triplemining':{'shares': default_shares, 'name': 'triplemining.com',
           'mine_address': 'eu.triplemining.com:8344', 'user': triplemining_user,
           'pass': triplemining_pass, 'lag': False, 'LP': None,'slice':-1, 'slicedShares':0,
           'api_address':'https://www.triplemining.com/stats', 'role':'mine'},

you can cut out the slice stuff if using cows, just look at another one for example


Code:
def triplemining_sharesResponse(response):
    global servers
    statpage = response
    shares = re.search(r"[0-9]*", statpage).group(0)[4:-5]
    round_shares = int(shares)
    servers['triplemining']['shares'] = round_shares
    bitHopper.log_msg( 'triplemining :' + FormatShares(round_shares))


that had some minor adjustments Smiley


and of course

Code:
def selectsharesResponse(response, args):
    #bitHopper.log_dbg('Calling sharesResponse for '+ args)
    func_map= {'bitclockers':bitclockers_sharesResponse,
        'mtred':mtred_sharesResponse,
'nofee':nofee_sharesResponse,
'triplemining':triplemining_sharesResponse,
'ozco':ozco_sharesResponse,
        'bitp':bitp_sharesResponse}
    func_map[args](response)
    bitHopper.server_update()


and dont forget the password file
full member
Activity: 168
Merit: 100
July 18, 2011, 02:38:00 AM
For bitp.it, cant we just read the Total code on the leaderboard? https://pool.bitp.it/leaderboard

It updates pretty fast.

Not for nothing but since the above, the Total has read: 270460 for me with no updates.
donator
Activity: 2058
Merit: 1007
Poor impulse control.
July 18, 2011, 02:35:04 AM
Quote
Triplemining is easy,

do you have the code handy for pools.py?

This thread is getting busy enough that hopping might need it's own sub category on this forum, so we can split pool talk from development talk.
http://forum.bitcoin.org/index.php?topic=26866.msg359540#msg359540

Might need a few minor adjustments (the log function is now in a different file for example) though, but its easy enough to do I guess.

I tried it, couldn't get it to work. I'll try again tonight, and post errors if they occur.
full member
Activity: 168
Merit: 100
July 18, 2011, 02:32:12 AM
latest release just scrolls through empty RPC request [[]] to ozco.in.

I've validated that password.py has the right info.
full member
Activity: 196
Merit: 100
July 18, 2011, 02:12:59 AM
1) bitp.it?
Total code is a good idea I'll code it up.
Oh and its disabled for now.

2) I'm going to rewrite the api to use a dynamic scaling function. I'll set it so if it scales to 10 minutes the server is disabled. That should stop all the api mucking about.

3) Future of bitHopper?
Well the plan was to hop until all the algorithms were good. Then to switch to a really nice backup pool program and stats table. Looks like nobody wants to change their algorithms and I need to crack out the regex and brains again.
Jump to: