ptarmigan
ptarmigan copied to clipboard
remote's unilateral close handling
channelのupdate_infoに前回のcommitment_signed以降に更新が入っていたり、commitment_signed送信後、revoke_and_ack未受信のとき、ピアが2つの有効なremote commitment txのいずれかでunilateral closeをする、などのケースをカバーできていない。 2通りの方法がある。
- channelの状態を巻き戻す
- commitment number毎に回収に必要な情報を保存しておく 「2」は冗長のような気がするが、結局revoked txに対応するためにある程度commitment number毎に情報を保存しておかないといけないので、そちらに統合したほうがいいかもしれない。
まず「1.」でワークアラウンドする。
次の2つの対応が必要
1.1. 未commitのupdateを除外
1.2. commitment_signed
送信済、revoke_and_ack
未受信のときに古い方のtxでremote unilateral closeが行われたときの対応
1.1.は対応済 #1354
1.2.対応済 #1357
ただし最終的に「2.」の方法で対応する必要がある。