Bitcoin Forum
December 06, 2016, 10:15:39 AM *
News: Latest stable version of Bitcoin Core: 0.13.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: « 1 ... 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 [78] 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 ... 205 »
  Print  
Author Topic: bitHopper: Python Pool Hopper Proxy  (Read 332762 times)
licutis
Jr. Member
*
Offline Offline

Activity: 31


View Profile
July 29, 2011, 01:18:00 PM
 #1541

.

17JzeLUxFti9DXEVXUywP5XGngYm2TV38b
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1481019339
Hero Member
*
Offline Offline

Posts: 1481019339

View Profile Personal Message (Offline)

Ignore
1481019339
Reply with quote  #2

1481019339
Report to moderator
bb
Member
**
Offline Offline

Activity: 84


View Profile
July 29, 2011, 01:55:20 PM
 #1542

Sorry, proportional is the only fair mining method. A share is a share, no matter when it is submitted.
Why do you pay them differently then?

Anyways, at least you give a bit of challenge...

By the way, real pool DDoSing is done differently, but I won't give any hints here, because THAT would really hurt your pool I guess.

Paid differently? Not sure i follow, every share is worth the same. The other payout methods pay people differently....

Obviously its not a ddos, but it fits the definition spare the ill intent. Hence the quotes.

As a pool operator you should really have a better understanding of the probabilities involved in this.

In proportional payout structures, every share in one round is worth the same. Shares from different rounds are not. This is the very aspect that makes hopping work.
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 1946


Poor impulse control.


View Profile WWW
July 29, 2011, 01:58:56 PM
 #1543

The timeouts are caused by the pool on purpose though because we're identified by IP and user/workername as offending hoppers (see burnbacks post a few pages back). How will client side worker management get around this?

ok, client side worker are not really needed to solve this as bithopper could just split getwork requests through its workers; but i am very sure that missing them is the reason we got currupted (NOT stale) shares)

but i think its easier to implement - as you "always" know worker 1 goes to pool worker 1 and so on.


Yeah the main way people appear to identify bitthopper is the corrupted shares issue and its user-agent. I change the json user agent in work.py (lines 61 & 83) to match a common miner.

and are you getting good work with bitclockers? If so could you pm me with details? Save me the trial and error of figuring out which bits to change  Wink

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
licutis
Jr. Member
*
Offline Offline

Activity: 31


View Profile
July 29, 2011, 02:17:00 PM
 #1544

.

17JzeLUxFti9DXEVXUywP5XGngYm2TV38b
bitcoindaddy
Hero Member
*****
Offline Offline

Activity: 481


View Profile
July 29, 2011, 02:31:35 PM
 #1545

Yeah the main way people appear to identify bitthopper is the corrupted shares issue and its user-agent. I change the json user agent in work.py (lines 61 & 83) to match a common miner.

Here's the relevant code and what I changed it to (I hope this could be included in the official version):

Code:
diff --git a/work.py b/work.py
index 7063219..aeeaa34 100644
--- a/work.py
+++ b/work.py
@@ -58,7 +58,7 @@ def jsonrpc_lpcall(agent,server, url, update):
     request = json.dumps({'method':'getwork', 'params':[], 'id':i}, ensure_ascii = True)
     i = i +1
     
-    header = {'Authorization':["Basic " +base64.b64encode(server['user']+ ":" + server['pass'])], 'User-Agent': ['bitHopper'],'Content-Type': ['application/
+    header = {'Authorization':["Basic " +base64.b64encode(server['user']+ ":" + server['pass'])], 'User-Agent': ['poclbm/20110709'],'Content-Type': ['applic
     d = agent.request('GET', "http://" + url, Headers(header), None)
     d.addErrback(print_error)
     body = yield d
@@ -80,7 +80,7 @@ def jsonrpc_call(agent, server, data , set_lp):
         request = json.dumps({'method':'getwork', 'params':data, 'id':i}, ensure_ascii = True)
         i = i +1
         
-        header = {'Authorization':["Basic " +base64.b64encode(server['user']+ ":" + server['pass'])], 'User-Agent': ['bitHopper'],'Content-Type': ['applicat
+        header = {'Authorization':["Basic " +base64.b64encode(server['user']+ ":" + server['pass'])], 'User-Agent': ['poclbm/20110709'],'Content-Type': ['ap
         d = agent.request('POST', "http://" + server['mine_address'], Headers(header), StringProducer(request))
         response = yield d
         header = response.headers
enmaku
Hero Member
*****
Offline Offline

Activity: 742



View Profile WWW
July 29, 2011, 02:36:34 PM
 #1546

so my latest annoyance/confusion: If I go to localhost:8337/stats it works fine - if I go to 192.168.1.xxx:8337/stats it works fine - if I go to <external_address>:8337/stats it does not work fine. I've got my router set to forward 8337 and just to verify I fired up ryouiki's mod and I can still access that stats page with the external IP, just not c00w's version. Is c00w's version set to only allow HTTP connections from localhost or something? If so, how do I change that?

organofcorti
Donator
Legendary
*
Offline Offline

Activity: 1946


Poor impulse control.


View Profile WWW
July 29, 2011, 02:38:31 PM
 #1547

Yeah the main way people appear to identify bitthopper is the corrupted shares issue and its user-agent. I change the json user agent in work.py (lines 61 & 83) to match a common miner.

Here's the relevant code and what I changed it to (I hope this could be included in the official version):

....


Nice - that's actually a great heads up that there's a new poclbm version available! Git me up baby.

hooo-ever it might be not such a good idea to post such goodies here since it's monitored by pool ops. There's a speakeasy i know of....

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
bitcoindaddy
Hero Member
*****
Offline Offline

Activity: 481


View Profile
July 29, 2011, 02:39:25 PM
 #1548

so my latest annoyance/confusion: If I go to localhost:8337/stats it works fine - if I go to 192.168.1.xxx:8337/stats it works fine - if I go to <external_address>:8337/stats it does not work fine. I've got my router set to forward 8337 and just to verify I fired up ryouiki's mod and I can still access that stats page with the external IP, just not c00w's version. Is c00w's version set to only allow HTTP connections from localhost or something? If so, how do I change that?
I'm doing the same thing and it is working fine. Make sure you are doing TCP forwarding, check the internal IP address to make sure it matches the rule in your router. Check if you are running any firewall rules with "iptables -L".
enmaku
Hero Member
*****
Offline Offline

Activity: 742



View Profile WWW
July 29, 2011, 02:45:14 PM
 #1549

so my latest annoyance/confusion: If I go to localhost:8337/stats it works fine - if I go to 192.168.1.xxx:8337/stats it works fine - if I go to <external_address>:8337/stats it does not work fine. I've got my router set to forward 8337 and just to verify I fired up ryouiki's mod and I can still access that stats page with the external IP, just not c00w's version. Is c00w's version set to only allow HTTP connections from localhost or something? If so, how do I change that?
I'm doing the same thing and it is working fine. Make sure you are doing TCP forwarding, check the internal IP address to make sure it matches the rule in your router. Check if you are running any firewall rules with "iptables -L".

I'll reiterate: If I run ryouiki's mod which also listens on 8337 and attempt to access that stats page from the external IP it works correctly. If I close ryouiki's mod and open c00w's main branch I can no longer connect via the outside world. Obviously the problem is not in my TCP forwarding settings, firewall rules, etc else it would fail on ryouiki's mod too.

Sukrim
Legendary
*
Offline Offline

Activity: 1848


View Profile
July 29, 2011, 03:01:00 PM
 #1550

hooo-ever it might be not such a good idea to post such goodies here since it's monitored by pool ops. There's a speakeasy i know of....
Well, what shall they do - UserAgent ban/annoy all poclbm users? Wink

If yes, we can just rotate between headers of all miners...

https://bitfinex.com <-- leveraged trading of BTCUSD, LTCUSD and LTCBTC (long and short) - 10% discount on fees for the first 30 days with this refcode: x5K9YtL3Zb
Mail me at Bitmessage: BM-BbiHiVv5qh858ULsyRDtpRrG9WjXN3xf
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 1946


Poor impulse control.


View Profile WWW
July 29, 2011, 03:17:18 PM
 #1551

hooo-ever it might be not such a good idea to post such goodies here since it's monitored by pool ops. There's a speakeasy i know of....
Well, what shall they do - UserAgent ban/annoy all poclbm users? Wink

If yes, we can just rotate between headers of all miners...

weeeeeell, i was kinda speaking generally. And putting in a plug for another forum  Wink

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
paraipan
Legendary
*
Offline Offline

Activity: 924


Firstbits: 1pirata


View Profile WWW
July 29, 2011, 03:24:53 PM
 #1552

so my latest annoyance/confusion: If I go to localhost:8337/stats it works fine - if I go to 192.168.1.xxx:8337/stats it works fine - if I go to <external_address>:8337/stats it does not work fine. I've got my router set to forward 8337 and just to verify I fired up ryouiki's mod and I can still access that stats page with the external IP, just not c00w's version. Is c00w's version set to only allow HTTP connections from localhost or something? If so, how do I change that?

usually soho routers don't allow you to access external interface from the same pc you redirect the port to (80 for example) instead try to acces it through an external web proxy (http://hidemyass.com/) or from a pc outside your local lan

BTCitcoin: An Idea Worth Saving - Q&A with bitcoins on rugatu.com - Check my rep
enmaku
Hero Member
*****
Offline Offline

Activity: 742



View Profile WWW
July 29, 2011, 03:44:16 PM
 #1553

so my latest annoyance/confusion: If I go to localhost:8337/stats it works fine - if I go to 192.168.1.xxx:8337/stats it works fine - if I go to <external_address>:8337/stats it does not work fine. I've got my router set to forward 8337 and just to verify I fired up ryouiki's mod and I can still access that stats page with the external IP, just not c00w's version. Is c00w's version set to only allow HTTP connections from localhost or something? If so, how do I change that?

usually soho routers don't allow you to access external interface from the same pc you redirect the port to (80 for example) instead try to acces it through an external web proxy (http://hidemyass.com/) or from a pc outside your local lan

Never had that problem before but that seems to have done it... So weird.

Thanks!

Edit: I'm using a router that's been flashed to DD-WRT so even though it's a soho router it's not exactly a stock soho router.

Edit #2: Holy crap, look who just hit hero member when he wasn't paying attention  Grin

organofcorti
Donator
Legendary
*
Offline Offline

Activity: 1946


Poor impulse control.


View Profile WWW
July 29, 2011, 03:55:05 PM
 #1554

you'll always be my hero  Grin

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
organofcorti
Donator
Legendary
*
Offline Offline

Activity: 1946


Poor impulse control.


View Profile WWW
July 29, 2011, 03:57:19 PM
 #1555

getting the following error which is preventing the database from updating:

Code:
Traceback (most recent call last):
  File "bitHopper.py", line 39, in __init__
    self.db = database.Database(self)
  File "/home/user/bitHopper/database.py", line 32, in __init__
    call.start(60)
  File "/usr/lib/python2.6/dist-packages/twisted/internet/task.py", line 163, in start
    self()
  File "/usr/lib/python2.6/dist-packages/twisted/internet/task.py", line 194, in __call__
    d = defer.maybeDeferred(self.f, *self.a, **self.kw)
--- <exception caught here> ---
  File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 133, in maybeDeferred
    result = f(*args, **kw)
  File "/home/user/bitHopper/database.py", line 73, in write_database
    self.update_user_shares_db()
  File "/home/user/bitHopper/database.py", line 144, in update_user_shares_db
    self.curs.execute(sql)
sqlite3.OperationalError: no such column: user

Also, any easy way to reset the db to start from scratch?

Bitcoin network and pool analysis 12QxPHEuxDrs7mCyGSx1iVSozTwtquDB3r
follow @oocBlog for new post notifications
enmaku
Hero Member
*****
Offline Offline

Activity: 742



View Profile WWW
July 29, 2011, 04:00:40 PM
 #1556

you'll always be my hero  Grin

Heeeeey getting pretty close there yourself 494  Grin

Clipse
Hero Member
*****
Offline Offline

Activity: 504


View Profile
July 29, 2011, 04:13:18 PM
 #1557

getting the following error which is preventing the database from updating:

Code:
Traceback (most recent call last):
  File "bitHopper.py", line 39, in __init__
    self.db = database.Database(self)
  File "/home/user/bitHopper/database.py", line 32, in __init__
    call.start(60)
  File "/usr/lib/python2.6/dist-packages/twisted/internet/task.py", line 163, in start
    self()
  File "/usr/lib/python2.6/dist-packages/twisted/internet/task.py", line 194, in __call__
    d = defer.maybeDeferred(self.f, *self.a, **self.kw)
--- <exception caught here> ---
  File "/usr/lib/python2.6/dist-packages/twisted/internet/defer.py", line 133, in maybeDeferred
    result = f(*args, **kw)
  File "/home/user/bitHopper/database.py", line 73, in write_database
    self.update_user_shares_db()
  File "/home/user/bitHopper/database.py", line 144, in update_user_shares_db
    self.curs.execute(sql)
sqlite3.OperationalError: no such column: user

Also, any easy way to reset the db to start from scratch?

Just delete the stats.db file.

...In the land of the stale, the man with one share is king... >> Clipse

We pay miners at 130% PPS | Signup here : Bonus PPS Pool (Please read OP to understand the current process)
hawks5999
Full Member
***
Offline Offline

Activity: 168



View Profile WWW
July 29, 2011, 04:40:55 PM
 #1558

Edit #2: Holy crap, look who just hit hero member when he wasn't paying attention  Grin

http://youtu.be/Dq0llrCYtCQ?t=1m18s

■ ▄▄▄
■ ███
■ ■  ■               
LEDGER  WALLET    ████
■■■ ORDER NOW! ■■■
              LEDGER WALLET
Smartcard security for your BTCitcoins
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Decentralized. Open. Secure.
hawks5999
Full Member
***
Offline Offline

Activity: 168



View Profile WWW
July 29, 2011, 04:44:45 PM
 #1559

Code:
diff --git a/work.py b/work.py
index 7063219..aeeaa34 100644
--- a/work.py
+++ b/work.py
@@ -58,7 +58,7 @@ def jsonrpc_lpcall(agent,server, url, update):
     request = json.dumps({'method':'getwork', 'params':[], 'id':i}, ensure_ascii = True)
     i = i +1
     
-    header = {'Authorization':["Basic " +base64.b64encode(server['user']+ ":" + server['pass'])], 'User-Agent': ['bitHopper'],'Content-Type': ['application/
+    header = {'Authorization':["Basic " +base64.b64encode(server['user']+ ":" + server['pass'])], 'User-Agent': ['poclbm/20110709'],'Content-Type': ['applic
     d = agent.request('GET', "http://" + url, Headers(header), None)
     d.addErrback(print_error)
     body = yield d
@@ -80,7 +80,7 @@ def jsonrpc_call(agent, server, data , set_lp):
         request = json.dumps({'method':'getwork', 'params':data, 'id':i}, ensure_ascii = True)
         i = i +1
         
-        header = {'Authorization':["Basic " +base64.b64encode(server['user']+ ":" + server['pass'])], 'User-Agent': ['bitHopper'],'Content-Type': ['applicat
+        header = {'Authorization':["Basic " +base64.b64encode(server['user']+ ":" + server['pass'])], 'User-Agent': ['poclbm/20110709'],'Content-Type': ['ap
         d = agent.request('POST', "http://" + server['mine_address'], Headers(header), StringProducer(request))
         response = yield d
         header = response.headers

So this begs the question why we'd ever use bitHopper as UA string?
And the followup:
should  'User-Agent': ['phoenix/v1.5'], be used if mining with phoenix or is it all the same?

■ ▄▄▄
■ ███
■ ■  ■               
LEDGER  WALLET    ████
■■■ ORDER NOW! ■■■
              LEDGER WALLET
Smartcard security for your BTCitcoins
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Decentralized. Open. Secure.
Clipse
Hero Member
*****
Offline Offline

Activity: 504


View Profile
July 29, 2011, 05:00:17 PM
 #1560

So, btcworld.de should be scraping the poolspeed from the main page and not the statistics page (shares etc obviously should scrape from statistics page)

Anyone got a way around scraping from 2 locations. Statistics page caching is messing with poolspeed updates.

...In the land of the stale, the man with one share is king... >> Clipse

We pay miners at 130% PPS | Signup here : Bonus PPS Pool (Please read OP to understand the current process)
Pages: « 1 ... 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 [78] 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 ... 205 »
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!