How to Update Your Monero Node

If you followed our previous guide how to set up your Monero node, you will eventually need to update the daemon to the latest version. Luckily it is a simple process to do, and in most cases, does not require resyncing the blockchain from scratch. First you have to understand the difference between point and major releases in the Monero project to understand the importance of staying up to date, especially with major releases.

Point Releases

In general, your Monero node will still be able to communicate with other nodes if you haven’t updated it after a point release (for example: 0.12.0.0 -> 0.12.1.0). It is still advisable to update as soon as practical to the latest point release, as stability & security issues are often resolved through these versions.

Major Releases

On the contrary, it is mandatory to update your daemon before a Monero scheduled hard fork that typically happens around every 6 months (0.11.x.0 -> 0.12.x.0). Hard forks are always announced in advance on getmonero.org and the official Monero subreddit. After the blockchain forks off to the latest version, it is deliberately not backward compatible with prior versions.

If you don’t update prior to a hard fork, your node will stop syncing the latest blocks from its peers that have updated to the latest major release. It may sync invalid blocks from other stragglers that have not yet updated, making it impossible to update without using the monero-blockchain-import --pop-blocks command to manually erase any blocks above the block height of the hard fork.

Any transactions you send through the outdated node will be propagated on the old, deprecated blockchain; it will thereby fail to show up on any Monero block explorers such as MoneroBlocks.info or ExploreMonero.com. The only way to remedy that would be by resending your XMR transaction through a node running on the current version. If you operate an open node for other people to use, please pay special attention to the hard fork dates to avoid confusing users of your node.

Updating the Monero Daemon

The following instructions apply for updating your node regardless if it is a point release, or major release – provided that you update to the major release before the hard fork occurs.

Always backup your wallet seed prior to attempting an update, if you have any funds stored on the same computer where you run your node. This would normally not be the case for a remote node, but could apply to you if running a node locally.

  1. SSH into the terminal, if you are running the Monero node on a remote server.
  2. Stop the currently running Monero daemon. sudo systemctl stop monerod
  3. Download the latest binaries from the official Github repository for your OS and architecture. wget https://github.com/monero-project/monero/releases/download/vx.xx.x.x/monero-linux-x64-vx.xx.x.x.tar.bz2 
  4. Verify the integrity of the package you downloaded by using the SHA256 hashes published on GitHub and signed by Riccardo Spagni (fluffypony)’s GPG key. sha256sum monero-linux-x64-vx.xx.x.x.tar.bz2
  5. If the hash checks out, proceed by extracting the binaries from the .tar.bz2 archive. tar -xvjf monero-linux-x64-vx.xx.x.x.tar.bz2 && cd monero-vx.xx.x.x
  6. Copy the binaries from the extracted folder into your PATH, such as /usr/local/bin. It will automatically overwrite the previous version on your system. sudo cp * /usr/local/bin
  7. Restart the Monero daemon. sudo systemctl start monerod
  8. Check that the service is running systemctl status monerod and that it’s syncing with the latest blocks by viewing the output of monero.log in your .bitmonero directory.  The .bitmonero directory is located in your home directory by default ~/.bitmonero, or on the external volume you specified when setting up the node, such as /mnt/monero_data/.bitmonero.

Remember to download the latest version of the Monero client as well, and point it towards your Monero daemon using the --daemon-address flag if using the CLI client, or the “Settings” pane of the GUI client. If running a local node, the address will be127.0.0.1:18081. Otherwise use the IP address or hostname of the remote node, followed by the standard port 18081, or 18089 if set up for MoneroWorld services.