Skip to content

Allow configuring different max fee rate from peer - #2643

Closed
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate
Closed

Allow configuring different max fee rate from peer#2643
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate

Conversation

@benthecarman

@benthecarmanbenthecarman commented Oct 3, 2023

Copy link
Copy Markdown
Contributor

We've run into issues a few times where channels will get force closed because CLN's fee estimator isn't as good as ours so the fee rate will be too high, resulting in a force close. It'd be nice if we'd have the ability to be able to increase this limit because generally this isn't malicious, just different views of the mempool.

Alternatively would be nice if we can have an option to just deactivate this channel instead of closing it

@codecov-commenter

codecov-commenter commented Oct 3, 2023

Copy link
Copy Markdown

Codecov Report

Attention: 11 lines in your changes are missing coverage. Please review.

Comparison is base (989304e) 89.02% compared to head (0182349) 88.95%.
Report is 2 commits behind head on main.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@ Coverage Diff @@## main #2643 +/- ##
==========================================
- Coverage 89.02% 88.95% -0.07% 
==========================================
Files 112 112 Lines 87168 87224 +56 Branches 87168 87224 +56 ==========================================
- Hits 77605 77594 -11 - Misses 7327 7389 +62 - Partials 2236 2241 +5 
FilesCoverage Δ
lightning/src/ln/channel.rs88.37% <88.88%> (+<0.01%)⬆️
lightning/src/util/config.rs65.55% <37.50%> (-2.33%)⬇️

... and 12 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 2 times, most recently from d811028 to c7622bbCompareOctober 3, 2023 23:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

This API is a bit awkward cause it doesn't apply to anchor channels, and no limit will be applied to anchor channels at all once Bitcoin Core ships package relay. More generally - I'm kinda surprised you hit this? If you're regularly seeing a peer set a feerate we think is too high we can probably just increase the default limit somewhat - like you say its generally not malicious, though there is risk if we let it float too high.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

yeah we had this happen to a few users, i guess our high priority fee rate was between 1-2 sats/vbyte. We since updated it to be a 1 block target instead of 3. But would be nice to be able to just jack this number up so we know this won't happen
image

@AnthonyRonning

Copy link
Copy Markdown
Contributor

Still happening too unfortunately. Bitcoin core has very terrible fee rate estimates that don't reflect reality.

Does LDK use the high priority rate for anything else? I guess we're going to have to either fix CLN or crank up the range that LDK will allow. It's not acceptable to have massive force closures amongst all of our users whenever fee rates temporarily have a disagreement. That should be another issue in itself.

@benthecarman

benthecarman commented Oct 7, 2023

Copy link
Copy Markdown
ContributorAuthor

For added context, we're using mempool.space's fastest fee target for our High Priority and we had a user get this error this morning.

Channel closed because of an exception: Peer's feerate much too high. Actual: 11001. Expected upper limit: 6250

Right now our only way to prevent every user getting force closed is just jacking up our HighPriority fee target

@wpaulino

Copy link
Copy Markdown
Contributor

Increasing your HighPriority fee rates will also affect all HTLC claims. This PR isn't actually allowing you to configure anything yet though? An alternative would be to expose a config option (that only applies to pre-anchors channels) allowing you to set max_counterparty_selected_feerate, the highest fee you'll accept.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

This PR isn't actually allowing you to configure anything yet though?

You can just overwrite the function when you implement the trait, the current implementation will just be the default if the user doesn't implement it.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

An alternative would be to expose a config option

Then we can't have it changing on the mempool, would just be a hard coded value.

@wpaulino

Copy link
Copy Markdown
Contributor

We could do a multiplier on the queried HighPriority fee rate?

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

We could do a multiplier on the queried HighPriority fee rate?

That could work

@benthecarman

benthecarman commented Oct 11, 2023

Copy link
Copy Markdown
ContributorAuthor

Changed to be a part of ChannelConfig, not sure if I handled the serialization correctly however

Comment threadlightning/src/util/config.rs Outdated
Comment threadlightning/src/util/config.rs Outdated
@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 3 times, most recently from ad32c8b to 4adb7daCompareOctober 12, 2023 05:04
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

I'd very much rather do #2659 over adding more config settings and more indirection.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

Closing in favor of #2660

@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman restored the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@benthecarman@codecov-commenter@TheBlueMatt@AnthonyRonning@wpaulino
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Allow configuring different max fee rate from peer by benthecarman · Pull Request #2643 · lightningdevkit/rust-lightning · GitHub
Skip to content

Allow configuring different max fee rate from peer - #2643

Closed
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate
Closed

Allow configuring different max fee rate from peer#2643
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate

Conversation

@benthecarman

@benthecarmanbenthecarman commented Oct 3, 2023

Copy link
Copy Markdown
Contributor

We've run into issues a few times where channels will get force closed because CLN's fee estimator isn't as good as ours so the fee rate will be too high, resulting in a force close. It'd be nice if we'd have the ability to be able to increase this limit because generally this isn't malicious, just different views of the mempool.

Alternatively would be nice if we can have an option to just deactivate this channel instead of closing it

@codecov-commenter

codecov-commenter commented Oct 3, 2023

Copy link
Copy Markdown

Codecov Report

Attention: 11 lines in your changes are missing coverage. Please review.

Comparison is base (989304e) 89.02% compared to head (0182349) 88.95%.
Report is 2 commits behind head on main.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@ Coverage Diff @@## main #2643 +/- ##
==========================================
- Coverage 89.02% 88.95% -0.07% 
==========================================
Files 112 112 Lines 87168 87224 +56 Branches 87168 87224 +56 ==========================================
- Hits 77605 77594 -11 - Misses 7327 7389 +62 - Partials 2236 2241 +5 
FilesCoverage Δ
lightning/src/ln/channel.rs88.37% <88.88%> (+<0.01%)⬆️
lightning/src/util/config.rs65.55% <37.50%> (-2.33%)⬇️

... and 12 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 2 times, most recently from d811028 to c7622bbCompareOctober 3, 2023 23:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

This API is a bit awkward cause it doesn't apply to anchor channels, and no limit will be applied to anchor channels at all once Bitcoin Core ships package relay. More generally - I'm kinda surprised you hit this? If you're regularly seeing a peer set a feerate we think is too high we can probably just increase the default limit somewhat - like you say its generally not malicious, though there is risk if we let it float too high.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

yeah we had this happen to a few users, i guess our high priority fee rate was between 1-2 sats/vbyte. We since updated it to be a 1 block target instead of 3. But would be nice to be able to just jack this number up so we know this won't happen
image

@AnthonyRonning

Copy link
Copy Markdown
Contributor

Still happening too unfortunately. Bitcoin core has very terrible fee rate estimates that don't reflect reality.

Does LDK use the high priority rate for anything else? I guess we're going to have to either fix CLN or crank up the range that LDK will allow. It's not acceptable to have massive force closures amongst all of our users whenever fee rates temporarily have a disagreement. That should be another issue in itself.

@benthecarman

benthecarman commented Oct 7, 2023

Copy link
Copy Markdown
ContributorAuthor

For added context, we're using mempool.space's fastest fee target for our High Priority and we had a user get this error this morning.

Channel closed because of an exception: Peer's feerate much too high. Actual: 11001. Expected upper limit: 6250

Right now our only way to prevent every user getting force closed is just jacking up our HighPriority fee target

@wpaulino

Copy link
Copy Markdown
Contributor

Increasing your HighPriority fee rates will also affect all HTLC claims. This PR isn't actually allowing you to configure anything yet though? An alternative would be to expose a config option (that only applies to pre-anchors channels) allowing you to set max_counterparty_selected_feerate, the highest fee you'll accept.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

This PR isn't actually allowing you to configure anything yet though?

You can just overwrite the function when you implement the trait, the current implementation will just be the default if the user doesn't implement it.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

An alternative would be to expose a config option

Then we can't have it changing on the mempool, would just be a hard coded value.

@wpaulino

Copy link
Copy Markdown
Contributor

We could do a multiplier on the queried HighPriority fee rate?

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

We could do a multiplier on the queried HighPriority fee rate?

That could work

@benthecarman

benthecarman commented Oct 11, 2023

Copy link
Copy Markdown
ContributorAuthor

Changed to be a part of ChannelConfig, not sure if I handled the serialization correctly however

Comment threadlightning/src/util/config.rs Outdated
Comment threadlightning/src/util/config.rs Outdated
@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 3 times, most recently from ad32c8b to 4adb7daCompareOctober 12, 2023 05:04
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

I'd very much rather do #2659 over adding more config settings and more indirection.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

Closing in favor of #2660

@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman restored the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@benthecarman@codecov-commenter@TheBlueMatt@AnthonyRonning@wpaulino
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Allow configuring different max fee rate from peer by benthecarman · Pull Request #2643 · lightningdevkit/rust-lightning · GitHub
Skip to content

Allow configuring different max fee rate from peer - #2643

Closed
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate
Closed

Allow configuring different max fee rate from peer#2643
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate

Conversation

@benthecarman

@benthecarmanbenthecarman commented Oct 3, 2023

Copy link
Copy Markdown
Contributor

We've run into issues a few times where channels will get force closed because CLN's fee estimator isn't as good as ours so the fee rate will be too high, resulting in a force close. It'd be nice if we'd have the ability to be able to increase this limit because generally this isn't malicious, just different views of the mempool.

Alternatively would be nice if we can have an option to just deactivate this channel instead of closing it

@codecov-commenter

codecov-commenter commented Oct 3, 2023

Copy link
Copy Markdown

Codecov Report

Attention: 11 lines in your changes are missing coverage. Please review.

Comparison is base (989304e) 89.02% compared to head (0182349) 88.95%.
Report is 2 commits behind head on main.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@ Coverage Diff @@## main #2643 +/- ##
==========================================
- Coverage 89.02% 88.95% -0.07% 
==========================================
Files 112 112 Lines 87168 87224 +56 Branches 87168 87224 +56 ==========================================
- Hits 77605 77594 -11 - Misses 7327 7389 +62 - Partials 2236 2241 +5 
FilesCoverage Δ
lightning/src/ln/channel.rs88.37% <88.88%> (+<0.01%)⬆️
lightning/src/util/config.rs65.55% <37.50%> (-2.33%)⬇️

... and 12 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 2 times, most recently from d811028 to c7622bbCompareOctober 3, 2023 23:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

This API is a bit awkward cause it doesn't apply to anchor channels, and no limit will be applied to anchor channels at all once Bitcoin Core ships package relay. More generally - I'm kinda surprised you hit this? If you're regularly seeing a peer set a feerate we think is too high we can probably just increase the default limit somewhat - like you say its generally not malicious, though there is risk if we let it float too high.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

yeah we had this happen to a few users, i guess our high priority fee rate was between 1-2 sats/vbyte. We since updated it to be a 1 block target instead of 3. But would be nice to be able to just jack this number up so we know this won't happen
image

@AnthonyRonning

Copy link
Copy Markdown
Contributor

Still happening too unfortunately. Bitcoin core has very terrible fee rate estimates that don't reflect reality.

Does LDK use the high priority rate for anything else? I guess we're going to have to either fix CLN or crank up the range that LDK will allow. It's not acceptable to have massive force closures amongst all of our users whenever fee rates temporarily have a disagreement. That should be another issue in itself.

@benthecarman

benthecarman commented Oct 7, 2023

Copy link
Copy Markdown
ContributorAuthor

For added context, we're using mempool.space's fastest fee target for our High Priority and we had a user get this error this morning.

Channel closed because of an exception: Peer's feerate much too high. Actual: 11001. Expected upper limit: 6250

Right now our only way to prevent every user getting force closed is just jacking up our HighPriority fee target

@wpaulino

Copy link
Copy Markdown
Contributor

Increasing your HighPriority fee rates will also affect all HTLC claims. This PR isn't actually allowing you to configure anything yet though? An alternative would be to expose a config option (that only applies to pre-anchors channels) allowing you to set max_counterparty_selected_feerate, the highest fee you'll accept.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

This PR isn't actually allowing you to configure anything yet though?

You can just overwrite the function when you implement the trait, the current implementation will just be the default if the user doesn't implement it.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

An alternative would be to expose a config option

Then we can't have it changing on the mempool, would just be a hard coded value.

@wpaulino

Copy link
Copy Markdown
Contributor

We could do a multiplier on the queried HighPriority fee rate?

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

We could do a multiplier on the queried HighPriority fee rate?

That could work

@benthecarman

benthecarman commented Oct 11, 2023

Copy link
Copy Markdown
ContributorAuthor

Changed to be a part of ChannelConfig, not sure if I handled the serialization correctly however

Comment threadlightning/src/util/config.rs Outdated
Comment threadlightning/src/util/config.rs Outdated
@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 3 times, most recently from ad32c8b to 4adb7daCompareOctober 12, 2023 05:04
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

I'd very much rather do #2659 over adding more config settings and more indirection.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

Closing in favor of #2660

@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman restored the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@benthecarman@codecov-commenter@TheBlueMatt@AnthonyRonning@wpaulino
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Allow configuring different max fee rate from peer by benthecarman · Pull Request #2643 · lightningdevkit/rust-lightning · GitHub
Skip to content

Allow configuring different max fee rate from peer - #2643

Closed
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate
Closed

Allow configuring different max fee rate from peer#2643
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate

Conversation

@benthecarman

@benthecarmanbenthecarman commented Oct 3, 2023

Copy link
Copy Markdown
Contributor

We've run into issues a few times where channels will get force closed because CLN's fee estimator isn't as good as ours so the fee rate will be too high, resulting in a force close. It'd be nice if we'd have the ability to be able to increase this limit because generally this isn't malicious, just different views of the mempool.

Alternatively would be nice if we can have an option to just deactivate this channel instead of closing it

@codecov-commenter

codecov-commenter commented Oct 3, 2023

Copy link
Copy Markdown

Codecov Report

Attention: 11 lines in your changes are missing coverage. Please review.

Comparison is base (989304e) 89.02% compared to head (0182349) 88.95%.
Report is 2 commits behind head on main.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@ Coverage Diff @@## main #2643 +/- ##
==========================================
- Coverage 89.02% 88.95% -0.07% 
==========================================
Files 112 112 Lines 87168 87224 +56 Branches 87168 87224 +56 ==========================================
- Hits 77605 77594 -11 - Misses 7327 7389 +62 - Partials 2236 2241 +5 
FilesCoverage Δ
lightning/src/ln/channel.rs88.37% <88.88%> (+<0.01%)⬆️
lightning/src/util/config.rs65.55% <37.50%> (-2.33%)⬇️

... and 12 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 2 times, most recently from d811028 to c7622bbCompareOctober 3, 2023 23:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

This API is a bit awkward cause it doesn't apply to anchor channels, and no limit will be applied to anchor channels at all once Bitcoin Core ships package relay. More generally - I'm kinda surprised you hit this? If you're regularly seeing a peer set a feerate we think is too high we can probably just increase the default limit somewhat - like you say its generally not malicious, though there is risk if we let it float too high.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

yeah we had this happen to a few users, i guess our high priority fee rate was between 1-2 sats/vbyte. We since updated it to be a 1 block target instead of 3. But would be nice to be able to just jack this number up so we know this won't happen
image

@AnthonyRonning

Copy link
Copy Markdown
Contributor

Still happening too unfortunately. Bitcoin core has very terrible fee rate estimates that don't reflect reality.

Does LDK use the high priority rate for anything else? I guess we're going to have to either fix CLN or crank up the range that LDK will allow. It's not acceptable to have massive force closures amongst all of our users whenever fee rates temporarily have a disagreement. That should be another issue in itself.

@benthecarman

benthecarman commented Oct 7, 2023

Copy link
Copy Markdown
ContributorAuthor

For added context, we're using mempool.space's fastest fee target for our High Priority and we had a user get this error this morning.

Channel closed because of an exception: Peer's feerate much too high. Actual: 11001. Expected upper limit: 6250

Right now our only way to prevent every user getting force closed is just jacking up our HighPriority fee target

@wpaulino

Copy link
Copy Markdown
Contributor

Increasing your HighPriority fee rates will also affect all HTLC claims. This PR isn't actually allowing you to configure anything yet though? An alternative would be to expose a config option (that only applies to pre-anchors channels) allowing you to set max_counterparty_selected_feerate, the highest fee you'll accept.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

This PR isn't actually allowing you to configure anything yet though?

You can just overwrite the function when you implement the trait, the current implementation will just be the default if the user doesn't implement it.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

An alternative would be to expose a config option

Then we can't have it changing on the mempool, would just be a hard coded value.

@wpaulino

Copy link
Copy Markdown
Contributor

We could do a multiplier on the queried HighPriority fee rate?

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

We could do a multiplier on the queried HighPriority fee rate?

That could work

@benthecarman

benthecarman commented Oct 11, 2023

Copy link
Copy Markdown
ContributorAuthor

Changed to be a part of ChannelConfig, not sure if I handled the serialization correctly however

Comment threadlightning/src/util/config.rs Outdated
Comment threadlightning/src/util/config.rs Outdated
@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 3 times, most recently from ad32c8b to 4adb7daCompareOctober 12, 2023 05:04
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

I'd very much rather do #2659 over adding more config settings and more indirection.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

Closing in favor of #2660

@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman restored the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@benthecarman@codecov-commenter@TheBlueMatt@AnthonyRonning@wpaulino
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Allow configuring different max fee rate from peer by benthecarman · Pull Request #2643 · lightningdevkit/rust-lightning · GitHub
Skip to content

Allow configuring different max fee rate from peer - #2643

Closed
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate
Closed

Allow configuring different max fee rate from peer#2643
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate

Conversation

@benthecarman

@benthecarmanbenthecarman commented Oct 3, 2023

Copy link
Copy Markdown
Contributor

We've run into issues a few times where channels will get force closed because CLN's fee estimator isn't as good as ours so the fee rate will be too high, resulting in a force close. It'd be nice if we'd have the ability to be able to increase this limit because generally this isn't malicious, just different views of the mempool.

Alternatively would be nice if we can have an option to just deactivate this channel instead of closing it

@codecov-commenter

codecov-commenter commented Oct 3, 2023

Copy link
Copy Markdown

Codecov Report

Attention: 11 lines in your changes are missing coverage. Please review.

Comparison is base (989304e) 89.02% compared to head (0182349) 88.95%.
Report is 2 commits behind head on main.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@ Coverage Diff @@## main #2643 +/- ##
==========================================
- Coverage 89.02% 88.95% -0.07% 
==========================================
Files 112 112 Lines 87168 87224 +56 Branches 87168 87224 +56 ==========================================
- Hits 77605 77594 -11 - Misses 7327 7389 +62 - Partials 2236 2241 +5 
FilesCoverage Δ
lightning/src/ln/channel.rs88.37% <88.88%> (+<0.01%)⬆️
lightning/src/util/config.rs65.55% <37.50%> (-2.33%)⬇️

... and 12 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 2 times, most recently from d811028 to c7622bbCompareOctober 3, 2023 23:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

This API is a bit awkward cause it doesn't apply to anchor channels, and no limit will be applied to anchor channels at all once Bitcoin Core ships package relay. More generally - I'm kinda surprised you hit this? If you're regularly seeing a peer set a feerate we think is too high we can probably just increase the default limit somewhat - like you say its generally not malicious, though there is risk if we let it float too high.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

yeah we had this happen to a few users, i guess our high priority fee rate was between 1-2 sats/vbyte. We since updated it to be a 1 block target instead of 3. But would be nice to be able to just jack this number up so we know this won't happen
image

@AnthonyRonning

Copy link
Copy Markdown
Contributor

Still happening too unfortunately. Bitcoin core has very terrible fee rate estimates that don't reflect reality.

Does LDK use the high priority rate for anything else? I guess we're going to have to either fix CLN or crank up the range that LDK will allow. It's not acceptable to have massive force closures amongst all of our users whenever fee rates temporarily have a disagreement. That should be another issue in itself.

@benthecarman

benthecarman commented Oct 7, 2023

Copy link
Copy Markdown
ContributorAuthor

For added context, we're using mempool.space's fastest fee target for our High Priority and we had a user get this error this morning.

Channel closed because of an exception: Peer's feerate much too high. Actual: 11001. Expected upper limit: 6250

Right now our only way to prevent every user getting force closed is just jacking up our HighPriority fee target

@wpaulino

Copy link
Copy Markdown
Contributor

Increasing your HighPriority fee rates will also affect all HTLC claims. This PR isn't actually allowing you to configure anything yet though? An alternative would be to expose a config option (that only applies to pre-anchors channels) allowing you to set max_counterparty_selected_feerate, the highest fee you'll accept.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

This PR isn't actually allowing you to configure anything yet though?

You can just overwrite the function when you implement the trait, the current implementation will just be the default if the user doesn't implement it.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

An alternative would be to expose a config option

Then we can't have it changing on the mempool, would just be a hard coded value.

@wpaulino

Copy link
Copy Markdown
Contributor

We could do a multiplier on the queried HighPriority fee rate?

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

We could do a multiplier on the queried HighPriority fee rate?

That could work

@benthecarman

benthecarman commented Oct 11, 2023

Copy link
Copy Markdown
ContributorAuthor

Changed to be a part of ChannelConfig, not sure if I handled the serialization correctly however

Comment threadlightning/src/util/config.rs Outdated
Comment threadlightning/src/util/config.rs Outdated
@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 3 times, most recently from ad32c8b to 4adb7daCompareOctober 12, 2023 05:04
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

I'd very much rather do #2659 over adding more config settings and more indirection.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

Closing in favor of #2660

@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman restored the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@benthecarman@codecov-commenter@TheBlueMatt@AnthonyRonning@wpaulino
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Allow configuring different max fee rate from peer by benthecarman · Pull Request #2643 · lightningdevkit/rust-lightning · GitHub
Skip to content

Allow configuring different max fee rate from peer - #2643

Closed
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate
Closed

Allow configuring different max fee rate from peer#2643
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate

Conversation

@benthecarman

@benthecarmanbenthecarman commented Oct 3, 2023

Copy link
Copy Markdown
Contributor

We've run into issues a few times where channels will get force closed because CLN's fee estimator isn't as good as ours so the fee rate will be too high, resulting in a force close. It'd be nice if we'd have the ability to be able to increase this limit because generally this isn't malicious, just different views of the mempool.

Alternatively would be nice if we can have an option to just deactivate this channel instead of closing it

@codecov-commenter

codecov-commenter commented Oct 3, 2023

Copy link
Copy Markdown

Codecov Report

Attention: 11 lines in your changes are missing coverage. Please review.

Comparison is base (989304e) 89.02% compared to head (0182349) 88.95%.
Report is 2 commits behind head on main.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@ Coverage Diff @@## main #2643 +/- ##
==========================================
- Coverage 89.02% 88.95% -0.07% 
==========================================
Files 112 112 Lines 87168 87224 +56 Branches 87168 87224 +56 ==========================================
- Hits 77605 77594 -11 - Misses 7327 7389 +62 - Partials 2236 2241 +5 
FilesCoverage Δ
lightning/src/ln/channel.rs88.37% <88.88%> (+<0.01%)⬆️
lightning/src/util/config.rs65.55% <37.50%> (-2.33%)⬇️

... and 12 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 2 times, most recently from d811028 to c7622bbCompareOctober 3, 2023 23:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

This API is a bit awkward cause it doesn't apply to anchor channels, and no limit will be applied to anchor channels at all once Bitcoin Core ships package relay. More generally - I'm kinda surprised you hit this? If you're regularly seeing a peer set a feerate we think is too high we can probably just increase the default limit somewhat - like you say its generally not malicious, though there is risk if we let it float too high.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

yeah we had this happen to a few users, i guess our high priority fee rate was between 1-2 sats/vbyte. We since updated it to be a 1 block target instead of 3. But would be nice to be able to just jack this number up so we know this won't happen
image

@AnthonyRonning

Copy link
Copy Markdown
Contributor

Still happening too unfortunately. Bitcoin core has very terrible fee rate estimates that don't reflect reality.

Does LDK use the high priority rate for anything else? I guess we're going to have to either fix CLN or crank up the range that LDK will allow. It's not acceptable to have massive force closures amongst all of our users whenever fee rates temporarily have a disagreement. That should be another issue in itself.

@benthecarman

benthecarman commented Oct 7, 2023

Copy link
Copy Markdown
ContributorAuthor

For added context, we're using mempool.space's fastest fee target for our High Priority and we had a user get this error this morning.

Channel closed because of an exception: Peer's feerate much too high. Actual: 11001. Expected upper limit: 6250

Right now our only way to prevent every user getting force closed is just jacking up our HighPriority fee target

@wpaulino

Copy link
Copy Markdown
Contributor

Increasing your HighPriority fee rates will also affect all HTLC claims. This PR isn't actually allowing you to configure anything yet though? An alternative would be to expose a config option (that only applies to pre-anchors channels) allowing you to set max_counterparty_selected_feerate, the highest fee you'll accept.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

This PR isn't actually allowing you to configure anything yet though?

You can just overwrite the function when you implement the trait, the current implementation will just be the default if the user doesn't implement it.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

An alternative would be to expose a config option

Then we can't have it changing on the mempool, would just be a hard coded value.

@wpaulino

Copy link
Copy Markdown
Contributor

We could do a multiplier on the queried HighPriority fee rate?

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

We could do a multiplier on the queried HighPriority fee rate?

That could work

@benthecarman

benthecarman commented Oct 11, 2023

Copy link
Copy Markdown
ContributorAuthor

Changed to be a part of ChannelConfig, not sure if I handled the serialization correctly however

Comment threadlightning/src/util/config.rs Outdated
Comment threadlightning/src/util/config.rs Outdated
@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 3 times, most recently from ad32c8b to 4adb7daCompareOctober 12, 2023 05:04
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

I'd very much rather do #2659 over adding more config settings and more indirection.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

Closing in favor of #2660

@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman restored the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@benthecarman@codecov-commenter@TheBlueMatt@AnthonyRonning@wpaulino
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Allow configuring different max fee rate from peer by benthecarman · Pull Request #2643 · lightningdevkit/rust-lightning · GitHub
Skip to content

Allow configuring different max fee rate from peer - #2643

Closed
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate
Closed

Allow configuring different max fee rate from peer#2643
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate

Conversation

@benthecarman

@benthecarmanbenthecarman commented Oct 3, 2023

Copy link
Copy Markdown
Contributor

We've run into issues a few times where channels will get force closed because CLN's fee estimator isn't as good as ours so the fee rate will be too high, resulting in a force close. It'd be nice if we'd have the ability to be able to increase this limit because generally this isn't malicious, just different views of the mempool.

Alternatively would be nice if we can have an option to just deactivate this channel instead of closing it

@codecov-commenter

codecov-commenter commented Oct 3, 2023

Copy link
Copy Markdown

Codecov Report

Attention: 11 lines in your changes are missing coverage. Please review.

Comparison is base (989304e) 89.02% compared to head (0182349) 88.95%.
Report is 2 commits behind head on main.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@ Coverage Diff @@## main #2643 +/- ##
==========================================
- Coverage 89.02% 88.95% -0.07% 
==========================================
Files 112 112 Lines 87168 87224 +56 Branches 87168 87224 +56 ==========================================
- Hits 77605 77594 -11 - Misses 7327 7389 +62 - Partials 2236 2241 +5 
FilesCoverage Δ
lightning/src/ln/channel.rs88.37% <88.88%> (+<0.01%)⬆️
lightning/src/util/config.rs65.55% <37.50%> (-2.33%)⬇️

... and 12 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 2 times, most recently from d811028 to c7622bbCompareOctober 3, 2023 23:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

This API is a bit awkward cause it doesn't apply to anchor channels, and no limit will be applied to anchor channels at all once Bitcoin Core ships package relay. More generally - I'm kinda surprised you hit this? If you're regularly seeing a peer set a feerate we think is too high we can probably just increase the default limit somewhat - like you say its generally not malicious, though there is risk if we let it float too high.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

yeah we had this happen to a few users, i guess our high priority fee rate was between 1-2 sats/vbyte. We since updated it to be a 1 block target instead of 3. But would be nice to be able to just jack this number up so we know this won't happen
image

@AnthonyRonning

Copy link
Copy Markdown
Contributor

Still happening too unfortunately. Bitcoin core has very terrible fee rate estimates that don't reflect reality.

Does LDK use the high priority rate for anything else? I guess we're going to have to either fix CLN or crank up the range that LDK will allow. It's not acceptable to have massive force closures amongst all of our users whenever fee rates temporarily have a disagreement. That should be another issue in itself.

@benthecarman

benthecarman commented Oct 7, 2023

Copy link
Copy Markdown
ContributorAuthor

For added context, we're using mempool.space's fastest fee target for our High Priority and we had a user get this error this morning.

Channel closed because of an exception: Peer's feerate much too high. Actual: 11001. Expected upper limit: 6250

Right now our only way to prevent every user getting force closed is just jacking up our HighPriority fee target

@wpaulino

Copy link
Copy Markdown
Contributor

Increasing your HighPriority fee rates will also affect all HTLC claims. This PR isn't actually allowing you to configure anything yet though? An alternative would be to expose a config option (that only applies to pre-anchors channels) allowing you to set max_counterparty_selected_feerate, the highest fee you'll accept.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

This PR isn't actually allowing you to configure anything yet though?

You can just overwrite the function when you implement the trait, the current implementation will just be the default if the user doesn't implement it.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

An alternative would be to expose a config option

Then we can't have it changing on the mempool, would just be a hard coded value.

@wpaulino

Copy link
Copy Markdown
Contributor

We could do a multiplier on the queried HighPriority fee rate?

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

We could do a multiplier on the queried HighPriority fee rate?

That could work

@benthecarman

benthecarman commented Oct 11, 2023

Copy link
Copy Markdown
ContributorAuthor

Changed to be a part of ChannelConfig, not sure if I handled the serialization correctly however

Comment threadlightning/src/util/config.rs Outdated
Comment threadlightning/src/util/config.rs Outdated
@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 3 times, most recently from ad32c8b to 4adb7daCompareOctober 12, 2023 05:04
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

I'd very much rather do #2659 over adding more config settings and more indirection.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

Closing in favor of #2660

@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman restored the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@benthecarman@codecov-commenter@TheBlueMatt@AnthonyRonning@wpaulino
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Allow configuring different max fee rate from peer by benthecarman · Pull Request #2643 · lightningdevkit/rust-lightning · GitHub
Skip to content

Allow configuring different max fee rate from peer - #2643

Closed
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate
Closed

Allow configuring different max fee rate from peer#2643
benthecarman wants to merge 1 commit into
lightningdevkit:mainfrom
benthecarman:max-fee-rate

Conversation

@benthecarman

@benthecarmanbenthecarman commented Oct 3, 2023

Copy link
Copy Markdown
Contributor

We've run into issues a few times where channels will get force closed because CLN's fee estimator isn't as good as ours so the fee rate will be too high, resulting in a force close. It'd be nice if we'd have the ability to be able to increase this limit because generally this isn't malicious, just different views of the mempool.

Alternatively would be nice if we can have an option to just deactivate this channel instead of closing it

@codecov-commenter

codecov-commenter commented Oct 3, 2023

Copy link
Copy Markdown

Codecov Report

Attention: 11 lines in your changes are missing coverage. Please review.

Comparison is base (989304e) 89.02% compared to head (0182349) 88.95%.
Report is 2 commits behind head on main.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@ Coverage Diff @@## main #2643 +/- ##
==========================================
- Coverage 89.02% 88.95% -0.07% 
==========================================
Files 112 112 Lines 87168 87224 +56 Branches 87168 87224 +56 ==========================================
- Hits 77605 77594 -11 - Misses 7327 7389 +62 - Partials 2236 2241 +5 
FilesCoverage Δ
lightning/src/ln/channel.rs88.37% <88.88%> (+<0.01%)⬆️
lightning/src/util/config.rs65.55% <37.50%> (-2.33%)⬇️

... and 12 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 2 times, most recently from d811028 to c7622bbCompareOctober 3, 2023 23:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

This API is a bit awkward cause it doesn't apply to anchor channels, and no limit will be applied to anchor channels at all once Bitcoin Core ships package relay. More generally - I'm kinda surprised you hit this? If you're regularly seeing a peer set a feerate we think is too high we can probably just increase the default limit somewhat - like you say its generally not malicious, though there is risk if we let it float too high.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

yeah we had this happen to a few users, i guess our high priority fee rate was between 1-2 sats/vbyte. We since updated it to be a 1 block target instead of 3. But would be nice to be able to just jack this number up so we know this won't happen
image

@AnthonyRonning

Copy link
Copy Markdown
Contributor

Still happening too unfortunately. Bitcoin core has very terrible fee rate estimates that don't reflect reality.

Does LDK use the high priority rate for anything else? I guess we're going to have to either fix CLN or crank up the range that LDK will allow. It's not acceptable to have massive force closures amongst all of our users whenever fee rates temporarily have a disagreement. That should be another issue in itself.

@benthecarman

benthecarman commented Oct 7, 2023

Copy link
Copy Markdown
ContributorAuthor

For added context, we're using mempool.space's fastest fee target for our High Priority and we had a user get this error this morning.

Channel closed because of an exception: Peer's feerate much too high. Actual: 11001. Expected upper limit: 6250

Right now our only way to prevent every user getting force closed is just jacking up our HighPriority fee target

@wpaulino

Copy link
Copy Markdown
Contributor

Increasing your HighPriority fee rates will also affect all HTLC claims. This PR isn't actually allowing you to configure anything yet though? An alternative would be to expose a config option (that only applies to pre-anchors channels) allowing you to set max_counterparty_selected_feerate, the highest fee you'll accept.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

This PR isn't actually allowing you to configure anything yet though?

You can just overwrite the function when you implement the trait, the current implementation will just be the default if the user doesn't implement it.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

An alternative would be to expose a config option

Then we can't have it changing on the mempool, would just be a hard coded value.

@wpaulino

Copy link
Copy Markdown
Contributor

We could do a multiplier on the queried HighPriority fee rate?

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

We could do a multiplier on the queried HighPriority fee rate?

That could work

@benthecarman

benthecarman commented Oct 11, 2023

Copy link
Copy Markdown
ContributorAuthor

Changed to be a part of ChannelConfig, not sure if I handled the serialization correctly however

Comment threadlightning/src/util/config.rs Outdated
Comment threadlightning/src/util/config.rs Outdated
@benthecarman
benthecarmanforce-pushed the max-fee-rate branch 3 times, most recently from ad32c8b to 4adb7daCompareOctober 12, 2023 05:04
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

I'd very much rather do #2659 over adding more config settings and more indirection.

@benthecarman

Copy link
Copy Markdown
ContributorAuthor

Closing in favor of #2660

@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman restored the max-fee-rate branch October 12, 2023 22:18
@benthecarman
benthecarman deleted the max-fee-rate branch October 12, 2023 22:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@benthecarman@codecov-commenter@TheBlueMatt@AnthonyRonning@wpaulino