Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Requirements

Sources

There are the following sources for all requirements:

  1. The main source of core structure: Iroha 2 white paper, authored by Makoto Takemiya
  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

ItemEPICImportanceADR/RFCBrief descriptionNotes
Peer to Peer Network Library

HI2-6

HI2-30

Status
colourGreen
titleMUST

Networking stackIroha should have a specific peer-to-peer protocol for effective communication and provided it as a detachable library.Plain TCP\IP based protocol with SCALE as de\serialization format.
Transactions Time to LiveHI2-38

Status
colourGreen
titleMUST

Prevent replay of rejected transactionsIroha should provide the possibility to explicitly state time-to-live (TTL) for each transaction, so the clients will have control over the time interval in which transactions should be confirmed and put into the block store.
Multisignature TransactionsHI2-13

Status
colourGreen
titleMUST

??Transaction tags

...


Iroha should 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


Transaction dependencies

Status
titlenot defined

Transaction tags(Proposed by Kamil') Iroha should provide a possibility to perform tag-based dependencies between transactions for making their sequence configurable by the client

Blocks storage

ItemEPICImportanceADR/RFCBrief descriptionNotes
World State View

Status
colourGreen
titleMUST


Iroha should have an in-memory representation of the World State View for optimization of access and change time.In-memory, read fast data representation of the current World's State.
Kura

HI2-1

HI2-17

HI2-18

HI2-5

Status
colourGreen
titleMUST


Iroha should have abstraction over the disk-based block storage, which will cover all validation- and world-state-view-related functionality.

Iroha should have the Kura as a detachable library, so other Hyperledger solutions can easily reuse it.

Kura is a decorator on top of Disk Block Storage and provides validation and World State View synchronization functionality. 
Blocks Synchronization

HI2-2

HI2-43

Status
colourGreen
titleMUST

Block SynchronizationIroha should perform seamless synchronization of block storage between peers, so 
//TODO Egor Ivkov please add a small note about the gossip design and concerns.
Merkle Tree

Status
colourGreen
titleMUST

Merkle Tree

Consensus

ItemEPICImportanceADR/RFCNotes
SumeragiHI2-3

Status
colourGreen
titleMUST



Queries

ItemEPICImportanceADR/RFCNotes
Iroha QueriesHI2-31

Status
colourGreen
titleMUST


Iroha Queries provide information about World State View based on client permissions.

Smart Contracts

ItemEPICImportanceADR/RFCNotes
Iroha Special Instructions mechanism

Status
colourGreen
titleMUST



Out of the box set of Iroha Special Instructions

HI2-28

HI2-29

HI2-35

Status
colourGreen
titleMUST


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.)
PermissionsHI2-36

Status
colourGreen
titleMUST

Permissions and Event ListenersPermissions in Iroha implemented based on Assets and Iroha Special Instructions.
TriggersHI2-37

Status
colourYellow
titleCould

Permissions and Event ListenersTriggers in Iroha implemented based on Assets and Iroha Special Instructions.
Domain-Specific Language

Status
colourYellow
titleCould

DSL StructureCustom Iroha Special Instructions and usage of the full set of Iroha Special Instructions should be easy for developers.
Advanced Permissions Model

Status
colourYellow
titleCould

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

...

Maintenance

ItemEPICImportanceADR/RFCNotes
Maintenance Endpoint

HI2-26

HI2-27

HI2-46

Status
colourGreen
titleMUST

Maintenance Endpoint

...