Priority | MUST |
---|---|
Type of change request | FEATURE |
Epic link | https://jira.hyperledger.org/browse/IR-567 |
Status | DRAFT |
Target release |
Vision
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:
- 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)
- An ability to operate with multi-signature transactions (MST)
- 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 (saving and loading transactions or queries to a file / from a file, etc)
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.
Functional details:Â
Environmental objectives:Â None
ChangelogÂ
# | Change description | Affected component | Change motivation | Dependency (optional) |
---|---|---|---|---|
1 | What is changed | Where it is changed | Why it is done | After #1 Before #1 etc. |
Research strategy
# | Research activity | Details | Acceptance criteria | Responsible (accepter)Â |
---|---|---|---|---|
1 |
Documentation effort
# | Target reader | Documentation description |
---|---|---|
1 |
QA activity
# | Validation activity | Intention | Actions | Expected result |
---|---|---|---|---|
1 | Testing | Test component X and check if … | Given X, When Y AND When Y1 | Then Z OR Then Z1 |