I was wondering if it was possible to easily plug new consensus into the geth client.
Actually, I tried to add a very simple "consensus" (which is a fully centralized proof of authority with a single node being able to validate blocks) based on the provided clique PoA, modifying its very source code. It compiled but ... well, it did not work ;-) I tried to "reverse engineer" the whole geth code but it is obviously quite a work. Do you know if there is any resource (as on-line documentation or UML) that may help me achieve my goal/understand the geth architecture ?
Note that clique PoA could be configured to be a "single noded validation" consensus, however, that is not the heart of my query here.
I wanted to start with the simplest "consensus" as a Proof-of-Concept (it will allow me to have a full understanding of the geth client). More complex consensus may be developed later once PoC is fully functional. Sure, geth source code is well-commented but it is not "that easy" to have good overview of the full geth architecture (dependencies and so on) without spending hours. Maybe someone already tried to do a similar thing.