Skip to content
Choose a tag to compare

Hyperledger Iroha v1.0

Choose a tag to compare


A new, production-ready HL Iroha v 1.0 is here!

Following the repository squash, some of the PRs were left in the archives and some were merged after the squash but please do not worry - all of the awesome features and fixes are there and ready 👍

Here is the list of what was achieved:

New features

Added functionality of reconnection to storage_impl: #42

Introduced a feature that provides you with an option of adding a peer list (will be used instead of peers in genesis and other blocks): #47
Will be especially useful in cases when many peers in a current network state are malicious.


Fixed optional parameters description: hyperledger-archives/iroha#2194

Created GitHub issue template: #14, #20

Reworked Getting Started documentation: hyperledger-archives/iroha#2187, #40

Added build status: hyperledger-archives/iroha#2171

This pull request contains additional contribution docs on how to submit discovered vulnerabilities.: hyperledger-archives/iroha#2159


Refactored Ansible role: #24

Updated the CI: hyperledger-archives/iroha#2205

Allowed to archive binaries (located in build/bin folder) and upload it to Nexus artifact server with coredumps: hyperledger-archives/iroha#2168

Fixed Mac build agents: hyperledger-archives/iroha#2214

Switched from Oracle JDK to OpenJRE for SonarQube: #38


YAC network became testable: hyperledger-archives/iroha#2060

Fixed ITF fake peers on demand ordering test: hyperledger-archives/iroha#2067

Extended network testing facilities in ITF: hyperledger-archives/iroha#2032

Integrated a database into Locust load tests: hyperledger-archives/iroha#2119

To allow more complex analysis of test results
Fixed consensus transport and its fuzzing test: #15

Added add_peer_test: #16

Fixed several tsan issues in tests: #21

No random segfaults and locks in fake_peer_example_test: hyperledger-archives/iroha#2218

Added tests for batch pipeline: #44

Added tests for font case sensitivity of hex keys: #46

Added tests for batch validator: #45

MST Components

Fixed other peers' states cleanup in MstStorage. Refactored erasure methods & Completer: hyperledger-archives/iroha#2204

MstState gets a limit of transactions it can store. The value is configured through iroha config file: hyperledger-archives/iroha#2202

MstState: fixed issues: hyperledger-archives/iroha#2208
Fixed MstState::eraseByTime and storage cleanup.

New interface to access all batches and transactions of MST State: hyperledger-archives/iroha#2203, hyperledger-archives/iroha#2217

Let Torii know about batch_handle result for MST batches: hyperledger-archives/iroha#2220


Synchronizer: observable passthrough to ChainValidator: hyperledger-archives/iroha#2163

Synchronizer is now able to download missing blocks even when reject is happened in consensus: hyperledger-archives/iroha#2210

Another step towards removing in memory blocks accumulation during synchronization: hyperledger-archives/iroha#2165

SynchronizationEvent: removed blocks observable: hyperledger-archives/iroha#2212

Made it possible to synchronize a large blockstore: #48

Ordering Components

Batches propagation for (reject, commit) case: hyperledger-archives/iroha#2197
Recently it was discovered that round transition case is not handled by our ordering service - when there is a reject followed by a commit. This change brings this transition equal to others.

Transactions are not lost when received in reject rounds: hyperledger-archives/iroha#2199
Transactions received during reject rounds are not lost and queued for processing. Now Iroha clients do not have to resend transactions in case of "reject-commit".

Reduce lock scopes in ordering components: hyperledger-archives/iroha#2166
No more node hangs in ordering components

Ordering Service will not produce proposal bigger than max_proposal_size: hyperledger-archives/iroha#2198
And we also added configurable validators and max batch size validation: hyperledger-archives/iroha#2196

Fixed ordering event scheduling: #57


Made it possible to restore WSV without using additional storage: #52

Updated SOCI version in order to use failover for database reconnection: #35

Redirected Postgres log messages to Spdlog: hyperledger-archives/iroha#2182

Made StorageImpl respect the failure of new block insertion in Ametsuchi: hyperledger-archives/iroha#2213

Other Improvements:

Replaced TransportBuilder with ProtoBlocksQueryFactory in QueryService (Remove legacy code.) hyperledger-archives/iroha#2188

PR bringing fixes in shared_model initialization to fix potential race: hyperledger-archives/iroha#2189

Fixed coverage generation on macOS: hyperledger-archives/iroha#2153

CommandServiceImpl: fixed observer lifetime problem: hyperledger-archives/iroha#2195

Another step to reduce the number of queries to the database: hyperledger-archives/iroha#2066

Worked on event loop for pipeline processing: hyperledger-archives/iroha#2209
Consensus can now process messages from the network while the pipeline is running.

Updated Jinja version: hyperledger-archives/iroha#2221

Reordered validation rules in Postgres executor: hyperledger-archives/iroha#2228
Before the change, TransferAsset to non-existing account might lead to misleading error message "account does not have a permission". A correct error message will be produced now: account does not exist or account does not have permission for each case correspondingly.

YAC Gate now behaves when a commit message “from the future” arrives: #5
The case when a node is not voted yet but has received votes for a round is possible. Not YAC gate will behave properly in that case.

Fixed an issue for soci::use: #10

Fix batch validator for use in block loader: #27

Fixed an issue with uncaught exception in logger: #43

Refactored Result class for simpler usage: #39

Added missing validation for Key and Writer fields for GetAccountDetail: #50

Reworked Iroha Startup: #49

Updated Rxcpp version: #51

Fixed Windows build with MSVC: #55

Fixed bugs in ConfigLoader: #60