This guide is for setting up a physical Vechain Observer Node using Docker on Synology Attached Storage (NAS). We will create observer nodes that will receive transaction data and observe blocks being created on the network. This guide will run the same code that is on the 101 Authority nodes that power the network. This node will allow you to gain access to the Vechain API – so you start programming on the Vechain network and query transactions.
Note: This is a fun exercise that allows you to run a node that observes the network. In order to participate in Block creation (and gain block rewards), you’ll need to be selected as an Authority node by the Vechain Foundation.
Vechain’s code can be found on Github : https://github.com/vechain/thor. Nodes run the ‘thor’ client which is written in the GO language.
This guide requires a Synology Network Attached Storage. These are physical servers that you can store files on and also run software. This guide is tested with DS918+ running DSM 6.2.2.
Install Docker
For this guide, we’ll be using the official Docker package. This allows the easy install of the Vechain Thor node without the hassle of compiling the code from source. Install Docker via the “Package Center”
Pull the Vechain/thor docker image from the Registry
Open up Docker and access the “Registry” tab. Here you’ll get the option to search for “Vechain” and download the Vechain/thor docker image.
Launch the Docker Image
Now comes the final part – launching the Docker image with the correct settings. In the Launch menu, select “Advanced settings” -> “Volume” and add a folder. Personally I created a folder in “docker/vechain” and mounted it to “/root/.org.vechain.thor“. This will allow the client to store the blockchain safely a designated folder on your NAS.
Lastly add the execution command “–network main“. This tells Thor to connect to the vechain mainnet.
After this apply the settings and click “Next” and “Apply” to launch the Docker container.
Happy Observing
Now you’re done! The observer node should will be running and receiving blocks.
You can see the progress of the node as it synchronizes with the network.