Tech Chat: Parachain Migration Deep Dive With Thanos Doukoudakis
Since we secured our parachain slot in September, our tech team has been working hard to prepare the Aventus Network for the state migration to the Aventus Parachain.
After months of hard work, we became a fully functional parachain on Polkadot in December, fulfilling our long-running goal to join the Polkadot community.
We caught up with Thanos Doukoudakis, Software Engineer at Aventus, on the experience of migrating a live blockchain, some of the challenges the team faced, and more.
How did you approach the task of migrating the Aventus Network?
When we decided to become a parachain, it became obvious pretty quickly that the old chain had to be stopped and a new one started. So the question was: how do you migrate two years’ worth of a live network?
We also reached out to the parachain builders community for advice on how other parachains approached the task.
There were a few different approaches, but Centrifuge’s was the best use case for us, and we build our migration strategy on top of theirs.
What challenges did you face during the migration?
We took a divide and conquer approach: everyone was responsible for something and everyone was hands on. So from a teamwork perspective, we had to make sure there was cohesion throughout the team, as inevitably, some tasks were easier and quicker to achieve than others, so people progressed at different rates.
From a more technical perspective, we faced quite a few challenges.
Firstly, the old Aventus Network was using Substrate V3.0.0 – the latest major release, but there have been several intermediary releases of Substrate by Polkadot since. This meant that there were different data structures in the latest version of Substrate to the version we were using – so as well as tackling the challenge of upgrading our pallets, business logic and chain storage to be compatible with the latest version, we also had to convert the tools to be able to read from the old chain, transform and submit to the latest, parachain-compatible version of Substrate.
We migrated the network in batches. Generally, this was quite straightforward, and also reduced the number of unknowns at any given point.
However, there were some data structures that had majorly changed. The most complex one for us was staking. It was completely different. We had to create a custom implementation of staking for our new network, which was a whole new round of development. There were also two separate elements of staking that we had to implement: the staking functionality, and migrating the old state itself. So staking was probably the most complicated and time-consuming element of the migration.
How does the team feel now?
Completing the migration was one of the most rewarding things we’ve achieved as a team together. Most of us have been working together for 12 months or longer, so we’re used to working as a team – but this task pushed us to our limits. We knew we would get it done eventually, but the road was long and bumpy. We just had to take it one day at a time. But once it was finished, the morale within the tech team (and Aventus as a whole) was so high, it was worth every second, and an incredible way to end the year.
Thanos has ten years’ experience in software development, specialised in systems programming. He is an Agile coach and Dev-Ops enthusiast, with a BA & Master’s degree in Computer Science from the University of Athens.
Since joining Aventus in 2019 as a Blockchain Engineer, Thanos has been key in developing the Aventus Network and its surrounding ecosystem.