Does anyone know why current blocks take so much longer to download in Bitcoin Core than old blocks? As far I as know the increased difficulty is only related to mining and has nothing to with checking downloaded blocks.
Example: When I start a fresh installation of Bitcoin Core, it starts downloading the blockchain. It quickly goes through the first years with small blocks, then after that it's downloading with more than 2 MB/s continuously. That means at least 2 blocks per second (say 90 seconds to download 1 day's worth of blocks). But when it gets closer to the current date, it slows down.
I'm not sure how you don't know the obvious answer to that question: Because the blocks are larger. Just because the block size limit has been at 1 MB for years, that does not mean that the blocks were actually 1 MB in size. Blocks prior to 2015 and 2016 were usually quite smaller. Note: Downloading these blocks at 2 MB/s isn't the bottleneck, but validating them is. You can speed this up if you add a high "dbcache" setting (e.g. 4-8 GB).
Now when I start Bitcoin Core, it downloads fast for a bit, then stops, continues a bit later again, and then downloading stops entirely for a long time. CPU load is low, hard drive I can't hear (and I have no indicator LED). My question is: why is it so slow? Why can't it continue to download 2 MB/s so I can update 3 days in 5 minutes?
It shouldn't stop if it isn't doing anything. Relying on HDD noise is a bad way of testing whether it's actually doing something. If the CPU load is low, then the bottleneck is the IOPS of the HDD.
As another test, on my old Atom laptop, it updates 3 weeks blockchain in 2 calendar days. To come back to the statement I quoted: if blocks would be 20 times larger, and I extrapolate this, my old Atom couldn't keep up anymore. And if this gets worse in the future, it could become a limitation for faster hardware too.
Again: Validation time. You could copy over the whole blockchain and do a reindex to check. In other words, reindex builds the blockchain index and chain state from scratch (no downloading). You're going to notice that it takes
a lot of time, especially on weak hardware such as yours.
Hint: Something like this should probably be discussed in a separate thread.