Build your own private ethereum mining pool

tutorialevideotutorialevideo RomaniaPosts: 84Member
edited September 2016 in Pool Discussion
The work method is “getWork” making the pool run out-of-the-box with the official ethereum miner (ethminer).
The pool is built on NodeJS/Express. Currently working and tested on NodeJS version 4.4.6. The database used for storage is MongoDB (v 3),
The frontend is written in AngularJS and for Sockets communication between client and server-side we chose to use Primus Sockets.
The operating system used for extensive tests is Ubuntu 14.04 LTS and you shouldn’t have issues with it.

The pool is “round based”. This means that you can set a certain number of blocks found that complete a round. For example if you wish to set 1 block/round then every new block found will trigger a new round and the miners will start mining on it immediately. When you send payouts for this round, they will be calculated for that one blocks’ reward value. If you set 10 blocks/ round the same logic applies and the payouts will include rewards from all 10 blocks and so on.

The pool tracks uncles so you will be paid for these also.

The following list are features that are already build inside the mining pool:
- Worker Monitor : keeps track of online/offline workers and notifies the owner about their status
- The Vardiff module recalculates the work difficulty dispatched to the worker according to the share interval so you don’t have to tell the pool what hashrate you estimate having. Because of the unique way that the Ethash algorithm works, the worker hashrate decreases as we proceed through the Epochs; with Vardiff this is taken care of automatically.
- eMail notifications are sent to the miner and/or the pool owner on various tasks : new block found, worker offline, new payment issued
- Telegram push notifications for the same tasks enumerated above. You will have a private Telegram room where miners and the pool admin can receive the messages
- Hash rate charts for the entire pool (sum of miners) / individual miners (sum of workers) / individual workers
- Pool profitability estimate gives you the average ether / day / week / month and also the current price for ethereum in BTC and USD.

The administration panel uses JWT tokens for authentication so you can rest assured that the password is salted (bcrypt) and tokens are used in the login process.
Upon payment, the miner receives the payout value as well as the transaction ID. The same transaction ID is saved so you will always have a clean history of payments that are correlated with the Ethereum chain data.

The payments are not fully automated because of security concerns. You will have to manually do a temporary wallet unlock and then send the payments… but the process is quite simple and should not be an issue.

Hardware requirements :
We tested up to 20GH/s and the memory usage stays at about 1GB and CPU usage at around 30-40% on an Intel i5.
Our suggestion would be to setup a local dedicated server (if the pool is for private usage) with gigabit ethernet to avoid network bottlenecks, above i3 or similar and with a minimum of 4GB ram.
Also, the pool has been successfully tested on virtualised OpenVZ servers but you must be sure that the resources are enough for your usage. This pool can be adjuested to any coin like ETC/SIA/DCR in the future we can adjust to other algos.
Upcoming implementations will include Stratum Protocol based mining so you can use mining clients other then the official ethminer.

Credits for stats : https://github.com/cubedro
If you need a private pool just contact me on:
adrian@sosit.co
skype: adrian.tuto

Post edited by tutorialevideo on
11.png 178.7K

Comments

Sign In or Register to comment.