c00w (OP)
|
|
July 10, 2011, 06:12:52 AM |
|
Good catch. I'm fixing it.
|
1HEmzeuVEKxBQkEenysV1yM8oAddQ4o2TX
|
|
|
burp
Member
Offline
Activity: 98
Merit: 10
|
|
July 10, 2011, 10:48:15 AM |
|
What about using the backup pool (eligius) first when every other pool has reached <difficulty> number of shares? From that point on the maxpps system from eligius will be more beneficial than mining on the other pools with shares>difficulty.
|
|
|
|
organofcorti
Donator
Legendary
Offline
Activity: 2058
Merit: 1007
Poor impulse control.
|
|
July 10, 2011, 10:58:51 AM |
|
What about using the backup pool (eligius) first when every other pool has reached <difficulty> number of shares? From that point on the maxpps system from eligius will be more beneficial than mining on the other pools with shares>difficulty.
doesn't it already? I thought I saw mention of it in the code, and bithopper does default to eligius if all pools have shares over six hundred and something thousand. Or I could be wrong.
|
|
|
|
burp
Member
Offline
Activity: 98
Merit: 10
|
|
July 10, 2011, 11:10:04 AM |
|
What about using the backup pool (eligius) first when every other pool has reached <difficulty> number of shares? From that point on the maxpps system from eligius will be more beneficial than mining on the other pools with shares>difficulty.
doesn't it already? I thought I saw mention of it in the code, and bithopper does default to eligius if all pools have shares over six hundred and something thousand. Or I could be wrong. Yes, over 0.4*difficulty. But I mean this should probably be difficulty. An other issue is that you added api_addresses into the servers configuration now and use getPage for all of these now. I think this removes a lot of flexibility. Think for instance of a pool that publishes its statistics only in logged in state where some additional handling is required. I just wanted to add triplemining.com to my bitHopper and saw that now it's basically not possible anymore without reverting some stuff back to gain more flexibility. For triplemining.com I have to login and parse a html page to get the statistics. This is what I meant earlier with generalizations that complicate things
|
|
|
|
organofcorti
Donator
Legendary
Offline
Activity: 2058
Merit: 1007
Poor impulse control.
|
|
July 10, 2011, 11:29:28 AM |
|
Yes, over 0.4*difficulty. But I mean this should probably be difficulty.
I'd say this relates to a paper written by a forum member, Raoulo, described and linked to here: http://forum.bitcoin.org/index.php?topic=3165.0
|
|
|
|
burp
Member
Offline
Activity: 98
Merit: 10
|
|
July 10, 2011, 11:34:12 AM |
|
That is not what I mean. I know that it's optimal to switch after 0.435*difficulty. But only if you have a better pool then. Switching to eligius when you are over 0.4*difficulty but below difficulty is imo worse than staying at the proportional pools until difficulty is reached.
|
|
|
|
organofcorti
Donator
Legendary
Offline
Activity: 2058
Merit: 1007
Poor impulse control.
|
|
July 10, 2011, 12:02:56 PM Last edit: July 10, 2011, 12:18:32 PM by organofcorti |
|
Gotcha - you mean at from 0.435 * <difficulty> to <difficulty> proportional will pay better than eligius but after <difficulty> shares proportional should pay less than eligius? After re-reading Raulo's paper I realise Raulo was only considering one proportional and one 'connected' only pool, and after reading this: http://forum.bitcoin.org/index.php?topic=24966.0 I'd have to agree with you. This is not based on math though, just what seems logical. Could be wrong. Changing at <difficulty> would have the side benefit of disguising you from looking like the typical hopper who uses the 0.435*<difficulty> rule. Edit: I suppose you could make the change and then run it for a week or so and see if there's a difference. Need an easy way to get stats though.
|
|
|
|
burp
Member
Offline
Activity: 98
Merit: 10
|
|
July 10, 2011, 04:22:05 PM |
|
Another fix: @@ -241,7 +241,7 @@ def update_servers(): info = servers[server] d = getPage(info['api_address']) d.addCallback(selectsharesResponse, (server)) - d.addErrback(errsharesResponse, ('btcg')) + d.addErrback(errsharesResponse, (server)) d.addErrback(log_msg) And the recommended new btcguild server address is just us.btcguild.com.
|
|
|
|
enmaku
|
|
July 10, 2011, 05:00:16 PM |
|
Pointed a couple of my miners at a test setup last night, and so far they're performing about 20% over calculated estimates from hashrate alone. I think I'll be rolling out a full-scale setup very soon
|
|
|
|
c00w (OP)
|
|
July 10, 2011, 06:08:09 PM |
|
1) Burf good catch with the error call back. I'll fix it soon.
2) Defaulting to eligius at over difficulty instead of .40*difficulty? Hmmm. Let me think about it. We are using eligius as our 'solo' mining pool because the payouts are roughly consistent mathematically with what solo mining should be. And the sweet spot for switching from a single pool is .435%
3) I figured out why diablo and cgminer are broken! They completely ignore how long polling is supposed to work and use a post instead of a get. I'm fixing it now.
|
1HEmzeuVEKxBQkEenysV1yM8oAddQ4o2TX
|
|
|
ahitman
|
|
July 10, 2011, 08:13:27 PM |
|
Unhandled error in Deferred: Unhandled Error Traceback (most recent call last): File "pool.py", line 195, in server_update select_best_server() File "pool.py", line 171, in select_best_server new_server.callback(None) File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 361, in callback self._startRunCallbacks(result) File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 455, in _startRunCallbacks self._runCallbacks() --- <exception caught here> --- File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 542, in _runCallbacks current.result = callback(current.result, *args, **kw) File "pool.py", line 336, in bitHopperLP json_request = request.content.read() exceptions.ValueError: I/O operation on closed file I got this error, is there something wrong with my setup? It doesnt come up all the time, and it may have happened as bithopper decided to switch pools. Also when I got home today my miners were sitting idle, but they didnt show a disconnected message, just that they had no work, ,looking back at the log from bithopper, looks like it was still getting the api data from pools, but was also showing the message: Error in pool api for btcg multiple times, unfortunatley the RPC request log line I commented out to not show the work units so Im not sure if it was trying to connect or not. Do you know what could have happened? I know its not alot of info, so is there a way if something sismilar happens again that I can investigate what bithopper is trying to do? Thanks
|
|
|
|
c00w (OP)
|
|
July 10, 2011, 08:45:10 PM Last edit: July 10, 2011, 09:45:33 PM by c00w |
|
1) Json decoding error with eligius looping? It looks like eligius doesn't like us hammering it with getwork requests in the case of one failure. I think its some sort of DDOS proctection. I'll throw in another backup pool for it to swap between.
2) IO Operation on a closed file It looks like someone connected with LP and then died before it could read. Not a huge issue. I'll wrap it in a try except.
3) Why it probably died? Same issue as the JSON decoding error with eligius looping. I need to add another backup pool so that if one dies/decides we are DDOSing it we can still do stuff. Edit: I couldn't find another pool with pool hopper protection that works except btcmine. And well... registration is down. I did redo the networking code to hopefully be a little nicer to eligius and convince it to not DDOS flake out on us as much.
|
1HEmzeuVEKxBQkEenysV1yM8oAddQ4o2TX
|
|
|
enmaku
|
|
July 11, 2011, 02:36:34 AM |
|
This thing is FANTASTIC. If this is beta I can't wait to see a gold release I also can't wait for some stats.
|
|
|
|
c00w (OP)
|
|
July 11, 2011, 07:31:43 AM |
|
1) Stats? Yeah. I'm trying to make it rock solid and get LP to work. If I get that the reject rate may actually be 0% which is cool. A lot of miners just drop shares after a connection failure or are just written oddly/ ignore standards. Then stats. Then scraper for all the pools that aren't deepbit. Then deepBit.
*rant* Miners I have found issues with: poclbm: Drops connection way to quickly. phoenix: Drops shares on a network failure. *I haven't confirmed this but it looks like it* Diablominer + cgminer: Uses get instead of post for longpolling. Completely ignoring the standard. And it was an obscure bug to find. Edit: I bet they all have the same issue as phoenix. But I don't use them enough to notice. *end rant*
2)Deepbit support? Yeah that sounds like the way to do it. I also want to look at how the multipool guy did it and build in a share estimator given scraped hash information to know when to switch off.
|
1HEmzeuVEKxBQkEenysV1yM8oAddQ4o2TX
|
|
|
organofcorti
Donator
Legendary
Offline
Activity: 2058
Merit: 1007
Poor impulse control.
|
|
July 11, 2011, 07:47:03 AM |
|
for deepbit support i got a little idea deepbit dont offer live stats but if we can see when all the other pools got a block we can guess if deepbit did or did not get a block(if not other pool get a new block then there is a big % to be deepbit) That's a great idea - I never figured out how multipool did it. Downside is there are a shit tonne of pools to check these days.
|
|
|
|
GoMaD
Member
Offline
Activity: 74
Merit: 15
|
|
July 11, 2011, 08:03:03 AM |
|
eclipsemc.com support (change USER, PASS and YOURAPIKEY) mineco_pass = 'x +eclipsemc_user = 'USER' +eclipsemc_pass = 'PASS'
'api_address':'https://bitclockers.com/api'}, + 'eclipsemc':{'shares': 0, 'name': 'eclipsemc.com', + 'mine_address': 'pacrim.eclipsemc.com:8337', 'user': eclipsemc_user, + 'pass': eclipsemc_pass, 'lag': False, 'LP': None, + 'api_address':'https://eclipsemc.com/api.php?key=YOURAPIKEY&action=poolstats'} }
log_msg( 'bitclockers :' + str(round_shares))
+def eclipsemc_sharesResponse(response): + global servers + info = json.loads(response) + round_shares = int(info['round_shares']) + servers['eclipsemc']['shares'] = round_shares + log_msg( 'eclipsemc :' + str(round_shares)) +
'btcg':btcguild_sharesResponse, + 'eclipsemc':eclipsemc_sharesResponse}
|
|
|
|
neptop
|
|
July 11, 2011, 08:43:10 AM |
|
I think it would be a good idea to include the configuration from another file. Maybe just create a bithopper.conf.example, so you don't overwrite an existing one when checking out. Also with more and more pools being added it would be good if it'd ignore non existent ones. Maybe they should also be removed from the main file so one can simply add additional pools by creating a files inside a pools/ directory. Oh and of course a --quiet and a --daemon switch would be nice additions.
|
BitCoin address: 1E25UJEbifEejpYh117APmjYSXdLiJUCAZ
|
|
|
GoMaD
Member
Offline
Activity: 74
Merit: 15
|
|
July 11, 2011, 09:15:58 AM Last edit: July 11, 2011, 09:28:11 AM by GoMaD |
|
I think it would be a good idea to include the configuration from another file. Maybe just create a bithopper.conf.example, so you don't overwrite an existing one when checking out. Also with more and more pools being added it would be good if it'd ignore non existent ones. Maybe they should also be removed from the main file so one can simply add additional pools by creating a files inside a pools/ directory. Oh and of course a --quiet and a --daemon switch would be nice additions.
that would be great! mining.mainframe.nl support (change USER, PASS): mineco_pass = 'x +miningmainframe_user = 'USER' +miningmainframe_pass = 'PASS'
'api_address':'https://eclipsemc.com/api.php?key=YOURAPIKEY&action=poolstats'} +'miningmainframe':{'shares': 0, 'name': 'mining.mainframe.nl', + 'mine_address': 'mining.mainframe.nl:8343', 'user': miningmainframe_user, + 'pass': miningmainframe_pass, 'lag': False, 'LP': None, + 'api_address':'http://mining.mainframe.nl/api'} }
log_msg( 'eclipsemc :' + str(round_shares))
+def mmf_sharesResponse(response): + global servers + info = json.loads(response) + round_shares = int(info['shares_this_round']) + servers['miningmainframe']['shares'] = round_shares + log_msg( 'mining.mainframe.nl :' + str(round_shares))
'eclipsemc':eclipsemc_sharesResponse, + 'miningmainframe':mmf_sharesResponse}
ups didn´t saw they use some kind of cheat-proof
|
|
|
|
GoMaD
Member
Offline
Activity: 74
Merit: 15
|
|
July 11, 2011, 10:11:57 AM |
|
slush support (change USER and PASS): mineco_pass = 'x +slush_user = 'USER' +slush_pass = 'PASS'
'api_address':'https://eclipsemc.com/api.php?key=YOURAPIKEY&action=poolstats'} +,'slush':{'shares': 0, 'name': 'mining.bitcoin.cz', + 'mine_address': 'api2.bitcoin.cz:8332', 'user': slush_user, + 'pass': slush_pass, 'lag': False, 'LP': None, + 'api_address':'https://mining.bitcoin.cz/stats/json/'} +def slush_sharesResponse(response): + global servers + info = json.loads(response) + round_shares = int(info['shares']) + servers['slush']['shares'] = round_shares + log_msg( 'mining.bitcoin.cz (slush)) :' + str(round_shares)) 'eclipsemc':eclipsemc_sharesResponse, + 'slush':slush_sharesResponse)
|
|
|
|
jkminkov
|
|
July 11, 2011, 10:13:42 AM |
|
why default pool is not deepbit PPS but eligius
|
.:31211457:. 100 dollars in one place talking - Dudes, hooray, Bitcoin against us just one, but we are growing in numbers!
|
|
|
|