Darwinia Network integrates established projects and quality tools in the Ethereum ecosystem through the DVM ( Darwinia Virtual Machine) smart contract solution.
Darwinia DVM (Darwinia Virtual Machine) smart contract solution is an improved version of the Frontier project, the Parity EVM compatible layer frame. It is the smart contract execution module of the Darwinia network.
Darwinia Virtual Machine
To achieve a seamless Ethereum experience on Polkadot and Substrate, Darwinia delivered a smart contract solution based on Frontier; we name it Darwinia Virtual Machine(DVM). DVM is fully compatible with EVM (Ethereum Virtual Machine) in Darwinia Network, supporting Metamask.
Darwinia has launched a testnet Pangolin for dapp developers who want to test and play with DVM.
Users and developers can:
- Use Metamask to connect with Pangolin.
- Use Solidity to develop applications or games with the DVM.
- Use the Ethereum contract development tool, e.g., Remix.
- Migrate existing dapp applications or games to the DVM.
DVM features:
- Recognizable EVM account to substrate account conversion
- Transfer balance between EVM account and substrate account without loss of accuracy
- Fully compatible with EVM
With the integration of DVM into the Darwinia Network, users can efficiently migrate smart contract applications currently deployed on Ethereum to the Darwinia network.
Although DVM is based on the Frontier framework, the Darwinia team has made many improvements to its design, including:
1. Support transfer between Evm Address and Darwinia Address without precision loss.
In Ethereum, the minimum precision unit is 18 bits, 1 ether = 10¹⁸ wei. The minimum precision of tokens is 9 bits in the Darwinia network, 1 ring = 10⁹ nano RING. Such precision difference will lead to a precision error when compatible with the Ethereum tools, resulting in a less accurate account balance. In DVM’s design solution, the development team made a new design for the storage of account balance, storing the balance error part separately, which will not cause accuracy loss when transferring.
2. Easier to understand withdrawal design (from the EVM address to Darwinia Address)
Compared to Frontier’s short address withdrawals, the Darwinia development team designed a pre-compiled native contract to transfer the balance from the EVM Address to Darwinia Address, which is more user-friendly. Users only need to fill in the withdrawal Darwinia Address to complete the entire operation.
3. Efficient and free testnet Pangolin
Pangolin, a free testnet with an integrated DVM solution, has launched. Developers who wish to implement, deploy and debug smart contracts on the Darwinia network as a playground to test it out.
More detailed supporting documentation is available at https://docs.darwinia.network/docs/en/wiki-tut-dvm-recharge.
4. A new address translation protocol with recognition features
To support the Ethereum toolset, the Darwinia team has designed a new address conversion protocol with recognition features. An EVM address can be converted into a recognizable Darwinia address to receive and send tokens. Compared with the original hash address conversion method, it is more flexible and scalable.
For more details about this protocol, please refer to https://github.com/darwinia-network/darwinia/wiki/Darwinia-Address-Format-Overview.