Page Properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Goals
Hyperledger Iroha v2 aims to be an even more simple, highly performant distributed ledger platform than Iroha v1. V2 carries on the tradition of putting on emphasis on having a library of pre-defined smart contracts in the core, so that developers do not have to write their own code to perform many tasks related to digital identity and asset management.
Background and strategic fit
...
Assumptions
- Users will work with provided client libraries (iOS, Android, JS).
- 3f+1 nodes are enough to tolerate f Byzantine nodes in the network.
- Iroha uses a simple data model made up of domains, peers, accounts, assets, signatories, and permissions, as shown in the figure below - all other entities are built on top of them.
...
- The main source of core structure: Iroha 2 white paper, authored by 武宮誠
- List of requests from the Soramitsu projects regarding features
- Decisions made during the discussion, which are fixed in the list of RFCs
Functional
Peer to peer communication
ID | Item | EPIC | Importance | Status | ADR/RFC | Notes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
IF2-100 | Peer to Peer Network Library |
|
| Networking stack | Plain TCP\IP based protocol with SCALE as de\serialization format. Iroha must have a specific peer-to-peer protocol for effective communication and provided it as a detachable library. | |||||||||||||||||
IF2-101 | Transactions Time to Live | HI2-38 |
| Prevent replay of rejected transactions | Iroha must provide the possibility to explicitly state time-to-live (TTL) for each transaction, so the clients can set time interval in which transactions should be confirmed and put into the block store or removed from the queue by timeout. | |||||||||||||||||
IF2-102 | Multisignature Transactions | HI2-13 |
| Iroha must provide the possibility to configure each account to have a list of signatories, which needs to provide their signatures to confirm the transaction. Also, Iroha should provide the possibility to perform conditional multi-signature transactions, so the conditions will automate transaction creation or signing them | ||||||||||||||||||
IF2-103 | Transaction dependencies |
| Transaction tags | (Proposed by Kamil') Iroha may provide a possibility to perform tag-based dependencies between transactions for making their sequence configurable by the client |
...
ID | Item | EPIC | Importance | Status | ADR/RFC | Notes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
IF2-500 | Iroha Special Instructions mechanism |
|
| |||||||||||||||||||
IF2-501 | Out of the box set of Iroha Special Instructions |
|
| Several Tiers of Iroha Special Instructions provide:
| ||||||||||||||||||
IF2-502 | Permissions | HI2-36 |
|
| Permissions and Event Listeners | Permissions in Iroha implemented based on Assets and Iroha Special Instructions. | ||||||||||||||||
IF2-503 | Triggers | HI2-37 |
|
| Permissions and Event ListenersTriggers | Triggers in Iroha implemented based on Assets and Iroha Special Instructions. | ||||||||||||||||
IF2-504 | Domain-Specific Language |
| Iroha Special Instructions DSL | Custom Iroha Special Instructions and usage of the full set of Iroha Special Instructions should be easy for developers. | ||||||||||||||||||
IF2-505 | Advanced Permissions Model |
|
| Expand Iroha Permission model | Full-fledged rights model in Iroha will greatly reduce the amount of server development for Iroha-based applications. |
...
ID | Item | EPIC | Importance | Status | ADR/RFC | Notes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
HTTP API |
|
| HTTP Iroha API for Clients | Because of clients restrictions decision about HTTP API was pushed forward. | ||||||||||||||||||
IF2-800 | Rust Client Library | HI2-32 |
|
| Iroha Client encapsulates network-related functionality and provides "local" Rust Interface for:
| |||||||||||||||||
IF2-801 | `no-std` client |
|
| Migration from Strings | ||||||||||||||||||
IF2-802 | Mobile SDK |
|
| |||||||||||||||||||
IF2-803 | Web SDK |
|
| Web API |
...
- Support configurable crypto algorithms
- Support for server-side HSM integration
- Security and consistency improvements
- Encapsulation of crypto-related functionality
- Transport Layer Security Configuration
Maintenance
Target Platforms
Iroha deployment should support GNU/Linux, macOS and Windows machines with x86 and Arm64 CPUs.
...
Maintenance
- Logging -
Jira Legacy server Hyperledger JIRA serverId 6326cb0b-65b2-38fd-a82c-67a89277103b key IR-832 - Service Discovery
...
User interaction and design
Questions
Below is a list of questions to be addressed as a result of this requirements document:
...