What is a full node?
A full node is a special ‘server’ copy of the Gulden software, with no wallet, that fully validates transactions and blocks and is configured to allow incoming connections from other clients on the network.
Almost all full nodes also help the network by accepting transactions and blocks from other full nodes, validating those transactions and blocks, and then relaying them to further full nodes.
Most full nodes also serve lightweight clients by allowing them to transmit their transactions to the network and by notifying them when a transaction affects their wallet, If not enough nodes perform this function, our mobile wallets (iOS and Android) will perform poorly. It is therefore very important for the network that we continue to grow our network of full nodes to keep pace with our mobile growth.
Many people and organizations volunteer to run full nodes using spare computing and bandwidth resources — but more volunteers are needed to allow Gulden to continue to grow. This article describes how you can help and what helping will cost you.
Full nodes have certain requirements. If you try running a node on weak hardware, it may work but you’ll likely spend more time dealing with issues, and may actually negatively impact the overall network performance.
Should you can meet the following requirements, you’ll have an easy-to-use node that benefits everyone.
1. It is recommended that at least 512mb or 1gb of swap space be enabled on the server, swap space is well documented so will not be covered in this guide: see https://unix.stackexchange.com/questions/238783/how-can-i-create-a-swap-file for a basic guide.
2. 10 gigabytes of free disk space .
3. 1 gigabytes of memory or more (2gb ideally) .
4. A broadband Internet connection with upload speeds of at least 400 kilobits (50 kilobytes) per second.
5. An unmetered connection, a connection with high upload limits, or a connection you regularly monitor to ensure it doesn’t exceed its upload limits.
6. 6 hours a day that your full node can be left running. Ideally permanently.
For those who don’t have existing servers suitable for the task, a server from Digital Ocean,transip ,Vultr or Linode for instance is perfect for the task. A 2gb ram with 100mb/s or more package will be adequate.
Of course we don’t want all nodes to be at the same location so this is just an example, the more diverse the servers on our network the better.
The following instructions describe setting up a full node on a 64 bit Ubuntu 14 server via an ssh console. Similar steps can be followed on other operating systems.
1) Create a directory for the software
2) Download the installer
tar -xvf Gulden-126.96.36.199-x86_64-linux.tar.gz
3) Create a data directory
4) Configure the server
add the following lines:
Where xxx and yyy are securely generated settings of your own that you have chosen. 20 is the recommended setting for low end machines, for higher system specifications set this to a higher number.
If you are bandwidth limited you can also optionally add
maxuploadtarget= to the config.
5) Open the ports you need and enable the firewall
sudo ufw allow ssh
sudo ufw allow 9231
sudo ufw enable
6) Run the server
./GuldenD -datadir=./datadir &
7) At this point you have a working full node — however you might want to set up a script to make it easier to start it in future.
killall -9 GuldenD
rm -rf seeddata/peers.dat
./GuldenD -datadir=./datadir &
8) As further final configuration you might want to add the above script to the bottom of /etc/rc.local so that it runs on boot.
Wait half an hour or so to allow the client to sync and then run:
./Gulden-cli -datadir=datadir getconnectioncount
./Gulden-cli -datadir=datadir getpeerinfo
If you don’t get a reasonably high count, and at least some connections marked as inbound then something is wrong.
Miners, businesses, and privacy-conscious users rely on particular behavior from the full nodes they use, so they will often run their own full nodes and take special safety precautions. This document does not cover those precautions — it only describes running a dedicated full node to help support the Gulden network in general.
Please consult an expert if you need help setting up your full node correctly to handle high-value and privacy-sensitive tasks.
It’s possible and safe to run a full node to support the network and use its wallet to store your Guldens, but you must take the same precautions you would when using any Gulden wallet. Please see the securing your wallet page for more information.