forked from ElementsProject/lightning
-
Notifications
You must be signed in to change notification settings - Fork 0
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 listing options to listpays #1
Closed
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
daywalker90
force-pushed
the
listpays-index
branch
from
June 11, 2024 07:54
e1453dc
to
4e29a45
Compare
This is a hack, but we've had nodes missing gossip. LDK does this, so until we get a better workaround, use this one. Changelog-Changed: Protocol: we now always ask the first peer for all its gossip. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
…m method Category, description and long description from `json_command` and `plugin_command` have been removed in favour of getting them from json schema. Reference PR: Add categories in RPC documentation ElementsProject#7485 Deprecating them in pyln-client as well. They will remove completely in future releases. Changelog-Deprecated: pyln-client: category, description and long descriptions for RPC commands are deprecated now.
Changelog-None
…map topology. Simple format, which doesn't include node information, just the channels. Example: ``` $ ls -l gossip-store-2024-06-26 -rw------- 1 rusty rusty 98815543 Jul 26 09:47 gossip-store-2024-06-26 $ ./devtools/gossmap-compress -v compress gossip-store-2024-06-26 compressed 18693 nodes 61437 channels 46148 disabled channels (32620 no update) 9690 unique capacities 85 unique htlc_min 6867 unique htlc_max 807 unique basefee 2521 unique propfee 94 unique delay $ ls -l compressed -rw-rw-r-- 1 rusty rusty 1643258 Jul 26 09:51 compressed ``` Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
…ble. Before: ``` -rw-rw-r-- 1 rusty rusty 1643258 Jul 26 09:51 compressed ``` After: ``` -rw-rw-r-- 1 rusty rusty 508332 Jul 26 09:49 compressed ``` Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
We marshal it into the "compressed" format and get the decompresser to build the actual gossmap. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This helps code using generate_gossip_store() too, since it can map its identifiers to the nodeids which were used. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
…uer_id` Now we actually check the other fields too, as per BOLT! Reported-by: https://github.com/hMsats Fixes: ElementsProject#7513 Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
It's experimental, so API may change, but it definitely does need explanation! Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This simplifies the callers significantly: all channel_announcements now have an amount, so gossmap_chan_get_capacity() only fails on a local modification. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This avoids globals (and means memleak traverses the variables!): we only change over the test plugin though, to avoid unnecessary churn. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
param_u16 (for delay). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
All the infrastructure and interfaces, but it doesn't do anything yet. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
These are the repositories of all information. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Header from folded patch 'layers-fixup.patch': fixup! askrene: add layers infrastructure.
They tell us what paths they're using, so we can adjust capacity estimates accordingly. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Header from folded patch 'reserve-fixup.patch': fixup! askrene: reservation implementation.
We apply all the gossmods for the layers they specified, and create a naive routine to give the capacity of a channel given those layers. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This means we never have to look up a local channel when asked the capacity. We mark these dummy constraints with an MAX timestamp. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
We don't know anything about most channels, so we create an array of fp16_t containing them. We zero out ones where we do know something, and use the previous code as the slow path. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
We let the caller choose mu, and iterate if necessary: it can also check its limits for fees, etc. Rationalize it to 0-100 inclusive for human consumption. This means we don't loop internally, and in fact there's only one failure mode: we cannot find enough capacity. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Still don't actually try compiling them. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
That will be done in the caller, not here. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
tal does not fail: the default handler (which we use) aborts. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rather than handling failure, simply report and exit the plugin. Simplifies error handling. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Changed: Reckless option flags are now position independent.
This will allow redirection of json output in the following commits.
Also redirect config creation prompts to stderr in order to not interfere with json output on stdout. Changelog-Added: reckless provides json output with option flag -j/--json
This more easily allows list output for commands accepting list input, i.e., installing 3 plugins produces 3 outputs.
status if --json was requested.
Changelog-Added: Reckless: accepts json array input for command targets
Some output was hidden under normal operation which should not have been.
This allows us to directly returnan error code based on where we decided to abort, rather than attemtping to infer it from the parts. Changelog-Added: pay: The pay plugin now returns better error codes
Changelog-Added: pay: The pay plugin now checks whether we have enough spendable capacity before computing a route, returning a clear error message if we don't
Should make debugging based on logs a bit simpler.
Changelog-Changed: pay: Improved logging should facilitate debugging considerably.
We weren't properly notifying that a channel output has been spent in the case of it being spent in a splice. This fixes the notification side of the equation, however there's still some issues remaining for the bookkeeper side (to come). Changelog-Fixed: We now send a `coin_movement` notification for splice confirmations of channel funding outpoint spends.
We do some fancy accounting for channel closures; since we're tagging splice txs as closes we need to mark them as splices so we can treat them as any other 'normal' on chain event.
We used to always target `now() + 300`, which ends up never really confirming, as the fee estimate bumps into the min-relay-fee limit. With this commit we set an absolute target of 2 weeks, and a linear fee rampup, until we are at T-2h, at which point we just stick with the estimate, and try with this increased feerate to try and get the sweep confirmed. This ought to make RBF transactions much more efficient for closing channels. Changelog-Fixed onchaind: The sweep deadline for to_us outputs would be reset on each restart of the subdaemon. Now the deadline is absolute in terms of the close height.
one of the fields in the database isn't read/accessed during stub reinitialization, so my node crashes. error: Never accessed column last_sig in query SELECT id, peer_id, scid, full_channel_id, channel_config_local, channel_config_remote, state, funder, channel_flags, require_confirm_inputs_local, require_confirm_inputs_remote, minimum_depth, next_index_local, next_index_remote, next_htlc_id, funding_tx_id, funding_tx_outnum, funding_satoshi, our_funding_satoshi, funding_locked_remote, push_msatoshi, msatoshi_local, fundingkey_remote, revocation_basepoint_remote, payment_basepoint_remote, htlc_basepoint_remote, delayed_payment_basepoint_remote, per_commit_remote, old_per_commit_remote, shachain_remote_id, shutdown_scriptpubkey_remote, shutdown_keyidx_local, last_sent_commit_state, last_sent_commit_id, last_tx, last_sig, last_was_revoke, first_blocknum, min_possible_feerate, max_possible_feerate, msatoshi_to_us_min, msatoshi_to_us_max, future_per_commitment_point, last_sent_commit, feerate_base, feerate_ppm, remote_upfront_shutdown_script, local_static_remotekey_start, remote_static_remotekey_start, channel_type, shutdown_scriptpubkey_local, closer, state_change_reason, revocation_basepoint_local, payment_basepoint_local, htlc_basepoint_local, delayed_payment_basepoint_local, funding_pubkey_local, shutdown_wrong_txid, shutdown_wrong_outnum, lease_expiry, lease_commit_sig, lease_chan_max_msat, lease_chan_max_ppt, htlc_minimum_msat, htlc_maximum_msat, alias_local, alias_remote, ignore_fee_limits, remote_feerate_base, remote_feerate_ppm, remote_cltv_expiry_delta, remote_htlc_minimum_msat, remote_htlc_maximum_msat, last_stable_connection FROM channels WHERE state != ?;
It might be nice to let the bookkeeper keep track of external accounts as well as the internal onchain wallet? To this end, we add some new custom notifications, which the bookkeeper will ingest and add to its ledger. Suggested-By: @chrisguida Changelog-Added: PLUGINS: `bookkeeper` now listens for two custom events: `utxo_deposit` and `utxo_spend`. This allows for 3rd party plugins to send onchain coin events to the `bookkeeper`. See the new plugins/bkpr/README.md for details on how these work!
The `pay` plugin, as well as other plugins making use of the tree-pay executor, will now emit their observations as they see them. The notifications are sent on the `channel_hint_updated` topic, and any subscriber will get them. We also added a `timestamp` to the `struct channel_hint`, as these observations now outlive the `pay` call, and have to be attenuated / relaxed as they age, until we can eliminate them completely (when the restriction is equal to the structural information gathered from the gossip). Changelog-Added: pay: Payments now emit `channel_hint_updated` notification to share inferred balances and observations across multiple payments.
We were missing the `short_channel_id_dir` helpers.
When renepay starts, one of the first operations it does is to check for pending sendpays for the same invoice. Those are added up to an internal database to keep track of. Also the amount they deliver to the destination is computed so that the current payment rpc call would try to complete the payment for whatever amount remains to pay. For an incomplete payment after calling the RPC renepay I found this in the logs: 2024-05-22T19:44:19.853Z DEBUG plugin-cln-renepay: There are pending sendpays to this invoice. groupid = 6 delivering = 0msat, last_partid = 10 Where delivering should be the sum of the amounts delivered by pending routes.
Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
daywalker90
force-pushed
the
listpays-index
branch
from
August 9, 2024 18:03
4e29a45
to
1a2bf46
Compare
Changelog-Added: JSON-RPC: `listpays` has `index`, `start` and `limit` parameters for listing control.
daywalker90
force-pushed
the
listpays-index
branch
from
August 9, 2024 18:05
1a2bf46
to
c3f185a
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changelog-Added: JSON-RPC:
listpays
hasindex
,start
andlimit
parameters for listing control.