Post
Topic
Board Development & Technical Discussion
Merits 19 from 6 users
Re: Can we validate all the blocks created till date with the first Satoshi client?
by
gmaxwell
on 27/08/2022, 17:21:20 UTC
⭐ Merited by LoyceV (8) ,pooya87 (5) ,vapourminer (3) ,ETFbitcoin (1) ,n0nce (1) ,DdmrDdmr (1)
Is not it saying that you can validate all Bitcoin blocks with with some special configuration of Bitcoin Cash or Bitcoin SV client
You cannot. BCash and BSV have hardfork changes and accept (and mandate) transactions that were never valid in Bitcoin, and their chains contain  these things and not even even with configuration changes can you get old Bitcoin nodes to accept them.

Looking at this old thread I think more modern understanding has improved-- there were some changes made by Satoshi that were likely latent hardforks in that someone could craft a transaction that would be valid today but not under the very first release, but those transactions didn't exist then and maybe haven't yet been created.  Though only Satoshi has ever made such changes, and it's not even clear how intentional the compatibility break.

The closest Bitcoin has come to a hardfork after Satoshi is that prior to 0.8 all bitcoin nodes would 'randomly' fail to accept blocks that processed too many inputs the too many threshold was specific to each and every computer, though it started being an issue with blocks >500KB in size.  0.8 fixed the bug (accidentally, because it wasn't even known to exist at the time, only somewhat after 0.8 was released when Hearn pressured miners to produce larger blocks). As such if you want to run versions prior than 0.8 from 2013 (almost a decade ago) you need to get around this random failure issue, which at least for a while could be accomplished with just a configuration setting.

A couple months ago I synced a totally stock 0.8 release binary from early 2013 all the way to the current tip, with no special configuration or anything-- it just worked (though very slowly).  This test lets you easily be absolutely confident that there have been no triggered hardforks in the last decade. (Latent hardforks, though, can only be found with careful code review-- certainly there have been no intentional ones since Satoshi, maybe never)

Testing older than 0.8 is harder because really old binaries don't work right on current systems and building the old code with a modern operating systems also doesn't work right.  Satoshi also made an incompatible P2P change in 0.2.10 with a time delay that didn't activate until 2012-ish, so any node older than that requires modification or a custom gateway to get connected to more modern nodes.