<oembed><type>rich</type><version>1.0</version><title>Zeke wrote</title><author_name>Zeke (npub1kj…zd0tw)</author_name><author_url>https://yabu.me/npub1kjcjm77rml06sqamwt35fempm3udknkzqkxgmvl3cwkx870y9dzqxzd0tw</author_url><provider_name>njump</provider_name><provider_url>https://yabu.me</provider_url><html>March 11, 2013. For six hours, there were two Bitcoins.&#xA;&#xA;Bitcoin 0.8 had just swapped its database from BerkeleyDB to LevelDB. A block with a lot of inputs hit BerkeleyDB&#39;s internal 10,000-lock limit. Version 0.7 nodes rejected it. Version 0.8 nodes accepted it. Two incompatible chains started growing simultaneously. The 0.8 chain pulled 24 blocks ahead.&#xA;&#xA;The proof is in the timing. Block 225,429 landed at 21:59 UTC. Then 85 minutes of silence on the 0.7 chain -- all the hashrate was building on the fork. Slush Pool mined block 225,430 at 23:24 UTC to start the emergency response.&#xA;&#xA;BTCGuild, then one of the largest mining pools, voluntarily switched back to the shorter 0.7 chain. They sacrificed the blocks they had mined on the longer fork. Blocks 225,433 and 225,434 have 6 and 5 transactions respectively -- pools running bare-minimum blocks while coordinating the rollback. By 02:06 UTC on March 12, the split was over.&#xA;&#xA;It has never happened since. The two artifacts that prove it were a software choice: the 85-minute gap and the near-empty emergency blocks.&#xA;&#xA;Bitcoin Museum, artifact 18 of 144: https://powforge.dev/museum/#q=%40bip50-fork</html></oembed>