# Node Owner Guide
You can run a Waves node for the following purposes:
- Own project: Get up-to-date blockchain data and use your node's API without having to trust a third party. Send transactions from your node. Tweak your own node to setup extended functionality for your project.
- Block Generation: Earn a share of the block reward and transaction fees.
You can run Waves node on an ordinary computer. Having WAVES on the node's balance is only required for block generation.
Before you start, we recommend that you learn the basic concepts in the Waves Node article.
# Install a Node
There are different options to install Waves node. The installation methods are explained in Install Waves Node article.
# Get Actual Blockchain
A running node requires blockchain database. Use one of the methods described in Synchronize Waves Blockchain article to get the latest blockchain database.
# Upgrade a Node
When you own a node, check the Releases page for the latest updates on a regular basis. Releases of new versions of node come with release notes document describing the new features and telling the node owner what actions to take to upgrade, depending on the type of the update. For details about upgrading see Upgrade Waves Node article.
# Deal With Forks
Fork is the moment when a blockchain splits in two seperate ones. Forks can happen because of node version difference (for example, when your node is of older version and does not support functionality of the newer ones). Also, forks can be caused by malicious attacks or system failure. A running node receives information from other nodes and monitors "the best blockchain" (that is the one that has the biggest generating balance). If the node spots a "better" blockchain that had split (forked) from the current one not more than 100 blocks ago, it can automatically switch to it. If it split more than 100 blocks ago a forked node continues generating blocks, but it does not communicate with other valid nodes.
You can check the blockchain height or the last 100 signatures of blocks to understand if your node is on fork or not. Use chaincmp utility to compare blockchains on your node and the reference nodes. Chaincmp utility indicates whether you are on the same blockchain with the reference nodes and if not it provides recommendations on further actions.
Your node can be on fork with height less than 2000 blocks or more than 2000 blocks.
- In case that your node is on fork with a height less than 2000 blocks, you can implement rollback and restart the node to begin generating blocks as described in Rollback Waves Node article.
- Otherwise, you need to go with one of the options described in Synchronize Waves Blockchain article.
# Node Go
In addition to standard Node implementation on Scala programming language, there is another (alternative) Node implementation on Go language.