Skip to content

dreams-money/merged-mining-pool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Merged Mining Pool

A high-performance Merged Mining Pool Software centered around Doge/Litecoin

Dogecoin Logo Litecoin Logo

Features

  • Stratum Networking. Tested for 1000+ concurrent clients.
  • ZMQ subscriptions for real-time communication with the blockchain
  • Unique extranonce generation for a parallel client workload
  • Merged mining for resource efficiency
  • API service for a front-end website
  • RPC failover for high availability
  • Multiple payout schemes for client rewards
  • Single coin mining for testing

Todo

  • Variable difficulty

Getting Started

Open config.example.json to get started.

You'll need access to a blockchain RPC and a ZMQ block notification URL.

For ZMQ notifications you have to start your nodes with block notification on:

// Assuming your node is on the same machine as this pool
-zmqpubhashblock="tcp://127.0.0.1:<your-port-here>"

//Remote nodes need additional configuration if they're on WAN or LAN (firewalls, port forwarding, etc.)
-zmqpubhashblock="tcp://0.0.0.0:<your-port-here>"

Setting up the Postgres database

The pools have been tested with Postgres 16. Once installed, you can log into the Postgres server w/

sudo -u postgres psql # Unix
psql -U postgres # Windows

Open the directory below to find scripts that will set up your databases.

persistence/schemas

You can skip 3-multi-pool-partition.sql if you're still testing.

Connecting to the pool

Once you have it running, your client can connect with the following login:

  • username: yourPrimaryCoinMinerAddress-yourAux1CoinMinerAddress.rigID
  • password: none

Contributing

I hope to have created a system in which multiple chains can be supported from one project. As such, most coins can be merged mined from this same project.

Centered around type Generator interface{} (and a future type RPC interface{}) any coin, in any coin family, can be supported as a go module or a microservice.

Feel free to contact me via Github Discussions to discuss how you can implement your chain.

New features may be discussed, but are generally based around Stratum and chain updates.

About

High-performance Merged Mining Pool Software centered around Doge/Litecoin

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages