Page Properties | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
|
Background
We should declare the initial set of outOOB (Out-ofOf-the-box Box) Iroha Special Instructions for Hyperledger Iroha 2.0.0 release.
Action items
- Nikita Puzankov define a list of initial ISIs
- 武宮誠 and Yuriy Vinogradov review it and add suggestions/comments
- Nikita Puzankov conduct final meeting and write down agreement on the final set
Problem
Iroha whitepaper, current implementation and users' expectations are differ different in terms of out-of-the-box Iroha Special Instructions set.
...
Split out-of-the-box instructions into the following categories:
- Domain related
- Register/
- Unregister<Identifiable>
- Mint/Burn<Id, Value>
- Transfer<Id, Value, Id>
- Math
- Integer
- Add/Substract
- <EvaluatesTo<u32>,
- EvaluatesTo<u32>>
- Multiply/
- RaiseTo<Value, Value>
- Mod<Value, Value>
- Integer
- Compositions
- Sequence<Vec<Instruction>>
- Pair<Instruction, Instruction>
- If<Instruction, Instruction, Instruction>
- Not<Instruction>
- Queries
- Execute<Query>
...
- Divide<EvaluatesTo<u32>, EvaluatesTo<u32>>
- RaiseTo<EvaluatesTo<u32>, EvaluatesTo<u32>>
- Mod<EvaluatesTo<u32>, EvaluatesTo<u32>>
- Comparison:
- Equate<Value, Value>
- Greater/Less<EvaluatesTo<u32>, EvaluatesTo<u32>>
- Bool
- Not<EvaluatesTo<bool>>
- And/Or<EvaluatesTo<bool>, EvaluatesTo<bool>>
- Compositions
- Sequence<Vec<Instruction>>
- Pair<Instruction, Instruction>
- If<EvaluatesTo<bool>, Instruction, Option<Instruction>>
- Vectors
- Contains<EvaluatesTo<Vec<Value>>, EvaluatesTo<Value>>
- ContainsAny/ContainsAll<EvaluatesTo<Vec<Value>>, EvaluatesTo<Vec<Value>>>
- Variables
- Where<Value, BTreeMap<String, Value>>
- ContextValue<String>
- Queries
- Execute<Query>
- Misc
- Fail<String>
Provide a set of possible domain-related instructions:
- Register/Unregister
- Register or unregister Domain in Peer
- Register or unregister Account in Domain
- Register or unregister Asset Definition in Domain
- Register or unregister Peer Id in Peer
- Register or unregister Signatory in Account
- Mint
- Mint or burn value to or from an Asset
- Fees
- Register or unregister TransactionFee (e.g., fixed, percentage, DEX-swapped)
- Register or unregister TransactionFee (e.g., fixed, percentage, DEX-swapped)
Provide a set of tools for DeFi:
- Register DEX
- Register or unregister DEX (DEXManager) in Domain
- Register Liquidity Source
- Register or unregister XYK Pool in DEX
- Register or unregister Order Book in DEX
- Register or unregister XYK Pool in DEX
- Set liquidity fees
- Register or unregister LiquidityFee (e.g., buy back and burn, pool share, etc.)
- Register or unregister LiquidityFee (e.g., buy back and burn, pool share, etc.)
Provide a set of tools for Digital Identity (https://ieeexplore.ieee.org/abstract/document/8377927/):
- W3C-DIDs
- Register or unregister DID in Account
- Register or unregister VerifiableCredential in Account (https://www.w3.org/TR/vc-data-model/)
- Register or unregister DID in Account
Alternatives
- Do not have categories and generic instructions using a plain set of instructions like "AddDomain, RegisterAccount" - as cons we can point out naming and extensibility problems
- Do not have granularity and differences between register, mint, add - as cons we can point out different business-related meanings for similar actions and to a wide set of options in one bucket
Concerns
- Too A too big or too small set of out-of-the-box instructions can be hard to maintain or not sufficient for users needs
- Iroha 1 users can struggle from the new naming
Assumptions - document any assumption that you made
- We did not made make a final decision about "Iroha Modules" related instructions (DEX, Bridge, Permissions, etc.) and their inclusion into out-of-the-box set yet
...
- Set will be incomplete from the users' perspective `[5;2]`
- We missed some categories `[2;7]`
...
- https://github.com/hyperledger/iroha/blob/iroha2-dev/docs/source/iroha_2_whitepaper.md
- Iroha Special Instructions DSL
- Re: Triggers