-
Notifications
You must be signed in to change notification settings - Fork 268
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add cpfp-bump-fees
API
#1783
Add cpfp-bump-fees
API
#1783
Conversation
This seems reasonable to me. Would be a nice to have if APIs were available that make CPFPing simple to implement in RTL for example. But works for me as described already. |
The node will ensure the whole package of unconfirmed txs pays a fee at that feerate.
|
"I'd like to get it merged, if it's useful to you please add a comment on the PR to make it known!" -t-bast. Let it be known that I think its useful. Adding code "to figure out which outpoints belong to him (which should be fairly easy using existing APIs)" would make it even better. |
Our bitcoin client can create a CPFP tx that spends unconfirmed outpoints that belong to our wallet. Note that this only works for wallet outpoints, not outpoints using lightning pubkey scripts.
Add API to let node operators initiate CPFP. It's up to the node operator to select which outpoints to spend and ensure that they are spendable by the bitcoind wallet.
Explain how to configure bitcoind to ensure you'll be able to use CPFP without hitting unconfirmed transaction chains mempool limits.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just a few nits.
It could also be useful to add the option to RBF the spend-local-anchor
tx ?
eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BitcoinCoreClient.scala
Show resolved
Hide resolved
eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BitcoinCoreClient.scala
Outdated
Show resolved
Hide resolved
eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BitcoinCoreClient.scala
Outdated
Show resolved
Hide resolved
eclair-core/src/main/scala/fr/acinq/eclair/blockchain/bitcoind/rpc/BitcoinCoreClient.scala
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apart from the points raised by @sstone it LGTM.
This is a completely separate concern. Also, we already have code to automatically RBF those transactions, I don't think this is necessary? |
This release introduces a few API changes: - `audit` now accepts `--count` and `--skip` parameters to limit the number of retrieved items (#2474, #2487) - `sendtoroute` removes the `--trampolineNodes` argument and implicitly uses a single trampoline hop (#2480) - `sendtoroute` now accept `--maxFeeMsat` to specify an upper bound of fees (#2626) - `payinvoice` always returns the payment result when used with `--blocking`, even when using MPP (#2525) - `node` returns high-level information about a remote node (#2568) - `channel-created` is a new websocket event that is published when a channel's funding transaction has been broadcast (#2567) - `channel-opened` websocket event was updated to contain the final `channel_id` and be published when a channel is ready to process payments (#2567) - `getsentinfo` can now be used with `--offer` to list payments sent to a specific offer - `listreceivedpayments` lists payments received by your node (#2607) - `closedchannels` lists closed channels. It accepts `--count` and `--skip` parameters to limit the number of retrieved items as well (#2642) - `cpfpbumpfees` can be used to unblock chains of unconfirmed transactions by creating a child transaction that pays a high fee (#1783)
We add a
cpfpbumpfees
API that lets you bump the fees of a package of unconfirmed transactions.This lets node operators ensure their funding txs confirm before they hit the
2016
funding timeout (lightning/bolts#839). It's also very useful when you have a long chain of unconfirmed funding transactions and/or mutual close transactions and want to bump them all at once.If for example a node has the following set of unconfirmed transactions:
Assuming 40 sat/byte would be a good feerate for quick confirmation, the node operator can use the following command to get all these transactions confirmed quickly:
NB: this call must be made manually by the node operator, who needs to figure out which outpoints belong to him (which should be fairly easy using existing APIs). A good tree visualization of wallet unconfirmed transactions could be a useful addition to help node operators see the state of their unconfirmed packages and select what they want to bump.