Author

Topic: bitHopper: Python Pool Hopper Proxy - page 111. (Read 355689 times)

legendary
Activity: 924
Merit: 1004
Firstbits: 1pirata
August 01, 2011, 08:09:55 AM
Quote
* Individual Miner Stats. Based on username

The lack individual miner tracking has been putting me off from using this hopper, now I see this feature, I have a few questions.

how are the user name determined? do you connect to localhost:8337 using any username and password?

thanks.

you can use bitcoin-mining-proxy in between miner and hopper proxy for that purpose
legendary
Activity: 924
Merit: 1004
Firstbits: 1pirata
August 01, 2011, 08:04:58 AM
...................................................................

Absolutely perfect! I would have never been able to figure that one out. Thanks.

I've created a fork on github. Everybody check out my new stats layout / color scheme. (I also changed and capitalized the pool names in the pool.cfg and user.cfg.default, so just replace those files if you don't want to deal with that.)

https://github.com/macboy80/bitHopper

EDIT: Just updated to comment out disabled pools in pool.cfg and user.cfg.default (Removes disabled pools from the stats) index.html should copy over to latest c00w build without any changes

make a pull request pls, would love to have that
full member
Activity: 121
Merit: 100
August 01, 2011, 07:26:48 AM
Quote
* Individual Miner Stats. Based on username

The lack individual miner tracking has been putting me off from using this hopper, now I see this feature, I have a few questions.

how are the user name determined? do you connect to localhost:8337 using any username and password?

thanks.
legendary
Activity: 2618
Merit: 1007
August 01, 2011, 06:49:06 AM
Added BTCPool24.com

Another new pool with prop and they even claim to also have instant pay 0% PPS.

They seem to charge a 0.01 transaction fee on payouts though... (never heard of "sendmany", eh?)
legendary
Activity: 1526
Merit: 1002
Waves | 3PHMaGNeTJfqFfD4xuctgKdoxLX188QM8na
hero member
Activity: 698
Merit: 500
August 01, 2011, 06:06:12 AM
PPS / Pushpool / 23Ghash

https://www.ninjacoin.com/

3% for PPS is unsustainable...
legendary
Activity: 1526
Merit: 1002
Waves | 3PHMaGNeTJfqFfD4xuctgKdoxLX188QM8na
August 01, 2011, 06:00:27 AM
PPS / Pushpool / 23Ghash

https://www.ninjacoin.com/
legendary
Activity: 2618
Merit: 1007
August 01, 2011, 04:17:58 AM
Anyways, I think backup_latehop is ready for merging. Pull request sent.

Next on the list: Nicer graphs.
Edit:
Nah, I hate javascript - scratch that!
full member
Activity: 196
Merit: 100
August 01, 2011, 04:07:26 AM
Tommorow I'll add an api_error and an api_delagger. should fix some of these problems.
legendary
Activity: 2618
Merit: 1007
August 01, 2011, 04:04:31 AM
Hm, only problem is if the response has an error from the beginning. Well, I'll undo my "fix" then in this place and make sure further above that you at least get an integer as share count... Wink
full member
Activity: 196
Merit: 100
August 01, 2011, 03:55:50 AM
Um that is because certain people wanted it to not be disabled on the first error. I bow to people who complain enough on issues which are minor.
legendary
Activity: 2618
Merit: 1007
August 01, 2011, 03:53:59 AM
I think I already found one weird spot:
Code:
        self.servers[pool]['err_api_count'] += 1
        if self.servers[pool]['err_api_count'] > 1:
^ this does nothing if the error count is just 1.

I rewrote it to set the share count to "difficulty" instead of 10**10 on errors, I doubt that this would have any adverse effects. Just look at my newest fork.
full member
Activity: 196
Merit: 100
August 01, 2011, 03:36:25 AM
@Sukrim
We don't want it to do api_disable or change the times because of network outages. Only for pool owners messing with us. Especially because there is no automated way to undo an api_disable. You have to do it manually with the website.
If you have a vision for how to clean up the api code send me a message or post it here or on github. My next project is cleaning up the LP code to cut down on rejects and to make it possible to hop without share scraping.

EDIT: On rereading you post I really need an api_error flag.
legendary
Activity: 2618
Merit: 1007
August 01, 2011, 03:33:20 AM
I'm currently fighting with "selectsharesResponse" in pool.py: if no (useful) response is given (like btcg currently...), it seems to still continue, even if it can't parse for example a certain json key. This however seems to discourage it THAT much, that it doesn't even try again unless you switch roles...

Should it put pools on "api_disable" in these cases?!

Edit:
My suggestion would be to set the share count at errors to the current difficulty. These 10**10 spikes (if there is a single error) can destroy the whole charts + are not really useful anyways. Actually they can cause mine_friendly and backup_latehop to jump to the wrong pool.
full member
Activity: 196
Merit: 100
August 01, 2011, 03:12:44 AM
Yeah I'm going to fix it so deleting it like that works though. I just need to check for existence of user and if it is not there delete it.
legendary
Activity: 2618
Merit: 1007
August 01, 2011, 03:04:39 AM
After update and restore all usenames passw (thank you foe over writing my pool.cfg Smiley

I get this:

Code:
[09:02:55] Updating Difficulty
[09:02:55] 1690895.8030524
[09:02:55] Updating NameCoin Difficulty
[09:02:56] 94037.96
Traceback (most recent call last):
  File "bitHopper.py", line 227, in
    bithopper_global = BitHopper()
  File "bitHopper.py", line 43, in __init__
    self.pool = pool.Pool(self)
  File "/blah/bitHopper/pool.py", line 45, in __init__
    self.servers[pool]['default_role'] = self.servers[pool]['role']
KeyError: 'role'
You did not set a role for every pool. Did you copy over user.cfg.default and edit it in there? If I jsut rename it to user.cfg it works, so...

And yeah, sorry about the overwriting stuff. I thought it would be obvious to the users anyways.

@c00w
I didn't code it that way that you can just delete pools in user.py - but if you for example check if the key "role" even exists before continuing after reading the config files, you can delete the obsolete pools from the dictionary.

I'm currently working on "backup_latehop" that hops to the backup_latehop pool with the most shares - useful for scored pools maybe (though the chances are actually the same of hitting a block, no matter how late the round is) and in any case a definite help for any backup pool, as people usually tend to leave (irrationally) on long rounds.
full member
Activity: 196
Merit: 100
August 01, 2011, 02:44:24 AM
@eskimo
It should work now.

deleting pools in user.py not deleting them in pool.py
It should. I'll look at it and see what I need to do to get it to work.

@macboy80
is your code in the public domain? I'd be glad to move it over to bitHopper when I have the time. Or a pull request would be awesome.
hero member
Activity: 658
Merit: 500
August 01, 2011, 02:27:16 AM
After update and restore all usenames passw (thank you foe over writing my pool.cfg Smiley

I get this:

Code:
[09:02:55] Updating Difficulty
[09:02:55] 1690895.8030524
[09:02:55] Updating NameCoin Difficulty
[09:02:56] 94037.96
Traceback (most recent call last):
  File "bitHopper.py", line 227, in
    bithopper_global = BitHopper()
  File "bitHopper.py", line 43, in __init__
    self.pool = pool.Pool(self)
  File "/blah/bitHopper/pool.py", line 45, in __init__
    self.servers[pool]['default_role'] = self.servers[pool]['role']
KeyError: 'role'
you made a mistake in user.cfg
legendary
Activity: 910
Merit: 1000
Quality Printing Services by Federal Reserve Bank
August 01, 2011, 02:09:41 AM
After update and restore all usenames passw (thank you foe over writing my pool.cfg Smiley

I get this:

Code:
[09:02:55] Updating Difficulty
[09:02:55] 1690895.8030524
[09:02:55] Updating NameCoin Difficulty
[09:02:56] 94037.96
Traceback (most recent call last):
  File "bitHopper.py", line 227, in
    bithopper_global = BitHopper()
  File "bitHopper.py", line 43, in __init__
    self.pool = pool.Pool(self)
  File "/blah/bitHopper/pool.py", line 45, in __init__
    self.servers[pool]['default_role'] = self.servers[pool]['role']
KeyError: 'role'
member
Activity: 102
Merit: 10
August 01, 2011, 01:52:25 AM
can anyone help with getting the getColor function to work for the remaining uncolored text? Let me know, and I'll create a fork.

I'll take a look.

Edit:

Ok for the payout color replace line 151 in index.html with

Code:

And for the role color replace line 108 of index.html with

Code:
var role = "" + srv["role"] + "";

Hope this helps. Smiley

Absolutely perfect! I would have never been able to figure that one out. Thanks.

I've created a fork on github. Everybody check out my new stats layout / color scheme. (I also changed and capitalized the pool names in the pool.cfg and user.cfg.default, so just replace those files if you don't want to deal with that.)

https://github.com/macboy80/bitHopper

EDIT: Just updated to comment out disabled pools in pool.cfg and user.cfg.default (Removes disabled pools from the stats) index.html should copy over to latest c00w build without any changes
Jump to: