Pluggable consensus
At the moment, smoldot supports only Aura and Babe consensus. Is there any plan to make it more pluggable ?
Subspace(https://github.com/subspace/subspace) is built on Substrate with its own consensus protocol and we would love use the substrate connect light client.
If there is plan to make it pluggable, we, at subsapce, would be happy to support the changes to make it pluggable.
Any thoughts ? cc: @tomaka
Right now it's not possible to customize the consensus engine.
The problem with customizing the consensus engine is that "consensus engine" is extremely vague. It's unclear what kind of information a consensus engine needs. It's not really possible to isolate the consensus engine from the rest of the code, because it is so central. Substrate bypasses this problem by providing very vague interfaces and encouraging some kind of spaghetti design, but it's clearly not the road I want smoldot to take.
If we designed some kind of interface that a consensus engine follows, it would ideally be possible to describe this engine from the chain spec. That's because the point of the substrate-connect extension is that it is the same extension for everyone. You install it, and all blockchains frontends can use it. If you had to modify the Rust code of the client in order to plug your consensus engine, then this would no longer be possible. Of course, it's also possible to just run a modified version of smoldot, but it's a less great solution.
At the moment, if you really want a light client I would recommend forking smoldot and modifying it.
Note that this problem doesn't apply to parachains, because their consensus is actually verified by the relay chain validators, and smoldot simply follows the blocks that the relay chain validators have determined to be valid.