Abstract


In Hyperledger Iroha 1, while presenting a robust set of commands and queries, the absence of certain pertinent commands and queries has been identified. As Hyperledger Iroha 1 positions itself as a foundational element for banking systems due to its support for transactions and multiple currencies, the current implementation exhibits limited advanced filtering capabilities for transactions, a crucial requirement for robust banking systems. Presently, the process of filtering transactions involves retrieving a substantial number of them and subsequently applying filters within our codebase. This approach, however, proves to be resource-intensive for both C++ Iroha's node and the Python client application.

As part of an ongoing internship project, there is a strategic initiative to enhance the query functionality by introducing optional arguments:


what

which queries

extra information

reason

Incorporate an optional parameter, "title," to facilitate the inclusion of a title when executing the AddAssetQuantity operation. This addition enhances the flexibility and functionality of the process, allowing for the seamless inclusion of relevant titles as needed.

Send Title in AddAssetQuantity


Not present in the WSV database.

Introduce an optional title parameter to the AddAssetQuantity, enhancing functionality within Iroha Core for improved message communication. Ensure corresponding handling capabilities in Iroha CLI for seamless integration.

Incorporate an optional parameter, "title," to facilitate the inclusion of a title when executing the AddAssetQuantity operation. This addition enhances the flexibility and functionality of the process, allowing for the seamless inclusion of relevant titles as needed.

Send Title in SubtractAssetQuantity

Not present in the WSV database.

Introduce an optional title parameter to the SubtractAssetQuantity, enhancing functionality within Iroha Core for improved message communication. Ensure corresponding handling capabilities in Iroha CLI for seamless integration.

Add optional argument, descriptionGetAccountAssetTransactionNot present in the WSV database.

Sometimes we need to find transactions containing some text/words. It would be great if it would be possible to have multiple fragments in the query (e.g. when we want to find transactions in the bank, we use some words which we think would be there, but we are not sure what order).

Add optional argument, destinationAccountGetAccountAssetTransactionNot present in the WSV database.Sometimes we need to check all transactions sent to a specific account.
Add optional argument, sourceAccountGetAccountAssetTransactionNot present in the WSV database.Sometimes we need to check all transactions sent from a specific account.


GetAccountAssetTransaction has a parameter account_id, which returns all transactions for the account; it is currently impossible to specify only the destination/source/tx creator account, so it needs to be fixed.

Optionally - there is a bug in Iroha 1 when we use ordering. However, this internship is connected to querying databases, so the mentee may be able to fix it.

An optional description to commands as an alternative: AddAssetQuantity and SubtractAssetQuantity can be implemented. Currently the information on why it was added or subtracted is unavailable. It can be hard to get help, though: HL Iroha 1 is not under active development.

After applying changes to queries/commands, Iroha client libraries should also be updated (probably regenerate code from the protocol buffers).
Client libraries:


Mentors

Name

Time zone

Discord ID

Telegram ID

Email ID

Aleksandr PetrosyanCEST
@m3lcorepetrosyan@soramitsu.co.jp
Grzegorz BaziorCESTbaziorek#9186@baziorekbazior@agh.edu.pl
Andrzej GruntowskiCESTByte#5828
andrzejggru@gmail.com

Mentee

Name

Time zone

Discord ID

Telegram ID

Email ID

Tomasz GruntowskiCEST



Communication channel:  Discord + Telegram + Email + Github


Project repo:

[C++ Core Iroha Lib + Iroha CLI] Introduce an optional title parameter to the AddAssetQuantity and SubtractAssetQuantity, enhancing functionality within Iroha Core for improved message communication. Ensure corresponding handling capabilities in Iroha CLI for seamless integration.

https://github.com/hyperledger/iroha/pull/4003

[Python client] Incorporate an optional title parameter into the AddAssetQuantity function for the Python client, aligning with the enhanced functionality within Iroha Core for optimized message communication.

https://github.com/hyperledger/iroha-python/pull/157

[Confluence Documentation] Update message AddAssetQuantity and SubtractAssetQuantity with extra optional parameter

https://github.com/hyperledger/iroha/pull/4032

[Base Confluence Documentation] Iroha base documentation:
https://iroha.readthedocs.io/en/develop/develop/api/commands.html?highlight=AddAssetQuantity#id80

[C++ Core Iroha Lib] Incorporate additional Protocol Buffers (protobuf) parameters to enhance the extensibility and functionality of the data model within the specified oneof constructs, ensuring a more comprehensive representation and utilization of transaction related information.

https://github.com/hyperledger/iroha/pull/3840

[Python] Integrate supplementary Protocol Buffers (protobuf) parameters into the Python client to augment the extensibility and functionality of the data model within the designated oneof constructs, ensuring a more comprehensive representation and utilization of transaction related information.

https://github.com/hyperledger/iroha-python/pull/156


Deliverables

  • Approved library design and flow

Merged PR's

  • ToDo

Final Project Presentation:

  • ToDo


Milestones

Eval 1:

  • Configured environment to handle development library inside Hyperledger Iroha's main repository
  • Prepared final design of extended queries with optional arguments

Eval 2:

  • Completed extended queries with optional arguments

Eval 3:

  • Completed well defined documentation

Eval 4:

  • Clean up, refactoring and debugging new features
  • Present final results

Timeline

Dates

Tasks/Plan

Status

June 1 - June 14

Getting familiar with Iroha documentation and starting example database.

Building and running Iroha from code.

Mentee intro with the mentor. Introduction to the concepts of Hyperledger Iroha 1.

Build and run Hyperledger Iroha node (Irohad) and Iroha-cli from source.

Send sample commands and queries via Iroha-cli with succeed.

Done
June 15 - June 28

Send sample command and queries via Iroha-Python and Iroha-Java library.

Reading Iroha code. Getting familiar with iroha transactions, queries and statuses.

Done

June 29 - July 12

Get familiar with GRPC protocol (e.g. protobufs).Done
July 13 - July 26Add parameter creator_id to queries.proto. Modify query to database. Modify protobufs for Python code. Run compile-proto.py.
July 27 - Aug 9Changes in Iroha core.Done
Aug 10 - Aug 23Changes in Python library for Hyperledger IrohaDone
Aug 24 - Sept 6More changes in Iroha code. Focus on protobuf changes. Update configuration and documentation files.Done
Sept 7 - Sept 20Create pull request with Iroha C++ changes.Done
Sept 21 - Oct 4Create a pull request with Iroha python changes.Done
Oct 5 - Oct 18Make integration tests with new parameters.Done
Oct 19 - Nov 1Accommodate iroha core changes to the iroha-lib.Done
Nov 2 - Nov 12Rebase changes to the one commit. Final modifications.Done



Project results

Completed

[C++ Core Iroha Lib + Iroha CLI] Introduce an optional title parameter to the AddAssetQuantity and SubtractAssetQuantity, enhancing functionality within Iroha Core for improved message communication. Ensure corresponding handling capabilities in Iroha CLI for seamless integration.

https://github.com/hyperledger/iroha/pull/4003

[Python client] Incorporate an optional title parameter into the AddAssetQuantity function for the Python client, aligning with the enhanced functionality within Iroha Core for optimized message communication.

https://github.com/hyperledger/iroha-python/pull/157

[Confluence Documentation] Update message AddAssetQuantity and SubtractAssetQuantity with extra optional parameter

https://github.com/hyperledger/iroha/pull/4032

[Base Confluence Documentation] Iroha base documentation:
https://iroha.readthedocs.io/en/develop/develop/api/commands.html?highlight=AddAssetQuantity#id80

[C++ Core Iroha Lib] Incorporate additional Protocol Buffers (protobuf) parameters to enhance the extensibility and functionality of the data model within the specified oneof constructs, ensuring a more comprehensive representation and utilization of transaction related information.

https://github.com/hyperledger/iroha/pull/3840

[Python] Integrate supplementary Protocol Buffers (protobuf) parameters into the Python client to augment the extensibility and functionality of the data model within the designated oneof constructs, ensuring a more comprehensive representation and utilization of transaction related information.

https://github.com/hyperledger/iroha-python/pull/156


Presentation

Completed

  • No labels