I am working on a substrate based blockchain that is in production. We started the node using PoA consensus but now we want to switch to PoS consensus. I did the necessary changes i.e added necessary pallets and switched from aura to babe. And when I run the node from scratch it's working fine. But the forkless upgrade of the existing chain is causing the block production to stop. I also tried to upgrade node binary which was throwing "Unsupported or invalid BabeApi version".
This is the error I am getting when I upgrade my runtime.
Since this change also required node binary upgrade as there were changes in node. This is the error I am getting after upgrading node binary. I did both forkless runtime upgrade and node binary upgrade.
I feel like it is because of Genesis config. Since newly added pallets(babe, Staking, etc.) genesis config will not be loaded during forkless runtime upgrade, could it be related to that?
Can someone guide me on how to do it correctly?
Edit: This question is not similar to How to change consensus engine from PoA to PoS? The difference is this question is asking about the runtime upgrade of the chain from PoA to PoS. In the latter one, it does not tell that or even if that's possible or not.