Git Product home page Git Product logo

Comments (10)

ziggie1984 avatar ziggie1984 commented on May 26, 2024 1

1-Level-HTLCs resulting from STATIC_REMOTE_KEY channels cannot be bumped because their signature is static and negotiated during the building up of the htlc. For anchor channels thats not the case, HTLCs have actually zero-fees, and are only provided with sufficient feerate when they are swept.

from lnd.

ziggie1984 avatar ziggie1984 commented on May 26, 2024 1

Yes theoretically, but the peer has not incentives to do so if the channel is already closed. But yeah it's possible and that's why anchors-zero-fee-htlc-tx were introduced I think.

Closing this issue, because thats the general downside of STATIC_REMOTE_KEY channels. No way to bump the fee of the commitment transaction nor the htlc sweeps.

from lnd.

hieblmi avatar hieblmi commented on May 26, 2024

Hi @ppppso, thanks for the report.

It could be that the second stage htlc output values are too low to be swept, e.g. their value is less than what the sweep fee would be, so lnd isn't sweeping until the mempool fees decrease.

If it doesn't majorly impact your operations, could you restart your node and grep for the outpoint of the channel thats closing and see what lnd reports for it?

from lnd.

ppppso avatar ppppso commented on May 26, 2024

Thanks for your reply.

It could be that the second stage htlc output values are too low to be swept, e.g. their value is less than what the sweep fee would be, so lnd isn't sweeping until the mempool fees decrease.

The unconfirmed tx is the one that spends directly from the force closing tx. My understanding is that this is the first stage and the sweeper can only sweep the second stage, correct?

If it doesn't majorly impact your operations, could you restart your node and grep for the outpoint of the channel thats closing and see what lnd reports for it?

I'm unable to restart the node at the moment. It's a business critical node and due to its size it takes a long time to start. This is the only occurrence I see right now:

[INF] NTFN: Found input xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:x, spent in yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

from lnd.

hieblmi avatar hieblmi commented on May 26, 2024

The unconfirmed tx is the one that spends directly from the force closing tx. My understanding is that this is the first stage and the sweeper can only sweep the second stage, correct?

Yes that's also my understanding. Once the second stage tx is confirmed and enough blocks are mined for the to_self_delay to be expired the htlc output should be swept by the sweeper(if its economical).

Would it be possible to send the related channel output of lncli pendingchannels to hieblmi (a)(t) lightning.engineering so that we can further investigate?

from lnd.

ppppso avatar ppppso commented on May 26, 2024

I'll see if I can do that.

In any case, can you confirm that a pending HTLC in stage one cannot be bumped? The commitment type is STATIC_REMOTE_KEY. I saw in channel.go a comment saying that if it's an anchor commitment then the tx can be resigned (and presumably bumped?), but it's not clear to me what happens if it's not.

Thank you.

from lnd.

hieblmi avatar hieblmi commented on May 26, 2024

Yes I can confirm in that case. Since the second stage htlc tx is tied to spending only the commitment tx(no other inputs can be attached) and the channel doesn't have an anchor this closure can't be fee bumped and has to confirm once the mempool calms. Another way would be to use a fee accelerator to get it confirmed quicker.

Theoretically I think the peers could however sign a new htlc tx with updated fee rate, but afaik that's not implemented yet. But in general new channels should be opened with commitment type 'anchors'.

from lnd.

hieblmi avatar hieblmi commented on May 26, 2024

Is it correct that the fee could theoretically be updated if the htlc is re-signed?

from lnd.

ppppso avatar ppppso commented on May 26, 2024

Thanks for the replies.

What about a CPFP tx? Could it be done?

from lnd.

ziggie1984 avatar ziggie1984 commented on May 26, 2024

no that's not possible because the First-Level HTLC sends to a P2WSH which is bound to a relative timelock.

See: https://github.com/lightning/bolts/blob/master/03-transactions.md#htlc-timeout-and-htlc-success-transactions

from lnd.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.