Author

Topic: Can bitcoin 0.1.0 code still interact with the blockchain? (Read 216 times)

legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
I also think the original (0.1.0) version used a public key for identifying who funds were being sent to (making it much bigger than just using a hash of the key)
To be specific, it's uncompressed public key which barely used these days.
As well as the ripemd160 hash that also gets used which probably means the address is quite a lot smaller than an uncompressed public key.
I think there was a pay to IP option at some point too that got removed (it had quite a lot of problems associated with it - especially since communcations weren't encrypted).
Just to clarify. P2PKH or the v1 Bitcoin addresses has been around since the initial release. It is just that the mining interface and the pay to IP are both using P2PK but I doubt it is really of any concern since no one uses them anymore.
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
I really wonder, though.

If we install the v0.1.0 in two computers and let them connect through the GetMyExternalIP, assuming “72.233.89.199:80” or any other IP they decide works, will they start mining the chain from the genesis block? Is there anything that'd prevent them from having their own chain since they'd not be interacted with the current nodes even if they connected somehow?

Well yes, but you might want to look into testnet instead or as well as that - I think the download is quite a bit smaller too but that's a public chain.

I think there's a version around 8.8 or 12 that is compatible with the most recent blockchain
You're talking about Bitcoin-qt 0.8.0
I feel like there was one immediately after 0.8.0 that also had a major update - not sure how critical the memory leaks were of 0.8.5

I also think the original (0.1.0) version used a public key for identifying who funds were being sent to (making it much bigger than just using a hash of the key)

To be specific, it's uncompressed public key which barely used these days.

As well as the ripemd160 hash that also gets used which probably means the address is quite a lot smaller than an uncompressed public key.
I think there was a pay to IP option at some point too that got removed (it had quite a lot of problems associated with it - especially since communcations weren't encrypted).
staff
Activity: 4284
Merit: 8808
I haven't tried anything as old as 0.1.0 but you can take 0.3.2-ish (one of the last before satoshi left) and sync as far as 2013 but then gets stuck because of blocks >500KB exceeding the bdb locks limit.  To do so you need to work around some p2p incompatiblities, and not let it see any new blocks while its syncing because the sync process effectively starts over when it gets sent a new block.

Anything 0.8 from 2013 or newer doesn't have the BDB flaws and can sync all the way to the tip but there are enough bugs exposed by the more resource heavy chain that it can be a bit hard-- so you still need to protect it from seeing reorgs or newly added blocks while it's syncing.
copper member
Activity: 909
Merit: 2301
Quote
can bitcoin 0.1.0 code (the original Satoshi Nakamoto version) still interact with the blockchain?
It probably can, but not directly. Maybe creating a chain of localhost clients with different versions passing data from one node to another will be able to do that, but I'm not sure even about that, something like v1 connected with v2 connected with v3, ..., connected with the latest version (not necessarily each version, just versions when there were major changes). So, technically maybe it is possible to use version 0.1.0, but there will be many issues and workarounds needed to make it usable, it's better to run the latest version.
legendary
Activity: 3472
Merit: 10611
will they start mining the chain from the genesis block?
As far as I know bitcoin core never automatically started mining, you had to manually start mining new blocks.

you have CVE-2010-5139 when  block 74638 contained a transaction that created over 184 billion bitcoins for two different addresses. after this block chain had to be forked and all old nodes need to update them code. so bitcoin 0.1.0 can't work then.
That block no longer exists so the node should technically be able to sync since it follows the longest chain. Also mining a new block with the bug is too expensive an attack for someone to pull off today just to affect the 0.1.0 version.
legendary
Activity: 2702
Merit: 4002
you have CVE-2010-5139 when  block 74638 contained a transaction that created over 184 billion bitcoins for two different addresses. after this block chain had to be forked and all old nodes need to update them code. so bitcoin 0.1.0 can't work then.
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
Is there anything that'd prevent them from having their own chain since they'd not be interacted with the current nodes even if they connected somehow?

No, but the beauty about the consensus is that, ignoring the fact that they will never catch up to the main chain, these nodes are effectively orphaned from the rest of the network (see pooya87 reply above).
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
I really wonder, though.

If we install the v0.1.0 in two computers and let them connect through the GetMyExternalIP, assuming “72.233.89.199:80” or any other IP they decide works, will they start mining the chain from the genesis block? Is there anything that'd prevent them from having their own chain since they'd not be interacted with the current nodes even if they connected somehow?
legendary
Activity: 3472
Merit: 10611
There is also another issue with old client's protocol version. When the current existing nodes receive the version message during handshake and see the protocol version is below 31800 they will reject the connection right away.
https://github.com/bitcoin/bitcoin/blob/8193294caba03b996370873db79cf4fc22a1e95b/src/net_processing.cpp#L2516-L2521

There is another issue which I can think of which involves the database that the early version was using. I don't quite remember the issue but it was something about the db not being able to sync after a certain number of blocks.

Other than that as far as the consensus rules go all the blocks mined so far are backward compatible (the ones containing witness will be stripped).
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
No. Bitcoin 0.1.0's peer discovery mechanism has been deprecated for quite awhile, namely the IRC. You won't be able to discover any peers to connect to when running 0.1.0. Tons of protocol changes since then as well.

There isn't any reason why you should attempt to run 0.1.0, other than to perhaps satisfy your curiosity.
copper member
Activity: 2856
Merit: 3071
https://bit.ly/387FXHi lightning theory
No there have been too many changes for the 0.1.0 version to be compatible with the current bitcoin blockchain.

Running anything other than the latest version is kind of asking for getting vulnerabilities, I think there was a version a few years ago that had a few critical vulnerabilities that had to be patched (partly to do with DDoS and something else)...

I think there's a version around 8.8 or 12 that is compatible with the most recent blockchain, however, doesn't benefit from the lower transaction fees the newer software has that makes it able to segregate signatures away from the transaction making it quite a bit smaller. I also think the original (0.1.0) version used a public key for identifying who funds were being sent to (making it much bigger than just using a hash of the key)

There have also been releases with the more recent versions to increase initial block download time and client synchronisation (since it's around 350GB now I think).
jr. member
Activity: 49
Merit: 3
There are a lot of update to bitcoin software, can bitcoin 0.1.0 code (the original Satoshi Nakamoto version) still interact with the blockchain? Or I have to compile the latest version?

Thanks a lot!
Jump to: