Understanding Blockchain client implementation details I've started building a custom blockchain as a side project. The goal is to understand and familiarize myself with implementation details that are not usually described in a "What is blockchain" article or similar post. I'm looking for sources, with good examples if possible, on how different problems are solved like block publishing and sharing, node discover, validating transactions, block composition etc. I've gone through a small part of the Bitcoin protocol documentation on the bitcoin wiki and plan to read through the rest of it but, as expected, it is more of a reference and less of an educational resource. Is there any other place that one can read about how to tackle such problems? I've seen tutorials on "How to build a blockchain" but they mostly talk about the chain itself (i.e. creating a block from arbitrary transactions, generating PoW and linking the new block to the chain) without addressing all the "inbetween" stuff which is in my opinion the critical information.
The source code of Bitcoin's reference client, Bitcoin Core, is a good place to learn how the Bitcoin developers solved these problems. You can find Doxygen documentation for the source code here.