Skip to main content

Bird View of MOI

bird-view

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.

bird-view

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:

TypeSupport in PISASupport in MERUSupport in HANOI
Unsigned integers
(8-bit, 16-bit, 32-bit, 64-bit, and 128-bit)
YESYES
(128-bit not supported)
TBA
Signed integers
(8-bit, 16-bit, 32-bit, 64-bit, and 128-bit)
YESYES
(128-bit not supported)
TBA
Floating points
(32-bit, and 64-bit)
YESYES
(128-bit not supported)
TBA
StringYESYESTBA
ArrayYESYESTBA
Vector
(To be available only in the rust SDK)
NOTBDTBA
StructYESYESTBA
BooleanYESYESTBA
MapYESYESTBA
Set
(Shall be made available only in the rust SDK)
NOTBDTBA
AccountYESYESTBA
AccountsYESYESTBA
InteractionNOYESTBA
ContextNOYESTBA

Methods proposed in VARNA’s wide range of SDKs:

MethodSupport in PISASupport in MERUSupport in HANOI
Keccak256()
(To generate hash of the data)
YESYESTBA
Sha256()
(To generate hash of the data)
YESYESTBA
Blake2b()
(To generate hash of the data)
NOYESTBA
Assert()
(To verify the output function)
YESYESTBA
Panic()
(To interrupt execution as per the logic)
YESYESTBA
Call()
(Calls a particular function resulting in a new transaction)
YESYESTBA
Call()
(Calls a particular function resulting in a new transaction)
YESYESTBA
Transfer()
(Used to transfer Native MOI tokens, TDU points, and custom app tokens from sender to receiver
YESYESTBA
GetBalance()
(Returns the balance of the given account)
NOYESTBA
ReadData()
(Storage function used to read data from DHRUVA)
NOYESTBA
ReadData()
(Storage function used to read data from DHRUVA)
NOYESTBA
WriteData()
(Storage function used to store data into DHRUVA in byte array format)
NOYESTBA
UpdateData()
(Storage function used to update existing data in DHRUVA)
NOYESTBA
RemoveData()
(Storage function used to remove data from local DHRUVA node and trigger GC)
NOYESTBA

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