Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
In this release following changes were made:
Uploading of Iroha build artifacts
Artifacts are now available on https://artifact.soramitsu.co.jp for downloading:
- macOS Iroha binary
- linux Iroha binaries
- Android, Java, Python bindings
In the following releases, more bindings are coming!
Fix of critical vulnerabilities discovered during the security audit
Previously, several problems existed:
- Blocks can be signed more than once by the same peer (fixed in #1193)
- Transactions can be signed more than once by the same signatory (fixed in #1302)
If ed25519 library was modified to use a non-deterministic nonce, these vulnerabilities were likely to be used. Thanks to @dhuseby who helped us to unveil this tricky part of ed25519.
Previously, gRPC message was limited to 4MB. Regarding our release stage, we decided to get rid of this limitation. Right now anyone can send huge messages over the peer network. It is a potential attack vector, so we will fix it in following releases.
Integration test framework
We fixed the indeterministic outcome of tricky tests, optimized their overall runtime by 15 times on macOS hosts and by 3 times on linux hosts (#1338)
Now our client library (shared model) can be built with Microsoft compiler, and respective tests can be built and ran in this environment.
Hyperledger Iroha codebase MSVC support is coming in next releases.
Genesis block generation from a transaction
iroha-cli --genesis_block --genesis_transaction transaction.json #1168
Error message to response, if stateless validation has failed
ToriiResponse has field
error_message with the error description of a transaction
ErrorResponse has field
message with the error description of a query
QueryResponse has hex-encoded query hash instead of binary hash
Client libraries & shared model
Finished transition to shared model.
Transaction counter is no longer used in the transaction structure. Replay attacks are going to be prevented with transaction hash on peer side.
A regular queue is replaced with a priority queue in ordering gate so that proposals are propagated in order to the system if they are received in random order from the network. That causes fewer issues with simulator warnings about last block height being inconsistent with proposal height.
- Fixed: streaming
- Fixed: boost linking
- Fixed: numerous synchronization issues
- Fixed: inconsistent genesis block generation
- Fixed: possible fork attacks
- Fixed: numerous permission issues
- Fixed: segfaults when the ledger doesn't contain blocks
- Fixed: numerous memory management issues
- Fixed: copyright and licensing issues (mostly)
- Other minor fixes