In the past we have covered how to run a full node on VPS. Today, is a similar topic but we will be using the smallest VM on Digital Ocean.

The goal of this tutorial is to provide end users with a cost effective way to scale your ETC node for personal use. This blog serves to be an updated version of this, and specific to ETC.

Start by selecting the $4/month Droplet.

As of this writing, the ETC blockchain is 55.36 GB in size.

So to give us a little bit of room, let’s add 70GB of volume storage.

Choose your region, the smallest Droplet is not available in all regions. If you need more regions, use the 1 GB / 1 CPU Droplet.

Finish creating your Droplet. Using SSH keys is highly recommended.

No need for backups in this tutorial. Enable Monitoring and IPv6 if you like.

Okay now, lets get started preparing the environment and then get to running the node.

SSH into your VM, and run a quick update. I installed unzip, as core-geth releases are zip files – makes it easy.

sudo apt get-update -y
sudo apt install unzip -y

Create swapfile

Next, run these commands to create a 2G Swap. To learn more about, view this Digital Ocean article on swapfiles here.

sudo fallocate -l 2G /swapfile 
sudo chmod 600 /swapfile 
sudo mkswap /swapfile 
sudo echo '/swapfile none swap sw 0 0' >> /etc/fstab 

Reboot

sudo /sbin/shutdown -r now 

Check swapfile usage

free -mh 

Install Core-Geth

Navigate to the latest Core-Geth releases found here: https://github.com/etclabscore/core-geth/releases

Grab the URL of the Linux .zip file like so:

Download Core-Geth to our VM. Note your version may be different so don’t just copy and paste. After unzipping, we can remove the file.

wget https://github.com/etclabscore/core-geth/releases/download/v1.12.8/core-geth-linux-v1.12.8.zip
unzip core-geth-linux-v1.12.8.zip
rm -rf core-geth-linux-v1.12.8.zip

Storing blockchain on volume storage

Take note of your volumes name. You can find this in Digital Ocean dashboard under Volumes > More > Config Instructions. Or by typing this and hitting tab. Either way works.

ls /mnt/ #then hit tab to find volume name

Prep the volume storage with these commands:

sudo mkdir /mnt/your-volume-name/ethereum 
sudo chown root:root /mnt/your-volume-name/ethereum/ #replace root with username.
sudo chmod 775 /mnt/your-volume-name/ethereum/ 

Start Core-Geth

Start Core-Geth with –datadir flag or create symbolic link from your home directory to the volume. In this tutorial we will use the –datadir flag.

Quick note – You don’t need to use a service file, you can run core-geth anyway you prefer.

./geth --classic --datadir /mnt/your-volume-name/ethereum/

Create a service file

sudo nano /etc/systemd/system/geth.service

Add the following to the file, feel free to customize the ExecStart to your liking. We added the –datadir –maxpeers –cache flags.

[Unit] 
Description=geth 
[Service] 
Type=simple 
ExecStart=/root/geth --classic --datadir /mnt/your-volume-name/ethereum/ --maxpeers 25 --cache 16
Restart=always
[Install]
WantedBy=default.target

Next, enable and start the service. This will start Core-Geth and start syncing.

sudo systemctl daemon-reload
sudo systemctl enable geth.service
sudo systemctl start geth.service

Type this command to connect via IPC

cd /root/
./geth attach /mnt/your-volmue-name/ethereum/geth.ipc

Enter command:

eth.syncing

You should then see the status of your node. Once you see eth.syncing return false, then you are fully synced!

Fully synced node

Stay tuned for more tutorials for using your new node!

The cost of this exact setup would be $11/month.

What are your thoughts on this setup? What would you use your node for?

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}
Translate »
>