LNDのDB肥大化とチャネル強制閉鎖
DiamondHandsノードの運用をする中でたまに発生する問題が、意図しないチャネル強制閉鎖。その原因はDB肥大化によるサーバーのI/O処理の遅延およびCPUの異常な使用率。LNDのDBはbboltで、その実態はSqliteのような単一のファイル。このファイルサイズが10GB以上になれば、そりゃI/O負荷がかかるよね。サーバー負荷がかかるだけでチャネル閉鎖されるのは決済システムとして良くない。そもそもペンディング状態のHTLCがタイムアウトすることでチャネルが強制閉鎖されてしまうわけだが、タイムアウトは最短でも数時間はかかる。その数時間の間にHTLCの処理ができないほど、サーバーのレスポンスが遅いことはあるのだろうか…
サーバー負荷がチャネル強制閉鎖を引き起こすことがある、という言及が以下のとおりあるので、開発者も認識しているのだろう。
https://github.com/lightningnetwork/lnd/issues/6744
ただ、サーバーがハングアップしているわけではないので、たかだか数時間のペンディング状態なHTLCを正常に処理できていないのはバグだと思うんですよね…