> How many Ethereum nodes are there compared to, say, iOS or Android or Windows deployments? What’s their hardware diversity? What’s the complexity of Ethereum compared to the aforementioned operating systems?
The code size for the core software of Ethereum isn't huge. It's possible for one person to understand it, and it's much simpler than iOS, Android or Windows. There are many things running on top, but those are supposd to keep running, similar to applications when you upgrade an OS.
But the finance attached to Ethereum is huge. I checked the figures just now.
$194 billion of ETH is being transferred from one blockchain mechanism to a radically different one, in about 40 minutes (estimated). Instantly, in what is effectively a single special transaction.
The consensus algorithm around that transaction is special and complicated, and it will only ever run once. It has been very carefully tested in advance by many teams at different companies, because it coordinates a handover between two robust but very different kinds of consensus protocols that don't normally link up.
It's unusual for another reason: Blockchains rarely merge two existing blockchains into one. Forking is more common, but not merging two different kinds of blockchains.
This is also an open source style software upgrade, because that $194 billion transaction only happens if enough users of the software have chosen to upgrade and run the new software by then instead of the old software (don't worry, it looks like most of them have). The necessary software was only ready to use a couple of weeks ago, and nothing forces people to upgrade, only incentive and getting the news out to them.
Not only is the consensus algorithm different, the p2p networking protocols are also different after the merge. There are many changes, though most of them are running already on one of the two chains being merged together.
Countless third party applications, defi, secondary blockchains and so on running on top are supposed to be able to continue running, seamlessly. There's a lot of those, running from many authors and companies, and some of those have their own financial value that's not even counted in the $194 billion I mentioned above. Their total value is not clear.
Those third party applications have not, in general, been tested on the new system. Nobody can be sure exactly which ones or how many will fall over, because it has not been possible to test them. It's a big like upgrading Windows XP to Windows 10: Applications are not supposed to be affected if the OS authors did it right.
Unlike most software updates rolled out on large networks, which can be done gradually with the old and new running alongside each other for a while, the Ethereum Merge is one single transaction to transfer everything over including protocols, and requires the whole network to do it all at the same virtual time.
Nobody knows in advance which block will contain the transition. Only the statistical conditions for the transition are set, and there is a kind of meta-consensus protocol to ensure the transfer between very different consensus mechanisms is itself going to satisfy special rules of both consensus mechanisms during the handover.
When it's over, the merge code will probably be deleted from client software, because it is only supposed to run once.
There will be future upgrades, as there have been "hard forks" in the past, but they don't appear require such high levels of carefulness and coordination as the merge. That said, maybe things like the planned switch to sharding, state expiry, change of hash tree structure, and zk rollups will be fairly radical too.