Running a Bitcoin full node is a great way to ensure the health and integrity
of the decentralized Bitcoin network. This blog post is meant to be a guide
for compiling, running, and monitoring a Bitcoin full node on a server, and as
such won't delve too much into the specifics as to what the node does, or why
it's important to the network health. If you want to know more check out 6
Reasons To Run a Bitcoin Full Node.
Put simply, running a full node will add to the large number of full nodes
running across the world to support the Bitcoin network. The nodes ensure the
rules of the protocol and consensus algorithms in place are upheld and
enforced, which is what fundamentally allows Bitcoin to work and function the
way it should.
Miners create new blocks and submit them to the network for verification - it's
the job of the full nodes to verify these blocks (groups of transactions) and
ultimately accept or reject them based on their validity. Every full node will
verify the validity of any and all blocks submitted to the network and, for
each block, decide if it will be the next new block in the chain or whether it
should be thrown out in the case that it is invalid (by either a bug in the
mining software or a bad actor trying to undermine the network). Full nodes
are the final arbiters when it comes to determining which transactions are
valid or invalid.
Provision the VM
I provisioned a fresh SmartOS 16Q4 LTS instance with the following