Skip to content
This repository has been archived by the owner on Aug 7, 2023. It is now read-only.

dnldd/dcrpool

 
 

Repository files navigation

dcrpool

Build Status

dcrpool is a stratum decred mining pool. It currently supports:

  • Innosilicon D9 (port: 5552, supported firmware: D9_20180602_094459.swu)
  • Antminer DR3 (port: 5553)
  • Antminer DR5 (port: 5554)
  • Whatsminer D1 (port: 5555)

The pool can be configured to mine in solo pool mode or as a publicly available
mining pool. Solo pool mode represents a private mining pool operation where
all connected miners to the pool are owned by the pool administrator.
For this reason, mining rewards are left to accumulate at the specified
address for the mining node. There isn't a need for payment processing in solo
pool mining mode, it is disabled as a result.

In solo pool mining mode, miners only need to identify themselves when
connecting to the pool. The miner's username, specifically the username
sent in a mining.authorize message should be a unique name identifying
the client.

Here is a sample config for solo mining:

rpcuser=RPC_USER
rpcpass=RPC_PASS
dcrdrpchost=DCRD_RPC_HOST
dcrdrpccert=DCRD_RPC_CERT
debuglevel=trace
solopool=true
activenet=NETWORK
backuppass=BACKUP_PASS

Refer to config descriptions for more detail on the options.

The pool supports Pay Per Share (PPS) and Pay Per Last N Shares (PPLNS)
payment schemes when configured for pool mining.

With pool mining, mining clients connect to the pool, contribute work towards
solving a block and claim shares for participation. When a block is found by
the pool, portions of the mining reward due participating accounts are
calculated based on claimed shares and the payment scheme used. The pool pays
out the mining reward portions due each participating account when it matures.

In addition to identifying itself to the pool, each connecting miner has to
specify the address its portion of the mining reward should be sent to
when a block is found. For this reason, the mining client's username is a combination of the address mining rewards are paid to and its name,
formatted as: address.name. This username format for pool mining is
required. The pool uses the address provided in the username to create
an account, all other connected miners with the same address set will
contribute work to that account.

Here is a sample config for pool mining:

rpcuser=RPC_USER
rpcpass=RPC_PASS
dcrdrpchost=DCRD_RPC_HOST
dcrdrpccert=DCRD_RPC_CERT
walletgrpchost=WALLER_GRPC_HOST
walletrpccert=WALLET_RPC_CERT
debuglevel=trace
maxgentime=MAX_GEN_TIME
solopool=false
activenet=NETWORK
walletpass=WALLET_PASS
poolfeeaddrs=PFEE_ADDR
paymentmethod=PAYMENT_METHOD
lastnperiod=LAST_N_PERIOD
backuppass=BACKUP_PASS

Refer to config descriptions for more detail on the options.

The user interface of the pool provides public access to statistics and pool
account data. Users of the pool can access all payments, mined blocks by the
account and also work contributed by clients of the account via the interface.
The interface is only accessible via HTTPS and by default uses a self-signed
certificate, served on port :8080. In production, particularly for pool
mining, a certificate from an authority (CA) like letsencrypt is recommended.
The user interface also provides pool administrators database backup
functionality when needed.

To install and run dcrpool:

git clone https://github.com/decred/dcrpool.git
cd dcrpool 
go install 
dcrpool --configfile=path/to/config.conf 

The project has a tmux mining harness and a cpu miner for testing.
Refer to harness.sh for configuration details.

To install and run the cpu miner:

cd dcrpool/cmd/miner 
go install 
miner --configfile=path/to/config.conf 

To run the mining harness:

cd dcrpool
./harness.sh 

Thanks to davecgh, SweeperAA, dhill, jhartbarger, NickH and jholdstock for their contributions.

About

decred mining pool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • CSS 49.0%
  • Go 45.3%
  • HTML 3.8%
  • Shell 1.9%