0

wondering if I ran a 0.1.0 version of bitcoind today, would it sync and would it operate as normal?

As I understand at the time it was only using P2PK, would 26.0 reject it?

Also, many changes occurred such as OP_RETURN change from 80 to 40 bytes, how is it a soft fork then?

Thanks

1

1 Answer 1

4

I think the linked answers mostly address your question, but if not, let me address the specific examples you bring up.

wondering if I ran a 0.1.0 version of bitcoind today, would it sync and would it operate as normal?

It won't, but not due to block/transaction validity rules that have changed, but because the P2P protocol has changed (the initial packet has a checksum now since 2012, which pre-0.2.10 nodes don't support). I believe it's possible to write a simple proxy to address this (which just adds the checksum in one direction, and removes it in the other), in which case a modern node would be able to talk to very old Bitcoin code.

Another issue is that peer discovery has changed completely. A 0.1.0 node simply won't discover any IP addresses of peers to talk to. This can be addressed by manually connecting.

As I understand at the time it was only using P2PK, would 26.0 reject it?

This is not correct. The "1..." address format corresponding to P2PKH outputs was supported already in 0.1.0. Furthermore, the Bitcoin script system has existed since 0.1.0 as consensus rules. All modern address formats are valid scripts according to the very first release. Also in the other direction, the addresses and outputs the built-in wallet in 0.1.0 uses (P2PKH and P2PK) are still perfectly valid and standard by modern software, so it would be able to receive payments from modern software.

If your question is whether 0.1.0 would be able to transact (as in create transactions that are accepted by the network), it's a bit more tricky. A number of consensus and policy rules have changed. I don't think any of these actually matter, except for the BIP62 low-r policy rule. This would result in only a small percentage (25% or less, depending on circumstances) of transactions created by 0.1.0 to be acceptable to modern rules.

Also, many changes occurred such as OP_RETURN change from 80 to 40 bytes, how is it a soft fork then?

That was just a policy change, it didn't affect consensus rules, and thus has nothing to do with softforks.

There have been softforks (and hardforks, in very early days) since the 0.1.0 release, however none that actually impact the current chain. So to be clear: my belief is that the current Bitcoin blockchain would be entirely valid according to 0.1.0 (but see the linked answer, it would be extremely slow, and would need configuration changes to not trip over).

Not the answer you're looking for? Browse other questions tagged or ask your own question.