Page tree
Skip to end of metadata
Go to start of metadata
Priority

MUST

Type of change request

FEATURE

Epic linkhttps://jira.hyperledger.org/browse/IR-567
Status

DRAFT

Target release



What happened to existing iroha-cli?

The existing CLI tool for Iroha is built on C++ and uses legacy primitives. It was not updated for a long time and it is considered relatively hard to maintain. It was decided to discontinue support of the existing CLI and archive its source code.

What's next?

The new CLI is going to be developed to substitute the outdated one.
The key features of the new CLI are:

  • An ability to operate with multi-signature transactions (MST)
  • An ability of fine-tuning of transactions/queries content (e.g. specifying of creation timestamp)
  • All the recently added commands, queries and permissions to Iroha have to be supported in CLI (in general, the CLI has to support everything that the latest Iroha can do)
  • Improved interactive mode experience
  • A way for genesis blocks composing
  • Everything that was broken has to work (smile) (saving and loading transactions or queries to a file / from a file, etc)
  • Command-line parameters support (it has to be possible to do actions not exclusively in an interactive mode but using sole command line parameters too) *

Besides the items listed above, the new CLI is going to be written in Python 3 and uploaded to PyPi repository. Such an approach gives us a benefit of ease of use and there will be no more need to compile and, in the worst case, the need to set up an environment to build a C++ app with potential dependency hell resolution pleasure.

* -  the last item is considered as the last priority feature due to quite developed state of Iroha client libraries (Java, Python, Swift, JS)?

Functional details

If possible, the new CLI has to use all the benefits of protobuf reflection opportunities. For example, whenever it possible CLI code should not be necessary updated when a new Iroha proto scheme is released (it should be enough just to specify the path to updated proto files).

  • No labels

1 Comment

  1. This library from google combined with an auto-generated/updated Python client library (from the proto files) could make for a potentially low-maintenance CLI:

    https://github.com/google/python-fire