Closed nayuta-ueno closed 5 years ago
https://github.com/nayutaco/ptarmigan-jar/pull/5
事情は上記を参照のこと。 bitcoinjがpeerを見つけられないまま数時間、しかもmainnetでその状況が発生してしまった。 APIで別のpeerに切り替えさせる方法が見つからなかったため、以下の手順を取ることにした。
JARはptarmdが少なくとも30秒間隔でgetblockcountしているので、そのタイミングでgetDownloadPeer()のnullチェックを行うようにした(7回以上失敗したら例外発行)。Transaction送信などでもgetDownloadPeer()を行うため、必ずしも3分にはならないが、peerが存在しない状況の方が問題なのでよしとする。
getDownloadPeer()
ただ、これだけならptarmdを再起動すれば回復できたと思われるが、現象が起きた後に再起動してもclosing transactionを検出できないままになっていた。 他の箇所も対策が必要であるが、まだそこは調査できていない。
https://github.com/nayutaco/ptarmigan-jar/pull/5
事情は上記を参照のこと。 bitcoinjがpeerを見つけられないまま数時間、しかもmainnetでその状況が発生してしまった。 APIで別のpeerに切り替えさせる方法が見つからなかったため、以下の手順を取ることにした。
JARはptarmdが少なくとも30秒間隔でgetblockcountしているので、そのタイミングで
getDownloadPeer()
のnullチェックを行うようにした(7回以上失敗したら例外発行)。Transaction送信などでもgetDownloadPeer()
を行うため、必ずしも3分にはならないが、peerが存在しない状況の方が問題なのでよしとする。