The Solar development team has been making significant strides in the development and integration of the Solar Virtual Machine (SVM). This blog post will provide an overview of progress the team has made on the SVM since its announcement. The SVM is a crucial component that will enable Ethereum-compatible smart contracts on the Solar blockchain and an important part of the upcoming Solar Core 5.0.
We will be discussing the achievements of the development, technical details of the Core-SVM module and upcoming milestones.
Achievements
The Core-SVM repository is being developed privately until such a point that the module can be integrated into the Solar Core and released on our public testnet.
The codebase consists of 36,519 lines of code which reflects the extensive and detailed investment made by our development team. The timeframe in which this work has been completed is especially commendable considering other DPoS networks thought this integration to be impossible.
The SVM is feature-complete and functions as a standalone EVM-compatible module. This marks a major milestone as it lays the foundation for Ethereum smart contract functionality on the Solar blockchain.
The functionality currently developed includes fully operational contract deployment and interactions. This includes both user-initiated (EOA) and contract (Contract Account) actions such as deploying, maintaining state, and interacting with other contracts.
Technical Details
At the heart of SVM is a fast C++ EVM engine which will be interpreting and executing the EVM-compatible opcodes that Solidity smart contracts compile down to. This makes it easy for developers to migrate their projects and contracts over to Solar with little to no changes.
The engine is then wrapped by the SVM for it to be compatible with TypeScript. This allows for easy integration with Solar Core and expanding the range of possible applications as well as attracting significantly more developers.
Our team of developers have spent the past month performing benchmarks to gauge the performance of the module. SVM has been benchmarked to handle 10–15M gas blocks, with a targeted execution completion of under 2 seconds in order to fit into the 8 second block envelope of Solar Core.
Additionally, SVM supports native EVM precompiled functions to further maximise Ethereum-compatibility. Our goal is to make it as seamless as possible for developers to redeploy their Solidity smart contracts written for Ethereum onto Solar.
A Synergistic Relationship: Consensus & Execution
Solar Core and SVM can be compared to the modular design of Ethereum 2.0. Ethereum 2.0 consists of a Consensus client and an Execution client which work in tandem to provide fast smart contract execution while safeguarding consensus in the on-chain activity.
Solar Core functions as our Consensus client as Core acts as the backbone of the network by handling the DPoS consensus mechanism, transactions, and overall network stability.
SVM functions as our Execution client/module. It is specifically designed to handle the execution of smart contracts as well as maintaining and updating their state. Together, they work in synergy to allow for fast and secure smart contract execution on the Solar blockchain.
Visualising the Progress: Diagrams & Images
To better illustrate these developments, we will have a look at some diagrams and images. First, we will consider the SVM architecture which is followed by performance benchmarks of the module.
SVM Architecture
This diagram shows the internal architecture of the SVM. In short, the general data flow happens like so:
- Solar Core sends SVM a new block of SVM transactions
2. If the transaction is a simple transfer, it is executed and the internal SVM state consisting of both User and Contract accounts is updated
3. If a transaction interacts with a contract, both the contract and transaction are sent to the Solidity interpreter to execute the transaction against the contract code. The internal SVM state is then updated upon completion.
4. SVM returns the updated state headers to Core
Diagram 2
Running on modern hardware, we can comfortably process 15M gas in less than 2 seconds. Execution time also scales linearly as the gas limit increases. With additional optimisation it is possible to lower execution time even further at higher gas limits.
Conclusion
The progress of the Solar development team on the SVM marks a significant step forward in bridging the functionalities of Ethereum with Solar — a first in TypeScript-based DPoS blockchains. As SVM moves closer to full integration with Solar Core we will continue to update the community on our progress including an upcoming live testnet.
Stay tuned for more updates as the Solar team continues to innovate and push the boundaries of blockchain technology!
Follow Solar!
Twitter: https://twitter.com/SolarNetwork
Telegram: https://t.me/Solar & https://t.me/@Solar_Network
Facebook: https://www.facebook.com/OfficialSolarNetwork
LinkedIn: https://www.linkedin.com/company/solarnetworkofficial
Discord: https://discord.solar.org
Website: https://solar.org