Upgrade Procedure for xxnetwork-chain v0.2.6

This is a walk-through for how to perform the update of the xxnetwork-chain binary to the latest version as of July 05, 2024, version 0.2.6.

Releases are located at …

Notes:

  • If you are still on version v0.2.5 or earlier, please read the following warning.
    :warning: The new runtime 206 requires host functions that were introduced in release v0.2.5-1 . This means that once the runtime gets activated on-chain, chain binaries with version v0.2.5 or older will panic and crash. Please update your binary if your version is not at least v0.2.5-1 .

  • This upgrade is not mandatory with the exception noted above, but it is recommended.

  • This walk-through assumes the node and gateway computers were configured per the Node Handbook

  • The entire process shouldn’t take a novice Linux user more than 10-15 minutes.

  • If you’re not familiar with Linux, I suggest you proceed through the steps in the order they appear.

  • “Example Output:” is provided for commands that generate output to assist but some sample output may not be exactly as shown.

  • Please review the following process at least once to get a feel of what is required.

The xxnetwork-chain v0.2.6 Binary Upgrade Procedure:

Step 1: On BOTH computers get the current version of the xxnetwork-chain binary by running the following command.

$ /opt/xxnetwork/bin/xxnetwork-chain --version

Example Output:

xxnetwork-chain 0.2.5-2-81384c39acd

If the previous command returns xxnetwork-chain 0.2.6-617b35d134c, then you should not continue. You are running the latest version.

Step 2: Stop the xx network-chain services on BOTH computers:

2a. On the NODE computer run …

$ sudo systemctl stop xxnetwork-chain

2b. On the GATEWAY computer …

$ sudo systemctl stop xxnetwork-chain

Step 3: Run the following series of commands as they appear on BOTH the node and gateway computers:

3a. Change to the directory where the xx network binaries are located …

$ cd /opt/xxnetwork/bin

3b. Backup the existing xxnetwork-chain binary …

$ mv -v xxnetwork-chain xxnetwork-chain.bak

Example Output:

renamed 'xxnetwork-chain' -> 'xxnetwork-chain.bak'

3c. Download version 0.2.6 of the xxnetwork-chain binary …

$ curl -L -o xxnetwork-chain https://github.com/xx-labs/xxchain/releases/download/v0.2.6/xxnetwork-chain

Example Output:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 81.3M  100 81.3M    0     0  8048k      0  0:00:10  0:00:10 --:--:-- 12.8M

3d. Verify the checksum of the xxnetwork-chain binary …

$ sha256sum xxnetwork-chain

Example Output:

28f9de76476d3dbca24e0360686562b5f97b004a0c0a842bd43ec18989c5195c  xxnetwork-chain

:warning: The output above is the unique checksum for the 0.2.6 binary file and must be 28f9de76476d3dbca24e0360686562b5f97b004a0c0a842bd43ec18989c5195c. If anything else is returned, the download may have failed and you likely just need to re-run the curl command. If it still does not match after trying to download again, please stop and ask for assistance here or on the xx Network Discord Server.

3e. Make the xxnetwork-chain binary executable …

$ chmod -v +x xxnetwork-chain

Example Output:

mode of 'xxnetwork-chain' changed from 0664 (rw-rw-r--) to 0775 (rwxrwxr-x)

3f. Ensure the downloaded binary is version 0.2.6 …

$ /opt/xxnetwork/bin/xxnetwork-chain --version

Example Output:

xxnetwork-chain 0.2.6-617b35d134c

3g. Start the xxnetwork-chain service …

$ sudo systemctl start xxnetwork-chain

3h. Check the chain.log to ensure the process is running and is synced …

$ tail -F /opt/xxnetwork/log/chain.log

Depending on how log the previous steps took to complete, you may need to wait a few minutes before you see the desired messages. You want to ensure you see ✨ Imported and 💤 Idle messages scrolling by.
Example Output:

2022-06-17 08:17:42 ✨ Imported #3024475 (0x6436…3523)    
2022-06-17 08:17:42 💤 Idle (27 peers), best: #3024475 (0x6436…3523), finalized #3024472 (0xce9e…ab5b), ⬇ 235.9kiB/s ⬆ 487.7kiB/s 
2022-06-17 08:17:22 💤 Idle (27 peers), best: #3024472 (0xce9e…ab5b), finalized #3024470 (0x8c4e…c457), ⬇ 291.2kiB/s ⬆ 543.4kiB/s    
2022-06-17 08:17:24 ✨ Imported #3024473 (0x6b42…7d67)    
2022-06-17 08:17:27 💤 Idle (27 peers), best: #3024473 (0x6b42…7d67), finalized #3024471 (0x7669…21b0), ⬇ 296.4kiB/s ⬆ 590.6kiB/s    
2022-06-17 08:17:32 💤 Idle (27 peers), best: #3024473 (0x6b42…7d67), finalized #3024471 (0x7669…21b0), ⬇ 289.6kiB/s ⬆ 509.9kiB/s    
2022-06-17 08:17:36 ✨ Imported #3024474 (0xf3c8…8490)    
2022-06-17 08:17:37 💤 Idle (27 peers), best: #3024474 (0xf3c8…8490), finalized #3024472 (0xce9e…ab5b), ⬇ 598.2kiB/s ⬆ 622.8kiB/s    
2022-06-17 08:17:42 ✨ Imported #3024475 (0x65ae…b01c)

That completes the steps required to upgrade the xxnetwork-chain binary to version 0.2.6.

Troubleshooting:
To check the status of the xx network services you can run …

$ systemctl status xxnetwork-*

To check the xx network processes are running you can run …

$ ps -A | grep xxn

All logs related to xx network are located in /opt/xxnetwork/log
Feel free to ask for assistance here or on the xx Network Discord Server.

Thanks for running a node!
Keith