Iroha Weekly Updates 9 #irohaweekly


Nikolay Yushkevich <nikolai@...>
 

Want to know what we’ve recently done? Here is our weekly update for W28 🔥:

Major
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)  https://github.com/hyperledger/iroha/pull/1485  https://github.com/hyperledger/iroha/pull/1558 (fix)

“On-demand” ordering service implementation. In August, Ordering Service of Iroha is going to be Byzantine Fault-Tolerant, and this code introduces new behavior of peers — where they would ask each other for a proposal https://github.com/hyperledger/iroha/pull/1484

#HelpWanted we need someone with skills of animating algorithms, especially in distributed systems. This would help us to explain Ordering Service component behavior to a broader audience 

As we have decided to improve existing interface a bit, our users are able to query account information in a flexible way (check description here https://soramitsu.atlassian.net/browse/IR-1199) https://github.com/hyperledger/iroha/pull/1535 https://github.com/hyperledger/iroha/pull/1540

Pluggable storage with SOCI library. It also bundles a nice thread pool for faster interconnection with PostgreSQL https://github.com/hyperledger/iroha/pull/1505

Middle
Retrieval of pending transactions from Iroha. When a transaction is sent and it requires more signatures — accounts can query Iroha peers in order to get such transactions https://github.com/hyperledger/iroha/pull/1532 https://github.com/hyperledger/iroha/pull/1548 https://github.com/hyperledger/iroha/pull/1552 

Transaction status streaming was rewritten completely with RxCpp (if you don’t know what is this check https://github.com/ReactiveX/RxCpp) https://github.com/hyperledger/iroha/pull/1541

Synchronization of expired blocks, which was a small yet annoying bug in process of peer synchronization https://github.com/hyperledger/iroha/pull/1521

Validation of transaction batches. Soon we would have a ready-to-use solution for transaction batch processing, that would check if all involved parties have signed the batch https://github.com/hyperledger/iroha/pull/1549

Fuzzing Iroha input. Now, libfuzz checks the input in a client module (called Torii). What is awesome is that our protobuf messages are mutated as well. Isn’t this an awesome thing? https://github.com/hyperledger/iroha/pull/1531 

Blocks are not directly copied now in C++ (and a move is a bit faster) https://github.com/hyperledger/iroha/pull/1542

Our proto schema files have been prettified finally https://github.com/hyperledger/iroha/pull/1550

Minor
Check the size of signatures set https://github.com/hyperledger/iroha/pull/1536
Concurrent fix for abstract cache https://github.com/hyperledger/iroha/pull/1560
Increase precision lifetime in insertAsset https://github.com/hyperledger/iroha/pull/1562

P.S. Stay tuned for progress in https://github.com/hyperledger/iroha/pull/1557 — these optimizations are expected to deliver a faster throughput

#IrohaWeekly