# What are interesting parts of the Bitcoin Core codebase?

**URL:** <https://delvingbitcoin.org/t/what-are-interesting-parts-of-the-bitcoin-core-codebase/565>\
**Category:** Implementation\
**Created:** [February 14, 2024, 2:36am UTC](https://delvingbitcoin.org/t/what-are-interesting-parts-of-the-bitcoin-core-codebase/565 "2024-02-14T02:36:28Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![sanket1729](https://delvingbitcoin.org/user_avatar/delvingbitcoin.org/sanket1729/32/13_2.png) [@sanket1729](https://delvingbitcoin.org/u/sanket1729)\
**Post date:** [February 14, 2024, 9:48pm UTC](https://delvingbitcoin.org/t/what-are-interesting-parts-of-the-bitcoin-core-codebase/565/6 "2024-02-14T21:48:42Z")

</div>

I find the most interesting parts are in `validation.cpp`. In particular, the re-org logic and rolling back `ConectBlock/DisconnectBlock`, `AcceptBlock`, `AcceptBlockHeader`.

There are several interesting cases around DoS preventions in mempool related functions. Basically, what happens when there is new block in `validation.cpp`. There is also an integration test in python `feature_block.py` that tests lots of interesting scenarios hitting codepaths in validation.cpp.

Second, interpreter.cpp and scripting engine. miniscript.cpp is also is an interesting dive in itself.

---

_[View the full topic](https://delvingbitcoin.org/t/what-are-interesting-parts-of-the-bitcoin-core-codebase/565)._
