Roasbeef mentioned on IRC that the Lightning specification allows a client to either assume that the latest co-signed commitment has been received by the counterparty, or that it hasn't. (as far as I understand that linked discussion. If I got it wrong, please edit the question)

For an implementation, what are the consequences of preferring to send the oldest co-signed, or sending the newest co-signed? (both unrevoked)

  • Can you please clarify further what you mean by "preferring to send the oldest co-signed, or sending the newest co-signed?". I'll update my answer after that. – Ugam Kamat Aug 13 '19 at 18:52
  • When you receive commitment_signed, you have the signature for a new commitment transaction. But you havn't revoked the old one yet, so it will still be valid. Therefore, you will have two co-signed commitment transactions. One is older than the other. The counterparty cannot know if you received commitment_signed unless you acknowledge it. So if you reconnect and send channel_reestablish you can choose the value of next_commitment_number. If you send a low value, the counterparty might conclude that you lost data, in which case it could breach the channel without fear of repercussion. – Janus Troelsen Aug 13 '19 at 19:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.