Linux上で安定して動作するようになった。ただし、GUIスレッド外でwxMessageBox()を使用するとクラッシュする。非GUIスレッドはLinuxではウィンドウを開けないためだ。まだその修正には取り掛かっていない。ストレステストを実行しているが、正常に動作している。
wxWidgetsの大部分はUIスレッド以外のスレッドで使用するとスレッドセーフではないが、経験則としてWindowsではUI関連でないものは大丈夫だ。GTKではさらにスレッドアンセーフであることが判明した。一度に多くのものを置き換えたので、一つのもの(おそらくRepaint)だけが原因だったのかは分からないが、wxStringを使うwx関数でさえもUIスレッド外では安全でないと想定する必要がある。これでwxWidgetsの便利なポータビリティサポート関数がすべて使えなくなった。ソースを確認して全て数値処理であるwxThread::GetCPUCount()のような単純なものは残したし、wxMutexは安全でなければ使い物にならないので安全なはずだ。
終了して直後に再度起動すると、ポート8333をバインドできないという問題がある。ポートは約1分後に解放される。何か見落としがない限り、終了前にソケットを閉じているので、他に何ができるか分からない。おそらくLinuxではバインドしたポートの解放に1分かかるということなのだろう。トロイの木馬がWebサーバーを殺して素早くその場所に入り込み、クライアントのリトライを全て拾うことを防ぐためのセキュリティ機能かもしれない。
アイコンのxpmバージョンを正しく作成する方法をまだ調べる必要がある。
データベースのdatファイルがWindowsと互換性があるかどうか気になる。
出典:COPA対ライト裁判の証言の一環として、2024年2月にマルッティ・マルミによりGitHubで公開。完全な書簡アーカイブはmmalmi.github.io/satoshi/で閲覧可能。