Open ahmedbodi opened 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.
+1
Connect to an upstream pool to fetch work and then submit shares back to that. normally to be used with p2pool