Releases: hyperledger/iroha
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-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