Maintaining a Symbol Node¶
- Regular nodes only need to take care of the Server updates section.
- Voting nodes also need to read the Voting key renewal section.
New Symbol server versions will be released periodically. If you want to benefit from the added features and bugfixes you will need to update your node to use the latest server version.
Additionally, if your node’s server version falls too far behind, other nodes might refuse to connect to it.
Finding out what are the latest versions:
Whenever there is a new server version released it will be announced through the NEM Forum and the Slack channel. You can also keep an eye on the different GitHub repositories and the compatibility matrix page to know the latest Server and REST versions.
Finding out your node versions:
You can find the versions used by your node in the Symbol Explorer nodes list.
Additionally, if your node is an API node, you can also query it directly:
versionproperty. See an example.
versionis encoded as a single 4-byte integer, where the Most-Significant Byte encodes the Major version, and the rest of bytes are the Minor, the Micro and the Patch version.
For example, version 16777472 (decimal) is 01000100h (hex), which corresponds to version 188.8.131.52.
restVersionproperty. See an example.
restVersionis a version string like “2.3.6”, for example.
The exact procedure to update your node depends on how you created it. Read the appropriate section below.
Update nodes created with Bootstrap¶
If you used Symbol Bootstrap to create your node (following the Running a Symbol node guide), keeping it up to date is very simple.
Update Symbol Bootstrap first (see the Using Symbol Bootstrap guide for more details):
npm install -g symbol-bootstrap
Then move to the folder where the node’s data folder is (typically
target) and make a backup copy of it:
cp -r target target.BAK
Finally, stop and restart the node with the
--upgradeflag to update all necessary component versions.
The exact commands depend on whether your node was running in detached mode or not:
If you started in detached mode with
symbol-bootstrap start -d:
From the folder containing the
symbol-bootstrap stop symbol-bootstrap start --upgrade -d -c custom-presets.yml
If you did not start in detached mode:
You must have a terminal running somewhere with all the output from the server. Stop it by pressing
Ctrl+Cand then type:
symbol-bootstrap start --upgrade -c custom-presets.yml
Once the node is up and running again, and you verify that the component versions have been updated, you can remove the backup copy.
Update nodes created manually¶
If you followed the Running a Symbol node manually guide, you need to rebuild the Catapult Server and keep the previous data folder so the same accounts and cached data is reused.
In summary, you need to:
- Stop the running Catapult Server with
- Update the Catapult Server source repository with the latest version and build it again following the Catapult Server instructions.
- Restart the server from the same folder it was initially launched. Data and configuration files will be reused.
The above procedure works but brings the server offline while the new version is being built, which could be a lengthy process.
If you install the server (with
make install) instead of running it from the same folder where it is built, though, you have the option to build the new version while the previous one is still running. In this way the service interruption should be minimal.
The steps then would be:
- Update the Catapult Server source repository and build it again.
- Stop the running Catapult Server.
- Install the new version of the server.
- Restart the server.
Voting key renewal¶
If your node is a Voting node it requires a valid voting key to operate. For security these keys expire after 6 months, so you need to renew them as part of the regular node maintenance.
Read the appropriate section about renewing the voting keys depending on whether you used Symbol Bootstrap or not to build your node: