Mining with an Ethereum Iceberg node on AWS, for noobs

Ethereum released geth 1.8.0 as of February 14 2018.

The Iceberg release syncs faster, outside of a bunch of other improvements.

I’ll walk you through an installation of geth 1.8 on AWS.

Setting up a VM

We will use EC2 loaded with Ubuntu 16.04 for this tutorial.

0. Launch a new instance from your AWS EC2 dashboard

1. Select Ubuntu as the OS

2. Use a t2.xlarge or larger instance

We need to have a good connection speed and atleast 8GB RAM.

Select and select “Next : Configure instance details” on the bottom right of your screen

Change configurations if you know what you are doing

If not, just proceed to “Next : add storage”.

Add 200 GB SSD storage

You should have enough storage to store the entire chain.

Click on “Next: Add tags” and then “Next : Configure security Group”.

Allow inbound traffic to port 30303

Remember to add a rule for both TCP and UDP

Review and Launch!

Make sure you download the keypair, which will be prompted when you hit “Launch”

Click “Download Key Pair” and save it at ~/.ssh/ethereum-full-node.pem

Once downloaded, change the permissions of the downloaded file by running the following command on the terminal.

Setting up the Ethereum Node

Log in to your VM will show you the state of your VM. Once it is running you’ll see the green dot against your VM and an IP address

The last column here is the VM’s IP address

Open up a terminal (on Mac/Linux) and type in

Install NodeJS 9.x

After sshing, we need to install the latest NodeJS. As of this writing, Ubuntu’s official repositories support NodeJS v4.x. Ethereum Iceberg release is incompatible with NodeJS v4.x

Install GoLang 1.9.x

Again, we need the latest version of GoLang for Ethereum Iceberg.

Install make tools

From commandline,

Install Ethereum Geth

Create a new account

This step will ask you to give a password. Make sure the password is strong and something you don’t forget.

Start Mining

To detach from screen, press Ctrl+A followed by Ctrl-D

Checking status

If eth.syncing returns “false”, the sync is complete and mining will start. This process may take upto 2 days.