Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: fixed whitepaper link


Page Properties


Target release2.0.0
Epic
Document status
Status
titleDRAFT
Document owner
Designer
Developers
QA


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

...

  1. The main source of core structure: Iroha 2 white paper, authored by 武宮誠
  2. List of requests from the Soramitsu projects regarding features
  3. Decisions made during the discussion, which are fixed in the list of RFCs

Functional

Peer to peer communication

IDItemEPICImportanceStatusADR/RFCNotes
IF2-100Peer to Peer Network Library

HI2-6

HI2-30

Status
colourGreen
titleMUST

Status
colourGreen
titleDONE

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-101Transactions Time to LiveHI2-38

Status
colourGreen
titleMUST


Prevent replay of rejected transactionsIroha 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-102Multisignature TransactionsHI2-13

Status
colourGreen
titleMUST



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-103Transaction dependencies

Status
titlenot defined


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

...

IDItemEPICImportanceStatusADR/RFCNotes
IF2-500Iroha Special Instructions mechanism

Status
colourGreen
titleMUST

Status
colourGreen
titleDONE



IF2-501Out of the box set of Iroha Special Instructions

HI2-28

HI2-29

HI2-35

Status
colourGreen
titleMUST

Status
colourGreen
titleDONE


Several Tiers of Iroha Special Instructions provide:

  • Basic building blocks that can be used to build Custom Iroha Special Instructions
  • Maintenance-related Iroha Special Instructions (Add Peer, Change Build Block Time, etc.)
  • "Iroha Modules"-related Iroha Special Instructions (Bridge, DEX, etc.)
IF2-502PermissionsHI2-36

Status
colourGreen
titleMUST

Status
colourBlue
titleIN-PROGRESS

PermissionsPermissions in Iroha implemented based on Assets and Iroha Special Instructions.
IF2-503TriggersHI2-37

Status
colourGreen
titleMUST

Status
colourBlue
titleIN-PROGRESS

PermissionsTriggersTriggers in Iroha implemented based on Assets and Iroha Special Instructions.
IF2-504Domain-Specific Language

Status
colourYellow
titleCould


Iroha Special Instructions DSLCustom Iroha Special Instructions and usage of the full set of Iroha Special Instructions should be easy for developers.
IF2-505Advanced Permissions Model

Status
colourYellow
titleCould

Status
colourBlue
titleIN-PROGRESS

Expand Iroha Permission modelFull-fledged rights model in Iroha will greatly reduce the amount of server development for Iroha-based applications.

...

IDItemEPICImportanceStatusADR/RFCNotes

HTTP API

Status
colourGreen
titleMUST

Status
colourYellow
titleIN-REVIEW

HTTP Iroha API for ClientsBecause of clients restrictions decision about HTTP API was pushed forward.
IF2-800Rust Client LibraryHI2-32

Status
colourGreen
titleMUST

Status
colourGreen
titleDONE


Iroha Client encapsulates network-related functionality and provides "local" Rust Interface for:

  • Submitting of Iroha Special Instructions to Iroha Peer
  • Querying Data from Iroha Peer
  • Maintenance Endpoint API
IF2-801`no-std` client

Status
colourYellow
titleCould

Status
colourRed
titleCANCELLED

Migration from Strings
IF2-802Mobile SDK

HI2-33

HI2-9

HI2-8

Status
colourYellow
titleCould

Status
colourRed
titleCANCELLED



IF2-803Web SDK

HI2-34

HI2-10

Status
colourYellow
titleCould

Status
colourRed
titleCANCELLED

Web API

...