This is to inform the community about the status of the research on vm implementations by Jeron and I, under the az umbrella.
In a nutshell, I’ve personally decided to stop working on zenon, and that includes this project. I’ve had a good time working with jeron on this topic, and I hope he’ll be able to continue what we began with the support of the community. Mostly due to other obligations, we hadn’t been as productive as we wished; nonetheless I think we made some good progress. We were close to publishing another update a few weeks back, but that never happened. From the technical side, this would have mostly consisted of a detailed representation of the current consensus mechanisms.
More important though, we had decided to divert the focus of the research a bit, as we realized that the task is overwhelming for just two people. So the decision was to take a shortcut on the vm selection and proposal process and focus on wasm going forward. The overwhelming consensus in the industry seems to be that this is the de-facto state of the art currently, and the best we could have done anyway would have been to replicate existing sources.
There’s one exception though from my point of view which I wanted to look at on greater detail, and to whoever is going to work on this in the future, I want to mention sol vm. Concerning sol, we all know that it’s an unstable chain and it needs to be verified that the vm is not the culprit here. But then, it has one property which lead me to think that it might be worth a deeper look: It is optimized for account based chains like zenon and a multi-threaded implementation.
In contrast to wasm, which was intended for browser environments and thus is single-threaded. There’s research (probably biased of course) that indicates gigantic performance gains for contracts in sol vm over wasm.
Anyway, a wasm implementation would be much easier and faster to achieve most likely, since there’s a lot of projects already going that route which would work as templates. Don’t be fooled into thinking that having the runtime would automatically enable smart contracts in all languages that potentially can compile to wasm though- there’s a bridging component/library needed for each single language you want to support. Nevertheless it would be an easier task most likely, than doing the same for another vm like sol‘s.
This is surely a bit hand-waving as conclusion for my contribution to the project, but it was something I didn’t want to be left unmentioned as an intermediate result of my work.
Good luck everyone, see you around