Command line tool update

Hey everyone,

This is Jacky, core protocol developer at Harmony. Recently I am on the project of removing and build the user friendly command line tool for harmony binary. Everything goes smooth by now and I would like to give you guys some updates and love to hear your feed back.

Note: This is not an announcement since current implementation is still under code review.

What is the purpose of removing

Currently we are recommending to start harmony node using However, is not that user friendly since the

  1. bash script is too long and too complex to get through all the logics
  2. It is super hard to memoize all the flags -t-o-S-t-a-r-t-H-a-r-m-o-n-y-N-o-d-e.

I believe I am not the only one bothered with So we decided to build a clean, user-friendly and professional command line interface to replace

What we have done so far

Totally removing cannot be taken in one breath. Instead, we are doing it in incremental steps. Currently, the first of many steps - refactor BLS loading logic has been implemented and will be shipped after it pass the code review. In this PR, the BLS key loading logic is removed from and reimplemented in harmony binary. Please check out the code here if you are interested, and let us hear your feedback if you have any improvement suggestions on the code.

What should node operators do to this change

This change shall not cause backward compatibility issue, and node operators are safe to keep the current command running. We are able to achieve this by putting a lot of efforts to always keeping an eye on backward compatibility, prioritizing the non-interruption service for node operators. After this change, both and harmony have been changed, and new binary is 100% compatible with old as well as the way new is called, which means it’s not required to update or execution command.

On the other side, it is also recommended that you learn the following facts for this update:

  1. New bls key files are sensitive on the extension, and different decryption algorithm will be applied to different extensions. If you are using decryption with passphrase, please make sure that your BLS key file is ended with extension .key.
  2. A -C flag is added to new to disable prompt input for BLS passphrase in case that passphrase in ,pass files is not correct. If you are using tmux or systemd to start, it is recommended that you add a -C flag when start a node.
  3. -M flag for multi-bls key is deprecated, since multi-bls feature is enabled by default.
  4. Now you can add multiple file path to -k flag to specify multiple key files to load during initial start. E.g -k myKey1.key,myKey2.key.


We are continuously spending efforts to get rid of And our next step is to refactor the command line interface of harmony binary. We will keep on with our best effort to ensure the 100% backward compatibility with the legacy version of and hopefully will present a clean and pretty command line interface to you in the end.

If you have any suggestions on this changes, please let use hear your feedback. Thank you :slight_smile:


Hey @Jacky :wave:,

For better visibility and feedback, can we ask the admins to post these topics created in the channels regularly :thinking:… Thank you!

p.s There are only a few users who check this forum and topics, reason for posting in H channels as well :+1:

1 Like

Excellent job explaining, thank you! I love seeing the improvements and progress!

Keep up the good work!

good one!

Keep up the good work!