Y2038 準拠の Bitcoin への移行計画はどうなる?(すでに準拠済み)
それともその時点で突然死ぬのか?
でたらめな混在状態のようだ…
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 に変更する。
unsigned int は 2106年まで有効だ。それまでにネットワークは少なくとも一度は完全に刷新される必要があるだろう。
signed int はないはずだ。どこかで signed int を見つけた場合は、教えてほしい(今後 25年以内に頼む)。unsigned int に変更する。
なぜ Version では uint64 を使い、それ以外は 32 ビット整数を使っているのだろう?
unsigned int は 2106年まで有効だ。それまでにネットワークは少なくとも一度は完全に刷新される必要があるだろう。
signed int はないはずだ。どこかで signed int を見つけた場合は、教えてほしい(今後 25年以内に頼む)。unsigned int に変更する。
タイムスタンプについてもっと良い案がある。基盤の型が何であれ、ハッシュ計算の用途のために、エポックからの秒数を文字列表現に変換するのだ(その瞬間が一世紀後に変わっていないことを願う)。
サトシ・ナカモトの投稿(2010年8月9日 20:13 UTC)unsigned intは2106年まで持つ。それまでにネットワークが少なくとも一度は全面的に作り直される必要があるのは確実だ。
signed intはどこにもあってはならない。もしどこかでsigned intを見つけたら、(向こう25年以内に)教えてほしい。unsigned intに変更する。
笑った。そう、ぜひ向こう25年以内に指摘してくれ。気を利かせるなら24年にして、彼が修正する1年を残してあげてほしい
笑いに+1