Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hyperledger Iroha v1.0 #61

Merged
merged 80 commits into from
May 6, 2019
Merged

Hyperledger Iroha v1.0 #61

merged 80 commits into from
May 6, 2019

Conversation

lebdron
Copy link
Contributor

@lebdron lebdron commented May 6, 2019

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

Andrei Lebedev and others added 30 commits April 18, 2019 16:13
Signed-off-by: Konstantin Munichev <[email protected]>
Signed-off-by: Sara <[email protected]>
[ci skip]
Direct link to Iroha in JIRA instead of top
level dashboard

Signed-off-by: Ry Jones <[email protected]>
Signed-off-by: Konstantin Munichev <[email protected]>
Signed-off-by: Mikhail Boldyrev <[email protected]>
Signed-off-by: Mikhail Boldyrev <[email protected]>
Signed-off-by: Mikhail Boldyrev <[email protected]>
Signed-off-by: Mikhail Boldyrev <[email protected]>
Signed-off-by: Mikhail Boldyrev <[email protected]>
Batch validator has to consider "ordered" batches
with missing transactions as valid.

Signed-off-by: Igor Egorov <[email protected]>
Simplify batch validator code
Add stateless validation for block factory in debug
Put the modified validators config for blocks to all required components

Signed-off-by: Igor Egorov <[email protected]>
Created blocks are stateless validated in debug mode.
The assertion was accomplished with the detailed debug messages.

Signed-off-by: Igor Egorov <[email protected]>
Signed-off-by: Artyom Bakhtin <[email protected]>
Signed-off-by: Artyom Bakhtin <[email protected]>
Now it compiles and uses the main implementaion of Yac
(like in application.cpp)

Signed-off-by: Igor Egorov <[email protected]>
The issue found by consensus_fuzz test

Signed-off-by: Igor Egorov <[email protected]>
Signed-off-by: Mikhail Boldyrev <[email protected]>
Signed-off-by: Andrei Lebedev <[email protected]>
Signed-off-by: Andrei Lebedev <[email protected]>
Remove trailing spaces
Place each sentence to own line
Split long sentences for better review

Signed-off-by: Igor Egorov <[email protected]>
luckychess and others added 24 commits May 4, 2019 16:06
* add missed passing of reconnection strategy to storage impl
* add documentation

Signed-off-by: Fedor Muratov <[email protected]>
Signed-off-by: Fedor Muratov <[email protected]>
* fix segfault at storageImpl ctor
* fix naming
* fix grammar in doc

Signed-off-by: Fedor Muratov <[email protected]>
Add task id

Signed-off-by: Fedor Muratov <[email protected]>
Signed-off-by: Mikhail Boldyrev <[email protected]>
Signed-off-by: Andrei Lebedev <[email protected]>
@lebdron lebdron requested review from luckychess and muratovv May 6, 2019 21:29
@lebdron lebdron merged commit 442a083 into master May 6, 2019
nvzhu pushed a commit to soramitsu/soramitsu-iroha that referenced this pull request Jan 9, 2024
…te-grpc-dependency

Change GRPC module to Pod dependency
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants