Skip to content

Releases: hyperledger-iroha/iroha

1.1.3

06 Apr 16:25
Compare
Choose a tag to compare

This patch release is for Docker Release Image only. Dockerfile now adheres to the best practices and the entrypoint allows to run irohad with custom flags and Iroha tools from container.

Docker

  • Command line option support in Docker entrypoint.sh: #429

Infrastructure

  • Fix Iroha Develop Dockerfile: #435
  • Fix Iroha Release Dockerfile: #444, #452

Please see the notes for the previous releases here: https://github.com/hyperledger/iroha/releases.

1.1.2

23 Mar 17:43
Compare
Choose a tag to compare

The main aim of this release is to fix memory leaks in MST components, introduce a new option for quick node restart and also make some other improvements.

Infrastructure

Fixed Docker develop image for Python 3.6: #323
Updated gcc9 and CI option "push demo": #365
Fixed MacOS CMake tool chain file path: #357
Easier build with unified vcpkg scripts: #367
CI: runtime vcpkg: #368, #404
Logger: removed fmt library version from exception: #375
Documentation: added CA certificates to Linux prerequisite packages list: #391
Fixed the tbb library repository address in vcpkg: #417

Quick Node Restart

Now, if your node or network failed, you can quickly restore it without waiting for full synchronization by reusing the World State View:
Documentation: #340, #352
Code changes: #335, #356

MST Processing Improvements

Fix for MST propagation: #354, #379
Reworked expiration and new configuration parameter: #363
Documentation for the new MST stale threshold parameter: #380

1.1.1

20 Sep 12:06
Compare
Choose a tag to compare

This is the 1.1.1 patch release. This patch is for consensus only. Some calls to send the consensus state were incorrectly ignored by the peer which went down and turned back up. Additionally, supermajority was incorrectly calculated with Byzantine-fault tolerance assumption, despite consensus being crash-fault tolerant.

We are actively working on Byzantine-fault tolerant consensus implementation at the moment.

Consensus

  • Docs/ CFT YAC (#252)
  • Yac: switch supermajority checker to CFT (#253)
  • gRPC: add UNAVAILABLE to list of retryable codes (#254)
  • Yac: recreate channel and stub on each send (#255)

Please see the notes for the previous releases here: https://github.com/hyperledger/iroha/releases.

1.1.0

24 Jul 18:14
Compare
Choose a tag to compare

What's new?

PostgresOptions: Explicit control over destination database: #136

GRPC: client will now retry on failure: #129

Seamless, transparent and resource-effective native super retry policy.

New features in API:

RemovePeer command: #134
GetPeers query: #131
CompareAndSetAccountDetail command: #156
And also the respective permissions.

Hyperledger Ursa to cmake build system: #126

First steps for HL Ursa integration!

vcpkg Linux integration: #141

Simpler dependency management and Dockerfile

Ametsuchi:

fixed SOCI connection:#68, #106
storage simplification: #64
SOCI: fixed flatMapValues: #71
PostgreSQL command executor: simplify setAccountDetail: #91
default database name when user does not provide one: #105
transaction executor class: #109
Ametsuchi commit result: #84

Pagination:

GetAccountAssets pagination: #98
Pending Transactions Storage queries pagination: #116
GetAccountDetail pagination: #124
Fixed mock query for paginated account details: #137

Changes in processes:

Got rid of develop branch: #67
Moved deployment scripts to a separate repository and deleted the deploy directory from the main repo: #74
Windows builds: #102
Nightly builds for CI 🌚: #163
Applied code formatting to cpp and hpp files: #164
Fixed clang-format output on CI: #153

Testing improvements (including fixes of failing tests and fuzzing):

Query mocks: #120
ITF: fixed init failure handling: #70
ITF: reworked checker queues: #72
Fixed add peer test: #73
Google oss-fuzz preparations: #82
Fix MSAN failing tests: #83
Fuzzing fixes: #86
postgres_query_executor_test fix: #93
OneLargeAndManySingleVoteGroups test fix: #65
Renamed some common constants: #121
MstTransportGrpc testable without server: #115
Testing: fixed initialization race of PostgreSQL credentials: #168
Fixed result checkers for void type: #146
Mock command factory will expect calls: #147
multisig_tx_pipeline_test is now deterministic: #170

Fixes:

MST pending transactions storage inconsistency: #162
Transaction pagination: #77
CI on MacOS: #94
Fixed configuration loader: #60
Moved consensus objects earlier in destruction order to fix segfault during destruction: #169
MST expired incoming state logic: #56

Documentation:

Reworked architecture documentation: #80
Added an additional flag for Postgres docker: #87
Removed a deprecated note from the main page: #112
Block scheme: #152
Execution model and shared objects docs: #130

Refactored:

the result bind: #101, also expected::Result improvements: #122
ProtoQueryResponseFactory: #142
PermissionSet: #118
PgConnectionInit: #135
shared_model::Command structure: #111
shared_model::TransactionResponse structure: #158
Less code, same logic

Huge StorageImpl refactoring: #123

Connections can now be created outside the storage which is very convenient for testing and PostgresBlockStorage.

Other changes:

No more storage and YAC dependencies on common-object-factory: #161

SQL: moved reset sql statements to PgConnectionInit: #145

1.0.1

24 Jun 11:53
Compare
Choose a tag to compare

This is the 1.0.1 patch release. This patch is for multi-signature transactions only. Some multi-signature transactions received from other peers were incorrectly marked as expired.

MST Components

  • MST: fixed expired incoming state logic (#128)

Please see the notes for the previous releases here: https://github.com/hyperledger/iroha/releases.

1.0.0

06 May 21:32
Compare
Choose a tag to compare

Hello!

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.

Documentation:

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

Created GitHub issue template: #14, #20

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

Added readthedocs.org build status: hyperledger-iroha/iroha-dco#2171

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

DevOps:

Refactored Ansible role: #24

Updated the CI: hyperledger-iroha/iroha-dco#2205

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

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

Switched from Oracle JDK to OpenJRE for SonarQube: #38

Tests:

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

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

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

Integrated a database into Locust load tests: hyperledger-iroha/iroha-dco#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-iroha/iroha-dco#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-iroha/iroha-dco#2204

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

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

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

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

Synchronization

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

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

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

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

Made it possible to synchronize a large blockstore: #48

Ordering Components

Batches propagation for (reject, commit) case: hyperledger-iroha/iroha-dco#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-iroha/iroha-dco#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-iroha/iroha-dco#2166
No more node hangs in ordering components

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

Fixed ordering event scheduling: #57

Storage

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-iroha/iroha-dco#2182

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

Other Improvements:

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

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

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

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

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

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

Updated Jinja version: hyperledger-iroha/iroha-dco#2221

Reordered validation rules in Postgres executor: hyperledger-iroha/iroha-dco#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