Ravens… Ravens everywhere! A story of Ravencoin nodes scaling…

Daniel Ramirez
4 min readApr 18, 2022

--

Introduction

Ravencoin nodes are a big part of the Ravencoin project as a whole since they maintain a full copy of the blockchain ledger and are in charge of receiving new requests for transactions happening in the network. With more nodes, more resilient and secure the blockchain is.

If you have been part of the community for a while and you have been one of those that have gone through the adventure of setting up your own Ravencoin node, you might have figured that you needes some special set of skill to set everything properly. And even if you install everything properly, the node syncing usually takes a full day or even more than that.

I am going to share with you a little something I have been working for the past few weeks on my spare time :) which aims to make the entire setup process much smoother and faster.

I just want to clarify that for the tasks related to this article, you will still need some technical skills. But worry not, in my next article I plan to explain how you can achieve this same process even easier and at scale.

In case you may be wondering a little background of myself. My name is Daniel and I am an Embedded software engineer with a special affinity for DevOps related tasks. I am a 28 year old Costa Rican, living in Croatia.

From my experience I found there are a few things that needed improving while running and maintaining the Ravencoin nodes.

This implementation makes use of docker containers. For those unfamiliar with Docker, a container is an isolated environment that runs on a machine (Windows, Linux or MacOS). This technology is a big part of the “so popular” cloud everyone talks about. It allows to automate many tasks and and run applications (or a set of them) as if they were just one as a service.

Following this principle I decided to create a docker container that manages the tasks of setting up, running and maintaining your node in a 3 part process.

1- I remember one of the OG guides posted online that included a bootstrap file of the RVN blockchain, which helped speeding up the initial synchronization process. That was hosted somewhere and now it can’t be downloaded anymore. I thought this was very useful and I also wanted to bring this to life again. This is why each container spawned will be part of distributing this bootstrap file for other network members. P2P is the ethos of Bitcoin and Ravencoin, this is why I think these files should be available for everyone to make use of.

2- After downloading the full bootstrap file, the Ravencoin Core node is configured to use this initial database. Allowing to sync from a more recent date, which at the current date of posting it only takes a few minutes to fully sync, depending on your download speed.

3- I also included a simple frontend (website) for you to check on the current status of the node, block height, and planning to add some other stuff in the future.

The meat and potatoes

You may now be wondering how you can set this all up to contribute securing the network.
There are many routes you can go with to get this set up. Your own daily machine, laptop, raspberry pi, a monthly server on the cloud, etc. You can choose whichever works best for you.

1- First you need to install the Docker engine on the system. For this you can visit and follow the steps for your configuration https://docs.docker.com/get-docker/

2- This application is configured to use network ports 38767, 31413 and 8080. For your own home setups you may need to add port forward rules only for ports 38767 for TCP and 31413 UPD and TCP to the internal IP for the system your are setting up. You may use port 8080 only on your internal network, to check the node status

Port 38767 is used for the Ravencoin Core daemon, 31413 is used for the bootstrap file download and distribution.

3- Now you can run the container with the following command:

$ docker run -d -v ~/raven-node/kingofthenorth/:/kingofthenorth -v /home/kingofthenorth -p 31413:31413/tcp -p 31413:31413/udp -p 38767:38767 -p 8080:8080 --name rvn-node dramirezrt/ravencoin-core-server:latest

4- You can check the status of the node by visiting http://localhost:8080 or if checking from another machine http://<node-ip>:8080

When the process is finished it should display something similar to:

5- Allow the container to start the bootstrap process.

Minimum system requirements:

  • 1 CPU core
  • 1.5 GB of RAM
  • 70 GB of disk space available

Bonus tip:

You can also run another docker container which monitors the images running on your system, and if it detects a newer version it will auto-magically update your version.

To achieve this, just run:

$ docker run -d --name watchtower --v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower

For additional information please refer to:

That is all for now. Be on the lookout for my next post as I still have another surprise for increasing the amount of RVN nodes in a decentralized and resilient way.

For RVN Donations: RFxiRVE8L7MHVYfNP2X9eMMKUPk83uYfpZ

--

--