Hydrapool is a an effort to build a free and open source pool that anyone can run and provide pooling services to miners.
A FOSS bitcoin mining pool will use FOSS components and be available under a FOSS license for improvements by the community as needs arrive.
I want to capture some high level functional requirements here and propose an execution plan to kick off some discussion around building a FOSS pool.
-
Dockerized bitcoind and ckpool.
-
Secure and scalable database solution to retain shares.
-
User registration and stratum configurations.
-
APIs for community to audit the pool.
-
Continuous integration for confidently improving the software.
-
Scalability testing to handle 10s of thousands of miners on each Hydra instance.
-
DDoS prevention and testing.
-
Support for tor using an onsite proxy.
We need to build the above components and there are a few FOSS components available that we can use to ship this.
Here is a list of components that we can use to put together a working FOSS pool. I highlight the license each of them use.
-
bitcoind - MIT
-
ckpool - GPL
-
Docker CE - Apache 2.0
-
PostgreSQL - PostgreSQL License (MIT derivative)
-
Github CI to start off - Free for FOSS projects
Other things we need to build will be licensed as FOSS
-
Rust web API
-
A simple web frontend
Without depending on centralised services like cloudflare, DDoS protection will be a challenge. The only way around it is to use Tor’s hidden services that offer DDoS protection. Tor will also enable the Hydra to survive longer. However, this will add latency and we need to investigate the impact of the time lost in pushing new blocks out.