ソケットがエラーを起こしても切断されない可能性のあった箇所をいくつか修正した。接続が再びデッドになった場合、切断して再接続するようになるはずだ。フォールバックとして非活動タイムアウトも実装した。
初期ブロックダウンロードの遅さに対する部分的な修正も含まれている。
追加したdebug.log情報を得るために、「-debug」スイッチを付けて実行してくれ。問題がさらにある場合に役立つ。
linux-0.1.6-test2.tar.bz2 12,134,012バイト
ダウンロード:
http://rapidshare.com/files/305231818/linux-0.1.6-test2.tar.bz2.html
Satoshi Nakamotoの書き込み:
何が起こったか分かった。すべてのソケットが何らかの理由でデッドになった。 ネットワークとの通信がなかったのに、8つのゾンビ接続があったため、まだオンラインだと 思い込んでブロックの生成を続けていた。これが起きている時は、ブロックが他の人の ブロックが間に入ることなく連番になっていることで分かる: 2/unconfirmed 3/unconfirmed 4/unconfirmed 5/unconfirmed 6 blocks 7 blocks
6ブロック連続であなただけがブロックを見つけるというのは現実的ではない。
終了して再起動した時、接続してあなたがいない間にネットワークが見つけた45ブロックを ダウンロードした。あなたのブロックはすぐにネットワークにブロードキャストされ なかったため、ネットワークはそれらなしで進んだ。
Wine上でもまったく同じ問題があったようだな。Linuxのソケットハンドリングに何かが あり、いずれの場合もそれが影響しているようだ。
調査を始める。最終的に問題の根本原因を見つけられない場合は、メッセージの不在を 監視して切断する何らかのメカニズムを作る必要がある。今のところの回避策は、 より頻繁に終了して再起動することだけだ。
あなたのノード接続のうち1つを除いてすべてが同時にデッドになり、1つがその少し後に デッドになった。IRCはまだ動いていたので、インターネットからオフラインに なったわけではない。
ブロックのステータスは熟成まで「#/unconfirmed」と表示すべきだろうか (119/unconfirmedから120 blocksへ)。ブロックについては、数字の意味が トランザクションほど強くない。
自分自身のブロックを確認としてカウントしないようにすることは改善になると思う。 欠点は、異なるノードで表示されるステータス番号が一致しなくなることだ。 ステータス番号はブロックの熟成カウントダウンとも連動しなくなる。より軽い 選択肢としては、すべての確認が自分自身のものである場合のみ特別扱いすることだ。
Liberty Standardの書き込み:
6セットの熟成中のコインを失った!10セットのBitcoinが熟成中だった。 最後のセットは約0:22に生成された。Bitcoinが固まる前に2/unconfirmedまで 行った。10:10の時点で、0:22に生成されたBitcoinはまだ2/unconfirmedの ままだった。コインを失うことはないと教えてくれていたので、Bitcoinを シャットダウンして再起動した。良い面としては、シャットダウンと起動は 非常にスムーズだった。しかし残念なことに、ブロックが更新された時、 6セットのBitcoinを失った。4セットはまだ未確認だったが、2セットは 確認済みだった。そして今はそれらの痕跡がない。「生成されたコインを 表示」オプションが使えるようになったので、失敗したBitcoin生成も表示に 戻してもらえないだろうか。それらのBitcoinがただ消えてしまったのが 納得できない。現時点ではまだLinuxビルドを実行しているが、過去24時間に 生成した10セットのBitcoinのうち6セットが消えた今、Wine版が急に魅力的に 見えてきた。debug.logを添付した。
2009年11月10日 午前1:45、Liberty Standard <newlibertystandard@gmail.com mailto:newlibertystandard@gmail.com> の書き込み:
Linuxビルドは過去20時間でかなりの量のBitcoinを生成したし、 データベースエラーについての話を信じているので、今後はLinuxビルドを 実行する方向に向かっている。Linuxビルドの唯一のちょっと困った点は、 コンピュータのファンが50%から100%になったことだ。:-P CPUを制限 できることは分かっているので、あまりにも気になって少ないBitcoin生成で 済ませるなら、そうするかもしれない。あるいは、もっと音楽を聴き始める べきかもしれない……
未確認の状態でシャットダウンしてもリスクはない。 トランザクションや新しいブロックを作成すると、すぐにネットワークにブロードキャストされる。その後の 確認数/#の増加は結果を監視しているだけだ。 その間にあなたのノードが承認を促進するために 何かをすることはない。
出典:COPA対ライト裁判の証言の一環として、2024年2月にマルッティ・マルミによりGitHubで公開。完全な書簡アーカイブはmmalmi.github.io/satoshi/で閲覧可能。