The following build instructions are based on Ubuntu 16.04 LTS.
-
redis-server
-
npm
-
nginx
sudo apt-get install -y build-essential libgmp3-dev golang git redis-server npm nginx npm install -g [email protected] bower
git clone https://github.com/cryptohq/open-ethereum-pool.git cd open-ethereum-pool make cp config.json.example config.json Replace POOL_URL and PATH_TO_REPO globally
If there is a problem finding node run, sudo ln -s /usr/bin/nodejs /usr/bin/node
cd www npm i bower i --allow-root ./build.sh
- Start go-ur with RPC on port 9595
- Run
./build/bin/open-ethereum-pool config.json
See misc/nginx-default.conf
- Run
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.$(date "+%b_%d_%Y_%H.%M.%S")
- Configure nginx to serve API on
/api
subdirectory. - Configure nginx to serve
www/dist
as static website.
ember server --port 8082 --environment development
I recommend this deployment strategy:
- Mining instance - 1x (it depends, you can run one node for EU, one for US, one for Asia)
- Unlocker and payouts instance - 1x each (strict!)
- API instance - 1x
If you are distributing your pool deployment to several servers or processes, create several configs and disable unneeded modules on each server.
-
Unlocking and payouts are sequential, 1st tx go, 2nd waiting for 1st to confirm and so on. You can disable that in code. Carefully read
docs/PAYOUTS.md
. -
Also, keep in mind that unlocking and payouts will halt in case of backend or node RPC errors. In that case check everything and restart.
-
You must restart module if you see errors with the word suspended.
-
Don't run payouts and unlocker modules as part of mining node. Create separate configs for both, launch independently and make sure you have a single instance of each module running.
-
If
poolFeeAddress
is not specified all pool profit will remain on coinbase address. If it specified, make sure to periodically send some dust back required for payments.
Thanks to sammy007 for creating open-ethereum-pool!