I used to be under the impression that a mining node was the only type of node that mattered. After all, the true blockchain is always the one with the most proof of work right?
After I recently lost a twitter beef, I realized I had severely underestimated the value of running a non mining node. In this post, I will describe what a full node does, how it adds security to the network, and how it gives you, the user, more autonomy and control.
Note: Throughout this post, I will discuss nodes using Ethereum as the primary example. Most, but not all, of this information can apply to Bitcoin as well.
How Non Mining Nodes Help You
In my previous post, I discussed how I realized I was reliant on third parties like Etherscan, MyEtherWallet and Infura (Metamask) to access the blockchain. Although they have done an excellent job at on-boarding hoards of users to crypto, these services still qualify as central points of failure. A crucial tenant of blockchain technology is removing a person’s reliance on third parties because they are central points of failure and control.
The following text describes ways that running a node can increase your autonomy.
Removes need to trust a third party to send a transaction
When you use services like MyEtherWallet and Metamask (Infura), you are trusting that they will relay your transactions to the Ethereum blockchain. You are trusting that your access to these services will never be cut off.
If you run your own node, you can directly distribute your transaction to peers in the Ethereum network because you yourself are a peer.
Removes need to trust a third party to verify Ethereum transactions
When you use Etherscan to verify a transaction, you are relying on Etherscan for the true state of the blockchain. By running a full node, you have the entire history of the blockchain on your laptop. You do not need a 3rd party to verify a transaction. You can verify it yourself!
Helps increase your privacy
Nowadays, privacy feels like an increasingly scarce resource.
Nicolas Massart claims that if you are using 3rd parties to send your transaction to the blockchain, people with access to your internet log can use metadata to identify your public key and, therefore, your blockchain activity.
When you send a transaction through a synced node, Nicolas suggests it is more difficult (but not impossible) to track your activity on the blockchain.
You have a say in which fork is the true chain.
When the DAO was hacked on June 2016, 3.6 million Ether was “stolen” out of the DAO smart contract. A fork was organized by Ethereum community members to return the stolen funds to their proper owners. For a minority of members in the community however, this was an ideological no no. It was crypto blasphemy.
By effectively rewriting the history of the blockchain, Ethereum was violating one of blockchain technology’s most important features: immutability.
Running a node gave users the right to choose which fork they would consider to be the real Ethereum. Even though it was later called Ethereum Classic, to many users that was the true Ethereum all along.
People running the “Ethereum Classic” blockchain also supported Ethereum Classic during a critical time. If you were running an Ethereum Classic node at the time of the fork, you were helping spread valid transactions and blocks throughout the peer-to-peer network.
Caveats to choosing between forks
By running a node during a fork, you can choose what the true blockchain is for you, but this doesn’t mean that the value of your token will remain the same. The value of your forked token is determined by market forces outside of your control.
Refusing to hard fork may also have implications on the security of your blockchain. Hashpower adds security to your network by making double spend attacks difficult to pull off. Networks with a low hashrate are more vulnerable to double spend attacks.
Bonus Material: Learn more about double spend attacks!
- Read my article on PoW and double spend attacks.
- Read about an actual double spend attack on Bitcoin Gold.
How Non Mining Nodes Help Keep the Protocol Decentralized
Enforcing Consensus Rules
Non mining nodes do not contributing hash power to the network, but they still contribute to network security. They do this by making sure that all nodes are following consensus rules.
Nodes ensure that consensus rules are followed by only sending valid blocks and pending (unconfirmed) transactions throughout the peer-to-peer network. If a node receives an invalid block, nodes will not only refuse to include that block in their local blockchain, they will also refuse to pass on that information to their peers.
Helping Sync Other Nodes
By running a node, you help other people become a peer in the peer to peer network.
In order to fully sync a node, you need data about the state of the blockchain. So where is this data stored? With your peers.
When you run a node, you connect to other peers (nodes) in the Ethereum network. The Parity node I am running currently connects to a maximum of 25 peers at any given moment.
Peers help each other sync by:
- Sharing all historical blocks and states in the Ethereum network and
- Sharing the latest blocks mined in the network.
I am convinced that running your own node is extremely important for achieving true decentralization. I am very proud to state that I am finally a peer in the peer-to-peer network! I am running a fully synced Ethereum node.
Despite this achievement, I still do not know how to verify transactions. Secondly, it appears that nodes were created with the intention of being used primarily through a command-line interface. Parity does have a user interface, but it feels very limited.
Finally, I am not running an archival Ethereum node: I am running a pruned Ethereum node. I am still learning about the limitations of this type of node.
In future posts, I will further explore these ideas with the ultimate goal of giving you straightforward information about how to run your own node. I want to help you not only run your own node, but understand how to use it as well. I want to help you enhance your autonomy and contribute to true decentralization.
Thanks for reading!
Was I missing an important detail in this article? Let me know!
What are other important reasons to run your own node?
How else does running a full node benefit you?
How else does running a full node support the Ethereum network?