I am currently learning how to use geth, so far I was able to create a private POW and POA blockchain using one of its consensus types (Clique).

I am wondering how feasible it would be to clone the entire repository and add a new consensus algorithm (BFT, DPOS, POS etc). Is geth modular enough to do this?

I have gone through the github respository many times https://github.com/ethereum/go-ethereum but I still cannot understand the whole concept of what each folder contributes to. If someone can link me some guide of understanding the code of geth it would be great! Thank you

closed as too broad by shane, Achala Dissanayake, flygoing, GrandFleet, eth Nov 15 '18 at 8:18

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.


It is certainly not impossible and geth is surely modular enough. The consensus Ethereum uses is called Ethash, you can find it here. But even though integration of a new consensus algirithm would be a ton of work, the even harder thing to do would be coming up with a POS-sort-of consensus mechanism for Ethereum in the first place. This is what many people are cracking their minds about, for example on https://ethresear.ch/ .