Releases: hyperledger-iroha/iroha
1.1.3
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
Please see the notes for the previous releases here: https://github.com/hyperledger/iroha/releases.
1.1.2
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
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
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
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
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