(context post by jgarzik)

4 件のメッセージ BitcoinTalk ジェフ・ガージック, MoonShadow, サトシ・ナカモト 2010年8月9日 — 2010年8月9日

でたらめな混在状態のようだ…

CWalletKey(main.h): 64ビット Rest of main.h(インメモリのブロック/トランザクションオブジェクトを含む): 32ビット Internal main.cpp calculations: 64ビット Network(version): 64ビット Network(addr): 32ビット Network(getblock): 32ビット Network(submitorder): 32ビット

少なくとも、64ビットに変更する必要がある32ビットのtime変数が多数ある。

プログラマーではないが、これらの32ビット変数が2038年の近くでロールオーバーする可能性があることには疑問を持っている。私の限られた理解では、ブロックチェーンのタイムスタンプはチェーン内の位置にのみ関連しており、そのような制限の対象ではない。もちろん、2週間の難易度計算には正確な秒数が必要だが、最悪の場合でも2038年前後の2週間の計算がずれるだけだ。そして、2週間で難易度がどれだけ変化できるかには制限があるので、それさえ特に重要ではない。

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

タイムスタンプの問題は、32ビット整数としてのunixタイムスタンプが2038年にオーバーフローすることだ。プログラマーだが、「unix time problem」や「2038」でググればもっと情報が見つかる。

素人の観点からY2038問題は理解している。私が言いたかったのは、Bitcoinの構造内にはY2038問題は存在しないのではないかということだ。タイムスタンプはブロックチェーン内の特定の位置にのみ関連するので、クライアントがブロック内に正確なタイムスタンプを持つ必要はないはずだ。それに、それは何だろう?GMT?自分のクライアントはローカル時間で問題なく動作していると思う。もしそれが生成したブロックの拒否につながるなら、教えてほしい。

unsigned intは2106年まで有効だ。それまでにネットワークは少なくとも一度は完全に刷新される必要があるだろう。

signed intはないはずだ。どこかでsigned intを見つけた場合は、教えてほしい(今後25年以内に頼む)。unsigned intに変更する。