Home

Dijets Virtual Machine

Dijets Virtual Machine - DVM#

A Virtual Machine (VM) defines the application-level logic of a blockchain. In technical terms, it specifies the blockchain’s state, state transition function, transactions, and the API through which users can interact with the blockchain. Each blockchain running on Dijets is an instance of a VM.

Think of a VM as a blueprint for a blockchain; you can use the same VM to create many blockchains, each of which follows the same ruleset but is logically independent of other blockchains.

With DVM, now when a developer builds a VM, they don't need to concern themselves with lower-level logic like networking, consensus, and the structure of the blockchain. DVM does this behind the scenes for developers so they can instead focus on applications they would like to build.

In doing so, Dijets removes the technical barriers that for years undermined mainstream blockchain adoption. Before DVM, blockchain networks typically had one Virtual Machine (VM) with a pre-defined, static set of functionalities. This rigid and monolithic design limited the developers scope for building DApps with wide range of use-cases. People who wanted custom decentralized applications had no choice but to create their own, entirely new blockchain network from scratch. Doing so required a great deal of time and effort, offered limited security, and generally resulted in a bespoke, fragile blockchain that never got off the ground.

EVM and Programming Languages#

Ethereum made a step toward solving this problem with smart contracts. Developers didn’t need to worry about networking and consensus, but creating decentralized applications was still very hard. The Ethereum VM has low performance and imposes restrictions on smart contract developers. Solidity and the other few languages for writing Ethereum smart contracts are unfamiliar to most programmers.

Dijets VMs (DVMs) make it easy to define a blockchain-based decentralized application. Rather than new, limited languages like Solidity, developers can write VMs in Go, WASM and Rust (support for more languages to follow).