As 2024 draws to a close, we want to take this opportunity to reflect on the progress we’ve made since our last blog post and highlight the major milestones we’ve achieved since then.
In our previous update, we outlined our plan to replace all transaction types with a single EvmCall
type. If you missed it, you can catch up on the details here: Mainsail - Transitioning to Full EVM Support. Now, let’s dive into what has changed since then.
Most Notable Changes
RLP Encoding for Transactions
We have aligned transaction signing and de-/serialization with RLP (Recursive Length Prefix) encoding, similar to how Ethereum processes transactions. This change enhances compatibility and ensures a more streamlined data structure.
Multipayment Contract
The new Multipayment
contract provides functionality equivalent to the original V3 transaction type, offering multipayment capabilities that are out of the box.
Usernames Contract
We introduced a new Usernames
contract, enabling addresses to have usernames for easier identification and interaction. This approach will also enable validators to register usernames, helping them create unique identities for branding and making it easier for voters to locate and support their preferred option.
Upgradable Consensus Contract
The Consensus
contract has been made upgradable using the UUPS (Universal Upgradeable Proxy Standard) pattern. This upgrade ensures long-term flexibility while also exposing voters and validators, making it easier to query this data externally. Additionally, the contract has been improved to allow re-voting to mimic the vote swap we previously had in Core. This means that when a new vote transaction is issued, any validator that was voted for prior will be overwritten by the new one.
Improved PostgreSQL Database Restoration
We introduced a new method to restore a PostgreSQL API database directly from EVM state during node bootstrap. This significantly simplifies and accelerates the setup of APIs.
Expanded HTTP API Endpoints
To improve EVM compatibility, several new HTTP-API endpoints were added and updated, including the ability to query transactions based on their function signature.
Faster and More Reliable Bootstrap Process
We resolved several issues that could cause prolonged bootstrap times. The underlying database storage has been optimized by splitting it into blocks
, commits
, and transactions
. This reorganization supports a broader range of access patterns required by different JSON-RPC API endpoints.
Improved ETH JSON-RPC API Support
Additional endpoints were added to the ETH JSON-RPC API, improving compatibility with popular tools like MetaMask. While substantial progress has been made, ongoing work continues to expand coverage in this area.
V3 Snapshot Integration
Initial V3 snapshot support has been implemented and merged into the development branch. This enables Mainsail to bootstrap a new network from existing V3 data, including validators (formerly known as delegates), voters, and usernames. This foundational work sets the stage for a smooth transition to a future Mainsail network upgrade.
Database Performance Enhancements
We addressed bottlenecks in our EVM database storage when handling large contracts. By utilizing a custom fork of heed
to expose additional low-level APIs, we’ve improved performance until upstream changes become available.
The list above covers the most significant updates, but it is not exhaustive. For a deeper dive into our progress, we encourage you to explore our weekly development update posts.
What’s Next
With these updates, Mainsail now fully integrates an EVM and replaces all custom transaction logic with smart contracts. This marks a major milestone in our journey.
While some backward compatibility work remains for the eventual transition from V3 to a fully operational Mainsail EVM network, the groundwork has been completed.
Looking ahead, our next step is to release a public testnet based on a V3 development network snapshot in early 2025. This testnet will incorporate all the latest improvements and features, including support for ARK Vault and ARK Scan.
We’re incredibly excited about what lies ahead in 2025. As we inch closer to launching the first public Mainsail EVM testnet, we’ll continue to share regular updates and progress.
Thank you for your continued support — here’s to an exciting road ahead. Stay tuned and keep an eye on our blog for more updates!
Follow on Twitter (X)
Follow us on X (Formerly Twitter) and keep checking the blog to stay up-to-date on all of our new releases. We post a weekly development report so you can easily see what we’ve been up to and follow along our journey towards making your decentralized future a reality.