Hey everyone,
This is Jacky, core protocol developer at Harmony. Recently I am on the project of removing node.sh 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 node.sh
Currently we are recommending to start harmony node using node.sh. However, node.sh is not that user friendly since the
- bash script is too long and too complex to get through all the logics
- 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 node.sh. So we decided to build a clean, user-friendly and professional command line interface to replace node.sh.
What we have done so far
Totally removing node.sh 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 node.sh 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 node.sh and harmony have been changed, and new binary is 100% compatible with old node.sh as well as the way new node.sh is called, which means it’s not required to update node.sh
or execution command.
On the other side, it is also recommended that you learn the following facts for this update:
- 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
. - A
-C
flag is added to newnode.sh
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 startnode.sh
, it is recommended that you add a-C
flag when start a node. -
-M
flag for multi-bls key is deprecated, since multi-bls feature is enabled by default. - 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
.
TODOs
We are continuously spending efforts to get rid of node.sh. 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 node.sh 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