Pages:
Author

Topic: RollProxy - a bandwidth-saving mining proxy - page 3. (Read 14358 times)

hero member
Activity: 838
Merit: 507
say, pooler, would it be possible to add support for socks proxies in addition to http? this could quite possibly be the best thing since cgminer, if only it had socks support Smiley

cgminer does:
--socks-proxy Set socks4 proxy (host:port)

Unfortunately that doesn't help. What is needed is a way for RollProxy to connect to the Internet through a SOCKS4/5 proxy, not a way for the miners to connect to RollProxy through an additional local proxy.
hero member
Activity: 988
Merit: 1000
say, pooler, would it be possible to add support for socks proxies in addition to http? this could quite possibly be the best thing since cgminer, if only it had socks support Smiley

cgminer does:
--socks-proxy Set socks4 proxy (host:port)
newbie
Activity: 15
Merit: 0
In any case, it seems my debian squeeze server is stuck on python 2.6.6 anyway, which neither offers urllib3 packages, nor satisfies rollproxy's version requirement. Oh well.


Rollproxy on squeeze works fine for me:

Code:
apt-get install python-pip
pip install argparse
pip install urllib3

python /usr/local/bin/rollproxy.py -v
[2012-08-29 08:58:05] Serving HTTP on port 8345
oooh, interesting. and here i tried installing the wheezy packages for urllib3 Roll Eyes
thank you very much, it is working now.

and thank you, too, pooler. rollproxy is great!
full member
Activity: 225
Merit: 100
In any case, it seems my debian squeeze server is stuck on python 2.6.6 anyway, which neither offers urllib3 packages, nor satisfies rollproxy's version requirement. Oh well.


Rollproxy on squeeze works fine for me:

Code:
apt-get install python-pip
pip install argparse
pip install urllib3

python /usr/local/bin/rollproxy.py -v
[2012-08-29 08:58:05] Serving HTTP on port 8345
newbie
Activity: 15
Merit: 0
say, pooler, would it be possible to add support for socks proxies in addition to http? this could quite possibly be the best thing since cgminer, if only it had socks support Smiley

I realize that SOCKS support would be a very nice feature to have. The problem is that the master branch of urllib3 doesn't support SOCKS proxies yet, although developers have been working on it for some time now (see this pull request).
One option would be to rewrite RollProxy to use PycURL instead of urllib3, but the problem is that urllib3 seems to be the only decent HTTP library that supports connection pooling.
Another option would be to use SocksiPy, which however is buggy, old, and unmaintained.
For the above reasons, it's probably better to wait till the urllib3 guys finish implementing SOCKS support.
oh. Yeah, you're right. No point in rewriting the thing for another lib.

In any case, it seems my debian squeeze server is stuck on python 2.6.6 anyway, which neither offers urllib3 packages, nor satisfies rollproxy's version requirement. Oh well.
hero member
Activity: 838
Merit: 507
say, pooler, would it be possible to add support for socks proxies in addition to http? this could quite possibly be the best thing since cgminer, if only it had socks support Smiley

I realize that SOCKS support would be a very nice feature to have. The problem is that the master branch of urllib3 doesn't support SOCKS proxies yet, although developers have been working on it for some time now (see this pull request).
One option would be to rewrite RollProxy to use PycURL instead of urllib3, but the problem is that urllib3 seems to be the only decent HTTP library that supports connection pooling.
Another option would be to use SocksiPy, which however is buggy, old, and unmaintained.
For the above reasons, it's probably better to wait till the urllib3 guys finish implementing SOCKS support.
legendary
Activity: 1148
Merit: 1008
If you want to walk on water, get out of the boat
What about just using p2pool?
newbie
Activity: 15
Merit: 0
say, pooler, would it be possible to add support for socks proxies in addition to http? this could quite possibly be the best thing since cgminer, if only it had socks support Smiley
sr. member
Activity: 344
Merit: 250
Flixxo - Watch, Share, Earn!
Great idea. I will try it out
hero member
Activity: 838
Merit: 507
So i connect them to  localhost:port x ?

You connect miners to the computer running the proxy. If a miner is on the same computer as the proxy, you can just connect it to localhost:8345. If the proxy is running on, say, 192.168.1.123, connect miners to 192.168.1.123:8345.
hero member
Activity: 784
Merit: 500
So i connect them to  localhost:port x ?


hero member
Activity: 838
Merit: 507
And for the windows dummies out there (like me) Smiley?
Last time I used Windows was about 10 years ago, so it's best if I let someone else answer this question...

how do i connect a miner to that proxy?

Normaly i give my mining program the credentials to my pool. For what i understand is that i give them to your proxy and connect my miner to it instead?
Yes. You start the proxy specifying the address and credentials for one or more pools; then you connect your miners to the proxy, which by default runs on port 8345. Miners need not authenticate, but if they provide a username you will see per-worker stats in the web interface of RollProxy (which is also served on port 8345 by default).
hero member
Activity: 838
Merit: 507
Note that cgminer does this already intrinsically and adding this proxy with it serves no real purpose.

That's if you only have one computer mining. If you have more than one, no miner can do what this proxy does.
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
Note that cgminer does this already intrinsically and adding this proxy with it serves no real purpose. I can't speak for all other mining software though.
hero member
Activity: 784
Merit: 500
And for the windows dummies out there (like me) Smiley?

how do i connect a miner to that proxy?

Normaly i give my mining program the credentials to my pool. For what i understand is that i give them to your proxy and connect my miner to it instead?



full member
Activity: 225
Merit: 100
Great work, pooler! Thanks a lot for sharing this.
sr. member
Activity: 270
Merit: 250
Nice work.
legendary
Activity: 924
Merit: 1004
Firstbits: 1pirata
Nice, will be using this  Smiley
hero member
Activity: 838
Merit: 507
Announcing RollProxy, a mining proxy... with a twist!

RollProxy takes advantage of the X-Roll-NTime extension to minimize the number of getwork requests you send to pools.  By keeping more requests local, it minimizes latency, while drastically reducing the load on upstream servers.
The proxy will prove especially useful to those who run many miners on a single local network.

Features
  • Works with Bitcoin as well as with Litecoin and other cryptocurrencies that use the getwork protocol
  • Makes persistent HTTP connections
  • Supports long polling
  • Per-worker statistics available via web interface
  • Round-robin failover mechanism (more advanced strategies may be implemented in the future)
  • Ability to connect through an additional proxy server

Please note that your miners need not support the X-Roll-NTime extension; it's the pools you connect to that need to. If you connect to a pool that doesn't support the extension, the proxy will still work, but you will see no increase in getwork efficiency. In that case, RollProxy will warn you with a "Work cannot be reused" message.
Major pools that are known to support the extension include:

  • For Bitcoin: Eclipse, Eligius, MaxBTC, Mt. Red, OzCoin, P2Pool, Slush
  • For Litecoin: burnside's, LitecoinCash, notroll.in, OzCoin, P2Pool, Pool-X, Xurious's

RollProxy is written in Python and is distributed under the terms of the AGPLv3. Please refer to the readme for details about setting it up.
https://github.com/pooler/rollproxy

This first public release (version 0.5.0) should already be pretty stable; I wish to thank Pontius, who helped me by testing preliminary versions of the program.
Pages:
Jump to: