How to make an Ethereum mining pool

in ethereum •  7 years ago  (edited)

Hello everybody! In this how to guide I will be showing you how to make your own ethereum mining pool! This will be a full fledged guide with everything you will need to know in order to create a successful pool.

Ethereum Logo

Step 1: Hosting

In order to make a pool, you will need a good VPS host. Some good hosts that I recommend are Linode and DigitalOcean. Here are the MINIMUM specs required to run a small pool:

  • 1 GB ram
  • 2 CPU cores (you may be able to get away with 1)
  • Ubuntu 16.04 LTS

You will also need the following tools on your computer:

  • puTTY (SSH client)
  • A web browser (not internet explorer)
  • A tool like WinSCP may be helpful, but is not required

Step 2: Set Up OS

Open up putty and log into your VPS as the root user. Create a new, non root user and give it sudo access. Then, log in as your new user. Never log in as root again.

Run the following shell commands to update Ubuntu:

sudo apt-get update
sudo apt-get dist-upgrade

Next, create a 4GB swap file:

dd if=/dev/zero of=/mnt/myswap.swap bs=1M count=4000
mkswap /mnt/myswap.swap
swapon /mnt/myswap.swap

Next, edit the file nano /etc/fstab, and add the following line to the end of the file:

/mnt/myswap.swap none swap sw 0 0

Step 3: Installing Dependencies

Run the following commands:

apt-get install git -y
apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev -y
apt-get install libboost-all-dev git npm nodejs nodejs-legacy libminiupnpc-dev redis-server -y
apt-get install libdb4.8-dev libdb4.8++-dev -y
apt-get install golang -y
apt-get install nginx -y

Step 4: Install Ethereum

First, we need to let Linux know that Ethereum exists so it can install it for us. To do this, run these commands:

sudo apt-get install software-properties-common -y
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update

And finally, to install and start the node:

sudo apt-get install ethereum
geth account new
geth

Step 5: Compile pool

This is really the home stretch! Let's compile the pool software:

git config --global http.https://gopkg.in.followRedirects true
git clone https://github.com/sammy007/open-ethereum-pool.git
cd open-ethereum-pool
make

Step 6: Configure and start the pool

Configuration is very easy with this pool: simply edit config.json using nano like you did before. All settings should be clear and documented.

To run the pool:

./build/bin/open-ethereum-pool config.json

Step 7: Web interface

At this point, you should have a working pool up and running, but we want a web interface, don't we?

Enter the www directory (cd www), and change "ApiUrl: '//example.net/'" to match your domain name. Change the other options to your environment too.

Install EmberJS to push data to the website:

npm install -g [email protected]
npm install -g bower
npm install
bower install
./build.sh

We also need to register our directories with Nginx:
Edit the file /etc/nginx/nginx.conf, and add the following lines:

upstream api {
server 127.0.0.1:8080;
}

Under Location: /, add:

location /api {
proxy_pass http://api;
}

And that's it! You now should have a working pool where miners can connect! Test everything out and make sure the web interface works!

If this guide helped you to create your pool, please give it an up vote!

Thank you so much for reading this far, and see you in the next one!

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

‌‌‌अपकी वोट हमारे लिए महत्यपूर्ण है। जिसके लिए हम आपको धन्यवाद करते है। और वोट करते रहे।
Your vote is important to us. For which we thank you. And keep voting.
@ahlawat
Nice

Congratulations @kev626! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

STOP

Notifications have been disabled. Sorry if I bothered you.
To reactivate notifications, drop me a comment with the word NOTIFY

NOTIFY

Hello ! ~~

I can see your account is somewhat new
so I thought I'd send my late regards.

There is an upvote for you and maybe upvote some of my stuff too!

As a newcomer to steemit, it's not easy getting those first upvotes so my advice would be to give Steemfollower a go as you can earn up to 5x more steem than just upvoting by yourself! It's a simple and safe vote exchange that is free to use. --> Steemfollower

He there thanks for the guide it has helped me alot one question i am batteling to get everything setup and this section really confuses me where do i edit ??

We also need to register our directories with Nginx:
Edit the file /etc/nginx/nginx.conf, and add the following lines:

upstream api {
server 127.0.0.1:8080;
}
Under Location: /, add:

location /api {
proxy_pass http://api;
}

Add the upstream wherever you want in the file, and add the location /API directly under the Location: / section that looks similar.

tnx bro

great tutorial, thanks

Thanks man, good work :)

you know how to get SSL up and running. if you don't set it, i get the message api down

Hey kev how are you doing man? I need to talk to you about setting up a mining pool! I have a bussiness opportunity I would like to talk to you about! How can I contact you? I am Gabriel by the way ! :)