bonesoul / CoiniumServ

Next-gen crypto currency mining pool software
Other
793 stars 494 forks source link

Upstream Pool & Proxy Support #174

Open ahmedbodi opened 10 years ago

ahmedbodi commented 10 years ago

Connect to an upstream pool to fetch work and then submit shares back to that. normally to be used with p2pool

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/2797952-upstream-pool-proxy-support?utm_campaign=plugin&utm_content=tracker%2F401667&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F401667&utm_medium=issues&utm_source=github).
bonesoul commented 10 years ago

https://github.com/dogestreet/proxypool#how-it-works-how-to-proxy-stratum

The main problem to solve is how to generate unique work for every proxypool client.

The idea is to reduce the size of extraNonce2 so that the server controls the first few bytes. This means that server will be able to generate a unique coinbase for each client, mutating the coinbase hash.

This reduces the block search space for clients. However, the impact is negligible. With a 4 byte upstream extraNonce2, and with the proxypool server keeping 2 bytes for itself (clients get the other 2). This allows the server to have 65536 concurrent connections and clients to have a maximum hashrate of 2^32 x 2^16, or 256 tera hashes per second, which is more than enough for Scrypt based coins at the time of writing.

Upon client share submission, the server checks that the share matches the required upstream difficulty and resubmits it under it's own name.

bonesoul commented 10 years ago

https://github.com/CaptEmulation/stratum-proxy/tree/master/lib

bonesoul commented 9 years ago

https://github.com/Stratehm/stratum-proxy

bonesoul commented 9 years ago

https://bitcointalk.org/index.php?topic=611338.msg8629141#msg8629141

michelem09 commented 9 years ago

+1