Bird View of MOI
Figure: Bird View of MOI
VARNA
VARNA is a MOI-native toolchain and an ecosystem for application developers offering tools to develop, deploy and maintain apps on the MOI network (called MOIApps). It also provides an accurate fee metering mechanism for different execution types and offers a series of tools for code analysis and network simulation.
Feature of Varna
- Local compilation of logic along with stable fee metering at precompile
- Facilitate deployment of new apps and maintenance of existing apps
- Local simulation environment for deploying and monitoring application lifecycle
Apart from a CLI, an IDE will also offer the same set of features in GUI-based experience by offering an online IDE compatible with WebAssembly 2, with native integrations to MOI-specific plugins, and third-party libraries.
Benefits of Varna
- Delivers practical and usable enterprise-grade applications without using a new Domain Specific Language (DSL) which comes with a steep learning curve
- Use your favorite developer IDE to initiate and write apps in any language of choice
Apart from Varna’s CLI and IDE, we will also offer Software Development Kits (SDK) for as many target languages as possible. For example, varna-rs crate for building the application in Rust language, the varna-go package for Go language, and so on. These application libraries will allow app developers to inherit
MOI-specific types like Account and Interaction, along with native methods such as Transfer(), GetBalance(), and so on.
Figure: Varna Ecosystem
Varna Application Services: It is an API-based backend service used to manage the entire lifecycle of an application including compilation, deployment, updating logic as well as listing and killing of apps. This service is self-hosted on the developer’s machine by default. Developers can choose not to host locally and use a remotely hosted service as well.
Varna CLI: The CLI allows the developer to pass commands and login, compile, deploy, update, list, and kill applications.
Varna IDE: The IDE offers a GUI-based experience to the developer. It also allows the developer to seamlessly integrate community plugins and extensions to make the development much easier.
Varna TestLab: The TestLab offers the developer the ability to host a local MOI pod, analyze the application code, and run a network simulator locally for a deeper understanding of the network dynamics 3.
Varna SDKs: SDKs will offer the developers MOI-specific structure and methods to ease the development and will be offered in as many languages as possible.
Here’s a list of all the MOI-specific types and methods proposed in the SDK:
Types proposed in VARNA’s wide range of SDKs:
Type | Support in PISA | Support in MERU | Support in HANOI |
---|---|---|---|
Unsigned integers (8-bit, 16-bit, 32-bit, 64-bit, and 128-bit) | YES | YES (128-bit not supported) | TBA |
Signed integers (8-bit, 16-bit, 32-bit, 64-bit, and 128-bit) | YES | YES (128-bit not supported) | TBA |
Floating points (32-bit, and 64-bit) | YES | YES (128-bit not supported) | TBA |
String | YES | YES | TBA |
Array | YES | YES | TBA |
Vector (To be available only in the rust SDK) | NO | TBD | TBA |
Struct | YES | YES | TBA |
Boolean | YES | YES | TBA |
Map | YES | YES | TBA |
Set (Shall be made available only in the rust SDK) | NO | TBD | TBA |
Account | YES | YES | TBA |
Accounts | YES | YES | TBA |
Interaction | NO | YES | TBA |
Context | NO | YES | TBA |
Methods proposed in VARNA’s wide range of SDKs:
Method | Support in PISA | Support in MERU | Support in HANOI |
---|---|---|---|
Keccak256() (To generate hash of the data) | YES | YES | TBA |
Sha256() (To generate hash of the data) | YES | YES | TBA |
Blake2b() (To generate hash of the data) | NO | YES | TBA |
Assert() (To verify the output function) | YES | YES | TBA |
Panic() (To interrupt execution as per the logic) | YES | YES | TBA |
Call() (Calls a particular function resulting in a new transaction) | YES | YES | TBA |
Call() (Calls a particular function resulting in a new transaction) | YES | YES | TBA |
Transfer() (Used to transfer Native MOI tokens, TDU points, and custom app tokens from sender to receiver | YES | YES | TBA |
GetBalance() (Returns the balance of the given account) | NO | YES | TBA |
ReadData() (Storage function used to read data from DHRUVA) | NO | YES | TBA |
ReadData() (Storage function used to read data from DHRUVA) | NO | YES | TBA |
WriteData() (Storage function used to store data into DHRUVA in byte array format) | NO | YES | TBA |
UpdateData() (Storage function used to update existing data in DHRUVA) | NO | YES | TBA |
RemoveData() (Storage function used to remove data from local DHRUVA node and trigger GC) | NO | YES | TBA |
KOSHA
KOSHA is an application middleware that can be used by clients to communicate with MOI infrastructure. It will also be made available as mobile and web SDKs.
Features of Kosha
- Connects applications and users to MOI network
- Facilitate wallet and identity management for MOI users
Benefits of Kosha
- Ability to conduct simple and seamless interactions over MOI network without intrusions at the UX level across multiple devices and environments
LEYPA
LEYPA is the network middleware that connects business logic across traditional infrastructure and peerto-peer networks. It acts as a hub for achieving interoperability between hybrid environments.
Features of Leypa
- Message passing among many open networks and traditional infrastructure. This is achieved by Inter-Galactic Connectors and Oracles with the help of MOI Name Service (MNS).
Benefits of Leypa
- Enables MOI apps to interact with other open networks and traditional infrastructure
POORNA
POORNA is a context-aware peer-to-peer overlay network that facilitates fast and reliable communication among nodes in the network. Context-driven capabilities of POORNA also help to achieve Modulated Trust by creating personalized clusters in an optimized manner. It is also responsible for facilitating multi-party computation clusters.
Poorna also serves as a base layer of communication between other components of MOI Network:
Features of Poorna
- Leverages context of participants to create a personalized cluster in the MOI network called the Interaction Consensus Set (ICS)
- Facilitates an overlay network for fast and reliable p2p communication 4
Benefits of Poorna
- Ability to create context-relevant personalized peer-to-peer networks without losing the benefits of decentralization
- Ability to achieve contextual singularity 5 under minimal costs without losing the benefits of decentralization and throughput as the network grows
JUG
JUG is a context-aware compute engine to facilitate computation on an open network across heterogenous personalized execution environments. It is a pioneer in Context Unified Compute Architecture (CUCA) for all eligible devices.
Features of Jug
- Provides a medium of computation with native proofs
- Offers various types of execution environments driven by the compute context of the user
- Enables execution of logic in a personalized way by allowing users to choose computation nodes
- Allows for remote and delegated computation for performance-intensive and complex logic
Benefits of Jug
- Ability to run code in different types of execution environments to better suit the needs of the logic
- Predictable Total Cost of Ownership (TCO) and personalized execution clusters for enterprise logic
- Offers off-chain computation for training Machine Learning (ML) models in trusted and provable environments
KRAMA
KRAMA is a family of intelligent consensus algorithms required to achieve contextual singularity using Modulated Trust 5 in any open or closed network. It facilitates personalized context-aware consensus and establishes verifiable trust in open networks, thereby providing high throughput without compromising the benefits of decentralization.
Features of Krama
- Leverages user’s context to provide flexible modes of agreement Establishes customizable and verifiable trust in open networks
- Effectively achieves contextual singularity to empower global value networks
Benefits of Krama
- Ability to enable applications to drive the network, making it personalized for all stakeholders of the network
GUNA
GUNA is a context-aware state manager responsible for managing value states in the MOI network. It handles the state of participants, interactions, and applications along with their context and value.
Apart from handling state, Guna also supports analytical representations of data in the value space using Coalescence to form patterns out of contextual singularities in the form of Tesseract Lattice or a Tesseract Grid.
Features of Guna
- Supports multi-dimensional value assets natively 5
- Facilitates Total Digital Utility (TDU) of interaction participants
Benefits of GUNA
- Ability to create and manage interaction-specific value transfers in a personalized and optimal fashion
DHRUVA
DHRUVA is a context-aware storage engine for handling object and block storage of data used in the MOI network. It supports a pluggable interface for multiple key-value databases and enables the persistence of network-wide content-addressable data.
Features of Dhruva
- Provides content-addressed storage of data with the ability to fetch it from disk as well as remote nodes
Benefits of Dhruva
- Offers flexibility to existing businesses to use databases and file systems of their own choice
- Manage data