警告:システムを確認してください(助けてください)
「Warning :Check your system data and time , you may not be able to generate or receive the most recent blocks !」という警告が表示される。
これはどういう意味なのか? 接続はわずか2つで、ブロック数は500しかない。
システム時計がずれすぎていると、作成したブロックは拒否され、クライアントは未来の日付で作成されたと見なすブロックを拒否する。
このエラーメッセージに使うより良いテキストの提案はあるか?次の人が混乱しにくくなるように。
時計が間違っていて修正する必要があると伝えようとしている。
3つの時刻ソースに依存している:
- システム時計
- 他のノード(システム時計と1時間以内の場合) これらが一致しない場合、
- ユーザー(ユーザーにシステム時計を修正するよう求める)
NTPについても考えたが、こちらの方がより安全だ。
Quote from: satoshi on September 05, 2010, 11:36:20 PM
このエラーメッセージに使うより良いテキストの提案はあるか?次の人が混乱しにくくなるように。
時計が間違っていて修正する必要があると伝えようとしている。
3つの時刻ソースに依存している:
- システム時計
- 他のノード(システム時計と1時間以内の場合) これらが一致しない場合、
- ユーザー(ユーザーにシステム時計を修正するよう求める)
NTPについても考えたが、こちらの方がより安全だ。
「コンピュータの日付と時刻が正しいか確認してください。時計がずれているとBitcoinは正しく動作しません。」
UNIXタイムスタンプを返す小さなサーバーを用意し、クライアントがそれを取得してクロックドリフト(時刻の差)を計算し、すべてのプロトコル関連の時刻をそのドリフトに基づいて算出する方式がいいだろう。時計はまだ多少ずれる(システム時計でもどのみちずれる)し、完全な同期は得られない(分散システムでは不可能)が、現在の問題は解決するだろう。
コードは約5行で、タイムスタンプを計算する際の単純な算術(加算)だ。
Quote from: Insti on September 06, 2010, 12:48:08 PM
Bitcoinクライアントが追加のNTPクライアント機能で肥大化すべきではないと思う。
絶対にだめだ。NTPは良い仕事をしている。他のサービスに時計を変更させるな(Bitcoinも含めて)。適切な仕事には適切なツールを!
Quote from: Insti on September 06, 2010, 12:51:37 PM
Quote from: satoshi on September 05, 2010, 11:36:20 PM
このエラーメッセージに使うより良いテキストの提案はあるか?次の人が混乱しにくくなるように。
時計が間違っていて修正する必要があると伝えようとしている。
3つの時刻ソースに依存している:
- システム時計
- 他のノード(システム時計と1時間以内の場合) これらが一致しない場合、
- ユーザー(ユーザーにシステム時計を修正するよう求める)
NTPについても考えたが、こちらの方がより安全だ。
「コンピュータの日付と時刻が正しいか確認してください。時計がずれているとBitcoinは正しく動作しません。」 Quote from: satoshi on September 05, 2010, 11:36:20 PM このエラーメッセージに使うより良いテキストの提案はあるか?次の人が混乱しにくくなるように。
時計が間違っていて修正する必要があると伝えようとしている。
3つの時刻ソースに依存している:
- システム時計
- 他のノード(システム時計と1時間以内の場合) これらが一致しない場合、
- ユーザー(ユーザーにシステム時計を修正するよう求める)
NTPについても考えたが、こちらの方がより安全だ。
「コンピュータの日付と時刻が正しいか確認してください。時計が間違っているとBitcoinは正しく動作しません。」 ありがとう。
Quote from: Cdecker on September 06, 2010, 12:54:07 PM
UNIXタイムスタンプを返す小さなサーバーを用意し、クライアントがそれを取得してクロックドリフト(時刻の差)を計算し、すべてのプロトコル関連の時刻をそのドリフトに基づいて算出する方式がいいだろう。時計はまだ多少ずれる(システム時計でもどのみちずれる)し、完全な同期は得られない(分散システムでは不可能)が、現在の問題は解決するだろう。
コードは約5行で、タイムスタンプを計算する際の単純な算術(加算)だ。
サーバーがすでにたくさん存在しているのに、なぜわざわざ新しいサーバーを立てるのか?
Bitcoinクライアントの肥大化は避けたいし、Bitcoinクライアントがシステム時刻を設定するのは絶対にダメだということには同意する。
しかし、エラーの場合にBitcoinクライアントがログにメッセージを記録し、システム時刻の代わりにネットワーク時刻を使おうとするのは価値があるかもしれない。
既存のサーバーについては、Bitcoinクライアントにはすでにhttpがあるよね?まあ、今ではほとんどのHTTPサーバーがヘッダーに日付を提供している。例えばPythonでは: Code:import os, re, urllib info = urllib.urlopen(‘http://www.yahoo.com/‘).info() regx = r’Date:\s+[A-Z][a-z]{2}, (\d{1,2}) ([A-Z][a-z]{2}) (\d{1,4}) (\d\d:\d\d:\d\d)’ d, M, Y, T = re.search(regx,str(info)).groups() m = 1+“JanFebMarAprMayJunJulAugSepOctNovDec”.index(M)/3 print ‘%04d.%02d.%02d-%s’ % (int(Y), m, int(d), T)
(この出力形式は、システム時刻を設定したい場合に “date -us” でそのまま使える)
もちろん、Yahooだけに頼るよりも、複数のサイトを確認した方がいいだろう。HTTPサーバーの時刻が正確に設定されている保証はないからね。Smiley
システム時刻を設定するのはダメだということには全員が同意していると思うが、内部的にオフセットを使って問題全体を回避することはできないのだろうか? クライアントを(おおよそ)同期させる方法はすでにあるのだから、それを活用すればいいのではないか?
理解できないのだが、このプログラムがシステム時計を設定するという認識をお持ちなのだろうか?そのようなことはしない。
Quote from: Cdecker on September 19, 2010, 08:14:08 PM
システム時刻を設定するのはダメだということには全員が同意していると思うが、内部的にオフセットを使って問題全体を回避することはできないのだろうか? クライアントを(おおよそ)同期させる方法はすでにあるのだから、それを活用すればいいのではないか?
他のノードの時刻の中央値に基づく内部オフセットを使用しているが、セキュリティ上の理由から、1時間以上のオフセットは許可していない。1時間以上ずれていることが示された場合は、ユーザーに時計を修正するよう警告する。