Harmony binary v2.3.4 was released on Aug 18, 2020. This release include the following PR feature changes:

  • Binary CLI Overhaul (#3278)
  • Rosetta integration implementation Part 1 (on-going) (#3297)
  • Optimizations and bug fixes (#3295, #3288)

NOTICE:

  • This release breaks the backward compatibility of node.sh.
  • To update the binary for this release, please checkout Appendix: Upgrade to v2.3.4.

Release Highlights

New CLI Interface

Previously, node operators are forced to use node.sh as the only source for starting a harmony node. node.sh was initially introduced to enable features such as auto-update binary, configure network settings, sysctl environment settings, e.t.c. However, node.sh becomes a monster wrapper and it is hard for a new validator to use it. Moreover, it also introduce several security issues with the auto-update features.

Thus, as requested at #3110, the binary CLI is redesigned and rewritten to provide a clean and easy-to-use interface as an alternative to node.sh. Node operators can still use the node.sh for running the harmony node, but it is not recommended and will be deprecated in the near future.

(New harmony binary file can be obtained by downloading through https://harmony.one/binary.)

To see all available commands and flags, run a binary help command:

./harmony -h

With the new CLI interface, user can launch a harmony node connecting to mainnet with a simple command (assume BLS key already configured at ./.hmy/blskeys):

./harmony

To run a node with public RPC HTTP and WebSocket endpoints:

./harmony --http.ip=0.0.0.0 --ws.ip=0.0.0.0

To run a node with a different RPC HTTP port other than default (9500):

./harmony --http.port=9501

For steps to run harmony node with CLI interface, check here.

More Readings:

Rosetta

Rosetta is an open-source specification and set of tools that makes integrating with blockchains simpler, faster, and more reliable. It’s a set of specifications developed by Coinbase. We will be integrating Rosetta over several releases and this release includes some. Over the next several releases we expect to have completely integrated Rosetta. To learn more, go here and here. And you can follow along on our progress here.

Optimizations and bug fixes

Appendix: Upgrade to v2.3.4

In this section, instructions for upgrading node version to v2.3.4 are provided. It’s assumed that the node is already setup with either one of the approaches:

If this is your first time to run a harmony node, please follow the full instruction here to prepare the instance and launch a harmony node.

Run node.sh with systemd

1. Stop the systemd service

sudo systemctl stop harmony

2. Backup files

mkdir -p backup
cp {node.sh,harmony} backup

3. Pick one of the three options to start the node:

  • Using binary CLI(recommended): Binary CLI allows you to have full control of all the node configuration settings. Node configuration with this option is manual.
  • Using autonode (recommended): AutoNode allows you to spin up a node seamlessly and automate common validator actions. Node configuration with this option is automated.
  • Using node.sh (not recommended): Node.sh is a wrapper to run the Binary CLI. It will be deprecated and is not recommended for new installations anymore.

4. Check running version after update:

Run harmony go-sdk with command

./hmy utility metadata

Check whether the version field of the returned JSON string is as follows:

Harmony (C) 2020. harmony, version v6268-v2.3.4-0-g7a6fd23f (jenkins@ 2020-08-17T19:56:10+0000)

Run with Auto-node

  1. Run auto-node update command
$ auto-node update
[AutoNode] Running latest, no update needed! 
[AutoNode] Would you like to reinstall anyways?

Reply `Y` or `yes` for the reinstall prompt. This will update the binary running in auto-node.

2. Check for running version

auto-node node info

Shall be able to see the latest version within the JSON response

Harmony (C) 2020. harmony, version v6268-v2.3.4-0-g7a6fd23f (jenkins@ 2020-08-17T19:56:10+0000)

For more auto-node operations, please check out the detailed auto-node handbook.