includes Cheat-Sheet for Quick Start at Bottom
Minimum requirements for running ARK node (active nodes): — at least 1 DEDICATED CPU core (no shared ones), x86 or x64 architecture (the higher the CPU clock speed, the better, recommendation 2 CPUs+) — 4 GB RAM (the more the better, recommendation 8GB+), — Linux - Ubuntu 16.04 (this is optimal, and this guide is written for it) — 20GB free space (we recommend SSD/m.2, as opposed to traditional HDD drives, recommendation 40GB+)
For this guide, we’ll use DigitalOcean, but note that other providers offer a better price and hardware (such as Vultr or OVH SSD).
1. Get yourself a server for your node
(for our guide we’ll use DigitalOcean)
We will create a droplet via DigitalOcean interface, for the Linux distro we will use Ubuntu 16.04.2 x64, $10 per month plan (1GB RAM/1CPU). We will choose New York #2 (your preferred location can be anything, but we avoid Singapore and Bangalore for possible latency issues). Next, choose 1 droplet and enter a hostname of your liking. After that, click create.
Once your server instance is ready, you will receive all of the info in your email (username, password, and IP address).
Once you have received this info on our email, it will be used throughout this guide. (replace with your info when setting up your node):
username : root password : xxx (sent in email) IP : xxx.xxx.xxx.xxx (sent in email) SSH port : 22 (this is default)
2. Connect to your newly created server instance via SSH
Windows : you can use any SSH client. For our example we will use Putty (an open-source client you can download here : download Putty) MAC OS : open Terminal ( To start Terminal, go to your Mac’s Applications folder => click on the Utilities folder => then click on Terminal). Linux : depending on your distribution, you can usually also open it by pressing a combination of “Ctrl + Alt + T” keys.
For terminal in Linux / MAC OS you can connect with this command: **ssh user@<server-ip>**example for our instance of server in Linux / MAC OS would be: ssh firstname.lastname@example.org
For our guide we’ll use Putty (Windows) — start it up:
Under Host Name (or IP address) input the IP your server provided in the email and click on Open. To skip this step for future, you can click on Default Settings and Save to save this IP, so the next time you start, you can just click on Default Settings and load button. You can also give the session a name, like “ark-testnet”, save it, and load it in the future as needed for this particular server.
When first connecting to this server from your computer, you will see a security alert (rsa2 key fingerprint). Click on “Yes” to continue. This will be shown only the first time, after that it will be stored for future sessions.
Now the command line will be shown, asking you to provide the username that you received in your email, “root”. Type it in and press [enter]. After that, you will be prompted for your password*. Enter the one sent in your email and press [enter] to connect to your server.
- when you write your password it won’t show any characters, but it has been recorded. As a useful tip, you can copy your password to the clipboard and then paste it in your Putty session.**Simply right click and it will paste the data you have in your clipboard.
As a security feature, a lot of providers have a mandatory change of the password they first assign to your root user, in which case, you will be asked to first input your current password (from the email), and enter a new one (we strongly recommend 16+ char one with a mix of letters, numbers, special characters).
If your provider doesn’t ask you to change a password on first connection you can initiate this yourself. It is highly recommended that you change the default password with a new one) by entering the command passwd, followed by [enter].
You will be prompted to enter a new password and then retype the same password.
Save your root password as you can get locked out of your own server if you forget it. At this stage, you can do a test and type exit, and then reconnect to your server — follow the steps from the beginning of #2 to connect again.
3. Setting Up Regular User With Sudo Privileges
Now that we successfully connected and changed the password for root it is time to create a new regular user with sudo privileges (sudo privileges allow a user to run programs with the security privileges of another user).
How to add new regular user:
adduser <yourusername> our example: adduser ark Enter a new password, enter it again, and press [enter] 6 times to accept all of the default values.
Now that we have successfully created user with the username ark (you can choose whatever username you want except root of course), it is time to assign this regular user sudo privileges.
How to add sudo privileges to our newly created regular user:
**usermod -a -G sudo <**yourusername> our example: usermod -a -G sudo ark
Now it is time to disconnect and reconnect as the newly created user (in our case ark and not as root. Type exit and press [enter]. Your Putty session will close. Reopen Putty after it disappears.
4. Connecting Using Your New User
Connect to your server, but now instead of logging in as root, we will login with new user. Type your username and press enter, followed by the password of that user:
For terminal in Linux / MAC OS you can connect with this command: **ssh yourusername@<server-ip>**example for our instance of server in Linux / MAC OS would be: ssh email@example.com
5. Installing ARK Node
Now that we have our node ready, it is time to install ARK. First we will download the ARK installer called “Ark Commander” simply by executing this command: wget https://raw.githubusercontent.com/ArkEcosystem/ARKcommander/master/ARKcommander.sh and then execute it with: bash ARKcommander.sh
Now the ARKcommander installation script will open. At the first step, you will need to provide your user’s password (in our example, the password for user ark).
Since this is your first time running this installer, it will check for all of the dependencies and updates the ARK node needs to run — press [enter] to continue and be patient. It might take a while, so do not interrupt the process.
(updating the system — don’t interrupt)
(installing prerequisites — don’t interrupt)
After this process finishes you will be asked to reboot your server — execute with the command:
Don’t be alarmed by this message it simply states since you restarted your server, Putty has lost connection to it. Simply click on OK:
Now open putty again, reconnect with your user, and execute : bash ARKcommander.sh Provide your password if asked to enter the menu.
You will now enter into ARK commander menu.
There are a lot of options, and since this is our first installation, you will input number 1 and press [enter] to execute the Install ARK process. Now the ARK node installation will start — don’t interrupt, it might take a few minutes!
After the node installation is done, you will be asked if you want to set the secret passphrase of your delegate (the password you are using to access your delegate’s wallet). By pressing [enter] you will be prompted to enter it, and if you do not want to set it, you can press N and [enter].
If you pressed enter (and chose option Y), you will be prompted to enter your delegate passphrase — enter it (or copy from elsewhere and paste it with the right click in putty) and press [enter] to save it — you can also change it later with option 5 in the ARK command center. Now you will be asked if you are sure to save it to your config — [press enter] and your ARK node server will start after that — voila, press [enter] to return to the ARK command center.
You will be returned to your ARK commander center.
6. Syncing Blockchain From a Snapshot
After you are done with the installation, you will be returned to the ARKcommander menu. To sync from a snapshot, we are going to use command 4. Rebuild Database.
A message will be shown:
Would you like to download the latest snapshot? (Y/n) press ‘Y’ and ‘enter’ to download the latest official devnet snapshot.
Next, you will be asked:
Would you like to restore the snapshot now? (Y/n) press ‘Y’ and ‘enter’ to restore from the snapshot you just downloaded. This will take a few minutes. Next you will see ‘Current snapshot has been restored’ and ARK node will start. Press ‘enter’ to return to the menu.
7. Checking If You Are Synced
After this, we can check to see if your node is successfully synced to the blockchain (might take a minute or so to fully sync). Once back in the menu, press ‘L’ to view the log.
You should see messages like this “*New block received” about every 8 seconds.*
If you see this, your node is all ready and synced. Press ‘CTRL’ + ‘C’ to close the log and return to the ARKcommander menu.
You can check to see if your node is running by pressing S + [enter] (*note that letters in ARK command center are case sensitive so small s won’t work, same with other letters).
Check the ARK node logs by pressing L + [enter] — to exit log view press ctrl + C (to close the scrolling log text) and return to the ARK command center.
You can stop the ARK node process with K + [enter] — that will stop your node.
If you want to start it again press A + [enter] — this will start your node again
If your node is stuck, usually a simple R + [enter] will suffice (it will automatically kill and start ARK node process).
0 + [enter] will exit the ARK commander center and return you back to your home directory with a linux command prompt.
Play a bit and get accustomed to it — and remember, you can always enter ark comander with the command bash ARKcommander.sh (make sure you are in the correct directory where it is located, usually in home — you can get to your home directory by simply entering cd ~ )
(you can also perform a lot of the tasks without the need of ARK commander):
Make sure you are in ark-node directory by typing: cd ~/ark-node
After that you can perform a lot of tasks with simple commands (commands are written in bold): Restarting your ARK node: forever restart app.js Real-time log of your ARK node: tail -f ./logs/ark.log Killing your ARK node process: forever stopall Listing your forever processes (ARK node): forever list Updating your ARK node : git pull After updating, you need to restart the node: forever restart app.js
Still having issues? Join our Slack and a member of our team or one of the community members will be glad to help you out: https://ark.io/slack/