Skip to content

Releases: hyperledger/iroha

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-archives/iroha#2194

Created GitHub issue template: #14, #20

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

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

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

DevOps:

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

Tests:

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

Synchronization

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

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-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