How I overcame my struggles when setting up a Codius Host

Inspired by the talk Stefan Thomas gave at the 2018 Crypto Valley Conference (youtube video can be found here) and after reading the Codius whitepaper, I decided to participate. Luckily, Stefan Thomas had also published a great article on How to Run Your Own Codius Host, but I soon realized that running a Codius host is not as easy as running a Bitcoin or Ethereum node. I needed to buy a domain, buy XRP, transfer those into my own wallet, and finally find a place to run CentOS 7 and to install all the necessary software. For somebody who doesn’t own a domain, a CentOS system, or any cryptocurrency yet, this was a great challenge. I want to share my journey such that every other newbie can participate, too.

Buying my first cryptocurrency — XRP

To buy XRP and to actually own them, I had to sign up for a crypto exchange and to create a wallet where I could transfer the XRP to. My decision was made in favor of Kraken and Exarpy. I have to admit, there is no profound decision process behind that. I just googled and those two popped up.

To buy any cryptocurrency at Kraken, I went through a three-staged validation process first. This included providing personal information but also photographing my ID and myself holding the ID. Once this was all done, I was allowed to deposit some Euros (my home currency) which I later used to buy XRP. I waited for a day or so until the wire transfer had been processed before I finally became a proud owner of 40 XRP.

My XRP were technically still not mine because they were stored in Kraken’s wallet. Before I could withdraw and transfer them to my own wallet, I had to get one first, which is way easier then buying the currency. I registered with Exarpy. They make you switch off your WiFi during the registration and later during the login process to increase the security (I still wonder how they do it, I guess they use cookies). In the end, you have a PIN, an account verification code, and a public-private key pair. Using the public key, I was able to send my XRP to my own wallet. Exarpy provides a great video on how to do that using the Kraken exchange. And this is it, all set on that front.

Finding the right domain — Namecheap

What I also did not have before was my own domain. However, it is necessary for users to find your host. So here I was again, completely clueless of what I needed. I was thinking about getting one of these completely free domains like .tk or .biz.nf but these do not have advanced DNS settings that are needed for the Codius host (you need to be able to set a custom DNS or to add A records and TXT records). I settled with Namecheap, mainly because I was able to get a decent domain name for 0.77€ p.a.

The easiest cloud computing platform — DigitalOcean

I have been using AWS before but have always been overwhelmed by all the possible configuration options. What if I check something wrong and cannot change it anymore? I searched for other possibilities and a DigitalOcean promo campaign made my decision very easy for now. I don’t know, however, if this is the way to go in the long run because the droplet I need for the Codius host costs $10 per month and a cloud hosting service is not recommended by Codius developers. But for now, I’m good.

Deploying my CentOS droplet was a piece of cake:

  1. Choose the correct distribution. Codius requires CentOS 7.
  2. Choose the size of your droplet. It needs to have at least 2 GB of RAM.
  3. Choose a data center region.
  4. Add your SSH key. This makes logging into your droplet so much easier.
  5. And you’re done!

You will have to wait a little bit (maybe 2 minutes) until your droplet is completely set up and you can connect to it.

Getting Codius up and running — Finally!

For this step, you can mainly follow the fantastic How-to. Connect to your droplet

$ ssh root@111.11.11.111

and run the commands as described. Make sure to set your hostname to codius.yourdomain.xyz.

It became a little trickier for me when I reached the section Adding DNS Records. Where do I do that? There are two possibilities — Namecheap or DigitalOcean.

Adding DNS Records on Namecheap

To add the A Records on Namecheap, log in and click on Manage in the Dashboard.

Next, select Advanced DNS (1) and add the two A Records as described in the How-to (2).

Adding DNS Records on DigitalOcean

This methods includes a few more steps. First, log into DigitalOcean. You should see your droplet there. Click on the three dots to the right and select Add a domain.

Next, fill in your domain name that you have purchased before.

After hitting Add Domain, you will be redirected to the page where the records can be added. However, this will not work right away. A banner on the top tells you to update your nameservers with your domain registrar for the records to take effect. DigitalOcean provides a link that explains how to do that in the case of Namecheap. Once this is completed, the A records can be added.

What also took me a while (mainly because I was too impatient), was how to add the TXT records for the Wildcard certificate.

Adding TXT Records on Namecheap

Actually, it is very straight forward. When the prompt tells you to save the TXT records with a certain value, just add them where you also added the A records.

The key is to wait a few seconds, maybe even a minute, before you hit enter in the command line prompt where it asks you whether you have saved the value. If you are too fast, Namecheap has not processed the changes yet and the certification check will fail.

This process is exactly the same on DigitalOcean.

After following the steps to install Nginx, Congratulations! You are done!