What could be the transition plan to Y2038 compliant Bitcoin? (it already is)

8 messages BitcoinTalk throughput, Jeff Garzik, MoonShadow, Satoshi Nakamoto, lachesis, semyazza August 9, 2010 — August 13, 2010
throughput August 9, 2010 12:25 UTC Source ·

Or will it suddenly die then?

Jeff Garzik (jgarzik) August 9, 2010 18:18 UTC Source ·

It seems to be a crazy mix…

CWalletKey(main.h): 64-bit Rest of main.h, including in-memory block/txn objects: 32-bit Internal main.cpp calculations: 64-bit Network(version): 64-bit Network(addr): 32-bit Network(getblock): 32-bit Network(submitorder): 32-bit

At a minimum, there are plenty of 32-bit time variables that clearly need changing to 64-bit.

MoonShadow August 9, 2010 19:58 UTC Source ·

I’m not a programmer, but I have doubts that any of those 32 bit variables are subject to rolling over antime near 2038. My understanding, however limited it may be, is that the timestamp of the blockchain is relative only to it’s position within the chain, and not subject to any such limitations. I’m sure that the two week difficulty calculations require an accurate count of seconds, but at worst, that would just throw off the calculations for the two weeks around the rollover in 2038. And since there is a limit to just how much the difficulty may change in any two week period, even that isn’t particularly crucial.

MoonShadow August 9, 2010 20:12 UTC Source ·

[Deleted] Quote from: davidonpda on August 09, 2010, 08:07:26 PM

The problem with the time stamps, is a unix time stamp as a 32 bit integer WILL overflow in 2038. I am a programmer, but you can find more info on it by googling unix time problem or 2038

I understand the Y2038 problem from a layman’s perspective. My point was that, I doubted that a Y2038 problem exists within the structure of bitcoin. Since the timestamp is relative only to a particular position within the blockchain, there is no reason that a client should require an accurate timestamp within the block. And then, what would that be? GMT? I’m pretty sure that my client is doing fine with local time. If that could be getting any successful blocks rejected, let me know, please.

Satoshi Nakamoto August 9, 2010 20:13 UTC Source ·

unsigned int is good until 2106.  Surely the network will have to be totally revamped at least once by then.

There should not be any signed int.  If you’ve found a signed int somewhere, please tell me (within the next 25 years please) and I’ll change it to unsigned int.

lachesis August 10, 2010 02:36 UTC Source ·
Quote from: satoshi on August 09, 2010, 8:13:26 PM UTC

unsigned int is good until 2106. Surely the network will have to be totally revamped at least once by then.

There should not be any signed int. If you’ve found a signed int somewhere, please tell me (within the next 25 years please) and I’ll change it to unsigned int.

Why are we using uint64 in Version but 32-bit integers in everything else?

throughput August 10, 2010 05:44 UTC Source ·
Quote from: satoshi on August 09, 2010, 8:13:26 PM UTC

unsigned int is good until 2106. Surely the network will have to be totally revamped at least once by then.

There should not be any signed int. If you’ve found a signed int somewhere, please tell me (within the next 25 years please) and I’ll change it to unsigned int.

I have a better idea for timestamps, whatever their underlying type is, for the purposes of calculating the hash, convert them to the string representation of the number of seconds since the epoch (I hope that moment will not change after a century).

semyazza August 13, 2010 00:20 UTC Source ·
Quote from: davidonpda on August 10, 2010, 1:56:33 PM UTC
Quote from: satoshi on August 09, 2010, 8:13:26 PM UTC

unsigned int is good until 2106. Surely the network will have to be totally revamped at least once by then.

There should not be any signed int. If you’ve found a signed int somewhere, please tell me (within the next 25 years please) and I’ll change it to unsigned int.

lol. This made me laugh. Yes, please point these out in the next 25 years. If you’re considerate, make it 24 so he has a year to make the change

+1 on the laugh