Idena DNA Cryptocurrency Miner with a Raspberry Pi 4

Idena DNA cryptocurrency is the perfect mining solution for a Raspberry Pi due to the fact that the mining operation is not dependent on processing power. You can learn more about Idena DNA here.

Most of this tutorial was taken from here the link below (thanks!). I have just gone through each step in detail for beginners.

Printing Money at Home: How to run Idena on Raspberry Pi 4 and mine DNA

What you will need

  1. Raspberry Pi – I will be using the latest edition, the Raspberry Pi 4.
  2. A micro-SD card and LAN cable for the Raspberry Pi.
  3. Another machine, Windows for example.

Installing Ubuntu on the Raspberry Pi

First you will need to take out the Micro-SD card out of the Raspberry Pi, using a card reader insert it into a PC. Next, download the Raspberry Pi imager and run it:

Raspberry Pi Imager

Choose the 32-bit server version:

Choose the SD card:

Once installed, place the Micro-USB back into the Raspberry Pi and power it on. Make sure you have it connected to the internet using a LAN cable.

When the Raspberry Pi is connected to a screen, you should see a black screen asking for username and password credentials.

Username: ubuntu
Password: ubuntu

It will then ask you to change the password. Note if you see any error messages at this stage, make sure the LAN cable is connected and give it a reboot. When you have changed the password, type the following into the terminal

sudo apt-get update     
sudo apt-get upgrade     
sudo apt-get install ubuntu-desktop     
sudo reboot

The code above applies updates, makes sure the OS is up to date and installs a desktop environment. This will take some time. Once completed, after a reboot, you will be logged into a desktop environment, use the password you set previously to log in.

Installing the Idena-go Node

Idena-go doesn’t provide any binaries for arm (Raspberry Pi runs on arm architecture). You will need to compile an arm binary from their github repositories. Since Idena was built with Go, you will need to install that first. Open up the “terminal” on Linux and type the following:

sudo apt-get install golang-go

Next you need to clone the github repository:

git clone https://github.com/idena-network/idena-go.git
cd idena-go/

Build the binary using the latest version. Check what the latest version is before running this next command. In my case, the version is 0.21.4:

go build -ldflags "-X main.version=0.21.4"

Now, move it to the home folder and rename using the following command:

mv idena-go ../idena-node-arm64-0.21.4
cd ../

Now, we need to extract a config file and place it in the same directory as the binary. Type the following into the terminal:

wget https://idena.io/examples/guide-remote-1/config.json
 ./idena-node-arm64-0.21.3 --config=config.json

This will start the node running, press CTRL + C to stop it.

Next we will use the supervisor to allow the Idena node to run in the background:

sudo apt install supervisor

We then need to create a new directory and 2 log files:

cd /var/log/
sudo mkdir /var/log/idena
sudo touch error.log
sudo touch stdout.log

Now to edit the config file for the supervisor:

cd ../
cd ../
sudo nano /etc/supervisor/conf.d/idena.conf

Copy and paste the following code into the nano window:

[program:idena]
command=/home/ubuntu/idena-node-arm64-0.21.4 --config=config.json
directory=/home/ubuntu/
autostart=true
autorestart=true
stderr_logfile=/var/log/idena/error.log
stdout_logfile=/var/log/idena/stdout.log
user=ubuntu

To save and exit, press CTRL + X, Y, Enter.

To start supervisor with the Idena node:

sudo supervisord

At this stage you might get a message to say that another program is already listening on the port. If this happens, try the following, if not, ignore:

ps -ef | grep supervisord

You will see a PID for supervisor, should look something like “root 2503 . . . “

The PID is 2503, then type:

sudo kill -s SIGTERM 2503

Now we are ready to start the supervisor with the Idena node, to do this, type:

sudo supervisorctl
supervisor>update

It should show in a running state now if everything is successful.

Installing the Idena Desktop Front End

Once the supervisor is running, you need to install the Idena front end. This is to be installed on your main machine, Windows 10 for example. You can download it for Windows here:

Idena Front End

Next you need to take note of an API key from your Ubuntu machine. You can do this by using the following command:

cat ./datadir/api.key

From your main windows machine, you need to create a SSH tunnel to the Idena node machine. First, install Putty:

Download Putty from here.

On the Ubuntu machine, you need to find the IP address. Type the following into the terminal:

sudo ifconfig

Note, if ifconfig does not work, you need to install network tools using the following command:

sudo apt install net-tools

In my case the internal IP address is 192.168.0.227.

On your Windows machine, type the following into command prompt, replace the IP address for the IP of your Ubuntu machine:

ssh -L 9998:localhost:9009 ubuntu@192.168.0.227

Type yes, press Enter, type in Ubuntu password you created earlier.

Now on the Idena Desktop front end client, click on “settings”, “node”, turn off “run built-in node” and turn on “connect to remote node”.

Paste in http://localhost:9998 into “node address” and type in the API key you retrieved earlier.

Leave it synchronise, this might take some time. It should look like this when finished:

Next Steps

Next, you will need to get an invitation, this will allow you to start mining. Check out the Idena Telegram Chat and the Discord link:

Telegram

Discord

Read up as much as possible, you will have to understand how to perform and create “flips”.

Once you get an invite, make sure you are online for your first validation. You can check where this is from the desktop client:

Happy Mining!

#Update

Troubleshooting

I have found that if your router reboots, the Idena node will show as offline from the Idena Desktop app. To get the node back online again, you will need to kick off the SSH connection back to the node again. From your windows PC, open command prompt and enter the following code, enter your password after:

ssh -L 9998:localhost:9009 ubuntu@192.168.0.227

I am trying to find a way to make the connection persistent without hard coding my password anywhere. I will update once I have a solution.