Skip to content
This repository has been archived by the owner on Apr 17, 2019. It is now read-only.

v0.95 preview-2

Compare
Choose a tag to compare
@neewy neewy released this 23 Nov 12:52
· 2445 commits to master since this release
1965193

This release brings following features:

Hot join of peer to the network

Now, to join the peer to the network, a member of peer network should execute AddPeer command, passing the resolvable address of the peer in the network, and its public key. This peer should already have the same genesis block in the chain.

Iroha is compatible with macOS

We want to provide an ability for developers to test and build their code in an environment, which is convenient for them. That is why each pull request to develop is checked for the compatibility with darwin.

Transaction responses

To understand the status of the transaction in Iroha, a client should retrieve it from the node, which was used to send it. Check Status endpoint and use the hash of the transaction. There are 7 states in total, related to stateless, stateful validation, consensus and external transport.

Ordering gate

Now, the responsibility of the ordering gate is to decide on how to relay the transaction to ordering service. It used to be tightly coupled, but now the ordering service is another pluggable component in the system.

Static analysis tool

Technical debt of the project codebase is checked with sonarqube, available at sonar.soramitsu.co.jp.

Improved initialization pipeline

Peer variable is removed from main class since peer can be missing from the ledger when a node is started. API of main class is improved with virtual functions for every component, allowing testing the peer with ease.

Cryptographic checks

Now, Iroha does validation of payload signatures and signatures of the block made by peer. Temporarily we are using the ed25519 library with SHA2-512 hashing, but we are working on the SHA3 implementation for improved reliability.

Improved representation of asset amount

It is now greater, as the size of it is uint256. Is also supports custom operations — check iroha/libs/amount.

RBAC permission model, supporting grant command

Iroha is using now role-based access control model, which helps to create custom roles in the system, limited to the operations, which are available to them. Some of the permissions can be granted to other users, check API description for more details.

Integration test for transaction pipeline

This test is used to check the whole pipeline of a transaction, starting with an external endpoint (Iroha API). This test is going to be reused soon for extensive API testing when we will finish with the shared library for creation of transactions and queries.

Implementation of block index storage, based on Redis

Redis storage is used for indexing data, related to retrieval of a collection of transactions. Check the irohad/ametsuchi/impl/mutable_storage_impl.cpp.

Improved implementation of Yet Another Consensus

Consensus module does not require peer IP address now which was used for identification in network messages. Peer public key is now used for identification when vote message is received.

Provisioning of the system via Ansible Playbook

Now, the system can be easily provisioned with Ansible. This feature will help to write scripts for effective system and performance tests.

Other improvements

Fixed build for ARMv7, macOS platform

Several improvements in iroha-cli (C++ command-line interface)

Documentation for release

Available at http://hyperledger.github.io/iroha-api