This repository has been archived by the owner on Apr 17, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 295
Hyperledger Iroha v1.0 beta-4 version #1597
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Signed-off-by: Artyom Bakhtin <[email protected]>
@lebdron @igor-egorov can we review Codacy issues and decide if we need to put them in backlog? |
Command validator now has error messages Signed-off-by: Akvinikym <[email protected]>
- Add IntegrationTestFramework::sendTxAwait - Reuse AcceptanceFixture primitive in TA test - Move out primitive methods in fixture - Fix (and rename accordingly) WithOnlyCanTransferPerm/WithOnlyCanReceivePerm tests - Rename tx_counter in AcceptanceFixture Signed-off-by: Kitsu <[email protected]>
Signed-off-by: Kitsu <[email protected]>
Signed-off-by: Uditha Atukorala <[email protected]>
Signed-off-by: Kitsu <[email protected]>
* Remove PermissionSet constraints for emptiness * Add CreateRole permissions validation per element * Add InvalidCreateRolePermission validator test Signed-off-by: Kitsu <[email protected]>
Signed-off-by: Kitsu <[email protected]>
Signed-off-by: Andrei Lebedev <[email protected]>
Signed-off-by: Dumitru <[email protected]>
Signed-off-by: Artyom Bakhtin <[email protected]>
6fa98b1
to
57d2f2a
Compare
Signed-off-by: Anatoly <[email protected]>
Signed-off-by: tyvision <[email protected]>
Stateful error responses are now written to log Signed-off-by: Akvinikym <[email protected]>
Signed-off-by: Kitsu <[email protected]>
Signed-off-by: Kitsu <[email protected]>
The behavior of createRole command was changed, so the tests had to be updated. Signed-off-by: Igor Egorov <[email protected]>
* Update proposal and block validators Signed-off-by: kamilsa <[email protected]>
Signed-off-by: Kitsu <[email protected]>
* Add check for Command variant case * Add check for Query variant case * Add related tests Signed-off-by: Kitsu <[email protected]>
Feature/batch meta #1504 Signed-off-by: Sergei <[email protected]>
Signed-off-by: Igor Egorov <[email protected]> Before the change it was not possible to build grpc_grpc target with protobuf installed in a system and without installed grpc.
Signed-off-by: Artyom Bakhtin <[email protected]>
Docker images push on existing develop branch PR
set_pattern could be called simultaneously from several threads affecting global context. The similar issue - gabime/spdlog#419 Signed-off-by: Igor Egorov <[email protected]>
Signed-off-by: Artyom Bakhtin <[email protected]>
Signed-off-by: Andrei Lebedev <[email protected]>
* fix docker push Signed-off-by: Artyom Bakhtin <[email protected]> * handle exception earlier Signed-off-by: Artyom Bakhtin <[email protected]> * fix missing property Signed-off-by: Artyom Bakhtin <[email protected]>
Signed-off-by: Andrei Lebedev <[email protected]>
Release is blocked with quality gate. Need to review & localize test issues before releasing |
Signed-off-by: Akvinikym <[email protected]>
Components where the factory is used: - ordering service, simulator Signed-off-by: Nikita Alekseev <[email protected]>
The test (StreamingFullPipelineTest) was failing on slow machines. Investigation showed that the root cause was the way thread scheduler works, so the code was generally valid. Streaming client resubscription is a fully valid use case of streaming service. The client can resubscribe to the stream if the previous stream was ended unexpectedly for the client. Unexpectedly means that client requests the hash of a transaction that was definitely sent to Iroha and the stream reaches its end with one of the following statuses: `NOT_RECEIVED`, `STATELESS_VALIDATION_SUCCESS`, `STATEFUL_VALIDATION_SUCCESS`. Before the fix test client was not able to resubscribe to the stream. Now it can. ```diff cmake -H. -Bbuild cd build make torii_service_test while test_bin/torii_service_test --gtest_filter=*ull* ; do :; done +this loop should not be broken up by ASSERT_EQ(last_status, COMMITTED) error message ``` Signed-off-by: Igor Egorov <[email protected]>
* remove observables in getBlocks and getTransaction methods Signed-off-by: Victor Drobny <[email protected]>
lebdron
previously approved these changes
Jul 30, 2018
* Doxygen docs Signed-off-by: Alexey R <[email protected]>
Add gdbserver to docker dependencies. Modify docker security options for remote debugging. Signed-off-by: Igor Egorov <[email protected]>
* Fix linkage errors: add stateless validation target if required * Rework transactionBatch::calculateReducedBatchHash with template instead of any_range Add toString method * Remove unnecessary header Signed-off-by: Fedor Muratov <[email protected]>
* Fix non-determinism in client test Non-determinism was introduced by status bus thread. On slow machines getTxStatus may not return expected status immediately. Additional read attempt may be required. Signed-off-by: Igor Egorov <[email protected]>
This will prevent cyclic test case fail when the first run was failed for some reason. Signed-off-by: Igor Egorov <[email protected]>
* Fix query validators; Add descriptions for types Add missed signed block query validator Rework transaction and query builder with default signed validator Signed-off-by: Fedor Muratov <[email protected]> * Fix typo in validator using name Signed-off-by: Igor Egorov <[email protected]> * Make validators naming consistent Signed-off-by: Igor Egorov <[email protected]> * Use unsined validators where it is required Signed-off-by: Igor Egorov <[email protected]> * add test for query signature Signed-off-by: Fedor Muratov <[email protected]> * Add review fixes: * clean up code * remove normal case * add additional check for stateless error Signed-off-by: Fedor Muratov <[email protected]>
SonarQube analysis reported 19 issues Top 10 issues
|
kamilsa
approved these changes
Aug 2, 2018
lebdron
approved these changes
Aug 2, 2018
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In this release following changes were made:
Faster throughput, pluggable state storage
There is less abstraction on state storage level, and validation is done with means of SQL queries. It has significantly improved the performance of Iroha peer and made it less error-prone (#1557).
State storage is plugged over ORM library titled as SOCI, which bundles a nice thread pool for faster interconnection with PostgreSQL; and makes it possible to switch to other supported SQL storage (how about using in-memory SQLite database for even faster throughput? #1505)
Stateful validation errors
All the stateful validation errors are printed in peer logs and response is sent to a client along with transaction status. Now it is a lot easier to check what went wrong with a rejected transaction (#1508)
Important note: this version of Iroha can disclose some personal data like account balance (if a transaction was statefully invalid —account can now get the reason). In the future version we will implement error codes (check them there)
Binary Testing Framework
This is a test framework that helps testing client libraries (now particularly in Python) if they produce valid transactions and queries (if permissions and other business rules were met #1485)
Transaction status streaming over RxCpp
Reactive extensions library in C++ is actively used in our architecture and now is in charge of transaction status processing (#1541)
Input fuzzing
Libfuzz checks the input in our client component (called Torii) and protobuf messages are mutated as well (#1531)
Blocks and proposals are not copied now (and their creation process is benchmarked)
A proposal is a candidate for becoming the next block in Iroha chain. The lifetime of these objects is important, this is why their creation and copying has to be minimized by means of C++ (#1542, #1567)
Creation is benchmarked by means of Google Benchmark library (#1539)
Check the size of signatures set
One of the bugs, that was revealed with help of fuzzing, was a possibly valid empty signature set attached to a transaction. This behavior was fixed in #1536.
API changes
Transaction batch support
Transaction batch is a set of transactions, which are to be applied together. There are two kinds of batches:
Important note: this feature was not implemented completely in this release, however, interfaces and SDKs have already been changed for easier integration in the future. This does not affect backward compatibility.
Check the status of development here
Amount is passed as a string. Everywhere
Code became much simpler and it is easier to create transactions without SDKs now (#1555)
Proto files were split
Client API proto files now are stored in a shared model folder, whereas as Iroha peer messages are stored in schema folder (#1550)
GetAccountDetail is a bit more powerful now
Check our documentation page
GetPendingTransactions
In order to make scenarios related to transaction batches and multisignature transactions easier Iroha has API endpoint to get transactions of transactions batches which require signing by participating accounts (#1532)
Important note: this feature was not implemented completely in this release, however, interfaces and SDKs have already been changed for easier integration in the future. This does not affect backward compatibility.
Deleted account_id from Add/SubtractAssetQuantity commands
Finally, we have deleted account_id from a previously confusing API in #1511
Roles can have an empty set of permissions
Now users can create empty roles for use cases where such a role can serve a purpose of a tag or the least powerful role in the system (#1510)
Other
Known issues
Windows build does not work at the moment, as well as JS bindings, due to their rough transition to new client libraries