Blockchain development made easy: Getting started with Hyperledger Iroha
Our ‘Blockchain development made easy’ series continues with Hyperledger Iroha, a simple blockchain platform you can use to make trusted, secure, and fast applications. What are the advantages and how can developers get started with it? We talked to Makoto Takemiya, co-founder and co-CEO of Soramitsu about what’s under this project’s hood.
JAXenter: Is Hyperledger Iroha some sort of supplement to Fabric and Sawtooth? How does that work?
Makoto Takemiya: Hyperledger Iroha is an open-source, distributed ledger supported by an open source community of developers. Hyperledger Iroha has its own technical properties and vision that is equally important to the vision and technical characteristics of other blockchain platforms governed by the Hyperledger Project, run by the Linux Foundation. There are numerous use cases and different applications, so all platforms are important for the users to be able to test and select the blockchain platform that performs best in their specific use case.
Iroha contributes to the diversity of the Hyperledger frameworks. Hyperledger Iroha is written in C++ and has a small set of commands and queries focused on enabling financial applications, digital asset management, and digital identity use-cases for enterprises of any size.
JAXenter: What are the advantages of using Hyperledger Iroha?
An Iroha peer can be deployed in less than 30 seconds with our docker image, a transaction on the client side can be formed with our libraries in less than five minutes
Makoto Takemiya: Iroha is a combination of simple ideas, that together create a powerful and straightforward blockchain platform:
Iroha was designed to be a powerful platform that requires minimal development effort for use cases involving asset transfers or account management. We made this possible with Iroha by providing a set of pre-defined smart contracts, called commands, that are used to perform key financial transactions or retrieve information on the blockchain. Using this level of abstraction, we made a blockchain that is easy to understand for the system stakeholders, ranging from C-level management to integrators and engineers.
- Byzantine Fault Tolerant Consensus algorithm
For its consensus algorithm, Iroha uses Yet Another Consensus (YAC), which is a fully Byzantine-fault tolerant algorithm for decentralized consensus. It is used for ordering transactions and forming consensus about blocks in the blockchain. One of YAC’s unique features is that it does not have a leader node and is therefore fast as voting is done on block hashes. For more information, please check our paper, where the algorithm is explained in more detail.
- Multisignature accounts and APIs
Iroha does not have fully customizable smart contracts. Instead, we have a design that allows customization of validation logic and APIs using multisignature accounts (accounts with multiple cryptographic keys associated with them), combined with higher level application logic. This approach allows building custom application logic that involves approving and signing transactions partially, after performing some custom logic. One of the examples is a two-way peg for the Ethereum network, which is based on Iroha multisignature accounts logic.
- Security and improved cryptography
Hyperledger Iroha uses the Ed25519 signature algorithm with modified SHA3 hashing, which verifies all actions of users. The algorithm is fast, independent, and publicly available in the Hyperledger repository.
Deployment of Iroha-powered applications is possible on Linux and macOS, with supported hardware including x86 and ARM-powered devices (which are known to be commonly used in IoT and chain supply use cases).
Running an Iroha peer is not necessary for client applications, as we always wanted to preserve a level of abstraction for centralized systems. All interaction consists of client-server message exchange, where there is nothing blockchain-specific (in contrast to public chains where client apps have to contain logic with blockchain-level abstractions, such as blocks, or forks, etc.). Iroha has command-query responsibility segregation in its API, which makes it possible to gradually replace an existing backend solution, for example, cross-border transfers or in-game incentive payments. Please check the Iroha API on your own at our website for Iroha documentation.
JAXenter: What is the most suitable use case for Hyperledger Iroha?
Makoto Takemiya: Iroha can support any blockchain-related use case. Soramitsu, one of the originators of Iroha, is using the platform for financial use cases, which includes interbank settlement, record keeping, exchanges and safe storage, identity, and personal data management. Those use cases are supported with our robust APIs that can efficiently provide such functionality and are used by Soramitsu in the following projects:
- Finance: Project Bakong, a core banking system developed for the National Bank of Cambodia and deployed in the central bank, provides real-time financial system support for asset management between Cambodian banks.
- Insurance: Sompo Japan used Hyperledger Iroha to manage weather derivative contracts.
- Identity management: Sora (XOR) developed a decentralized autonomous economy and identity platform — all in one app called the Sora Passport
- Cross-chain interaction: D3 (Decentralized Digital Depository), a two-way peg that was developed in partnership with depositories around the world.
JAXenter: What does Hyperledger Iroha have that other tools don’t?
Makoto Takemiya: In one word: simplicity. An Iroha peer can be deployed in less than 30 seconds with our docker image, a transaction on the client side can be formed with our libraries in less than five minutes and the network, which is ready to accept new peers, would be ready to operate at the same time as the peer is up and running. This makes us different from other tools.
Iroha can support any blockchain-related use case.
Iroha also has unique features, like role-based access control combined with a set of business domain primitives (e.g., account, asset, domain, etc.). Another key advantage is our support for multi-signature accounts, which is more powerful than in other platforms.
JAXenter: Is it really simpler than other frameworks?
Makoto Takemiya: It is simpler on many levels:
- Iroha uses concepts that are more human and domain-oriented. Iroha accounts are identified by names, not by public keys. Inside the chain state we have relations, as the Iroha platform uses SQL state, in contrary to the vast majority of other systems: domains, assets, accounts, peers, roles — in Iroha those are first-class citizens. You don’t have to reinvent the wheel for transfers and account information storage, as Iroha incorporates all this logic inside itself.
- Management of Iroha-powered applications. Iroha doesn’t have certificate authorities or transaction processors that are external to the peer. Its network is homogenous and therefore simpler to deploy, develop, and monitor.
- The reader can compare the code of the Iroha SDK tests and other Hyperledger platforms. We believe that our code looks simple in comparison, yet there is a potential for improvement. You can check the code for tests or transaction generation and compare it yourself:
JAXenter: How can developers start a project with Hyperledger Iroha? What are the steps?
Makoto Takemiya: The easiest is to start your exploration by going through the getting started section of our documentation. Deploy your peer and use any of the existing client libraries to send transactions and queries to the Iroha platform. That’s it.
JAXenter: What’s next for Hyperledger Iroha?
Makoto Takemiya: The next big thing for Iroha is its first final release. In order to produce a solution that is satisfactory for an enterprise organization, Iroha needs to demonstrate outstanding quality and deliver all essential features.
After the first final release is done, we will investigate support for custom commands and queries defined in the genesis block using the SQL language. Stay tuned!
Our Blockchain development made easy interviews published so far: