-
Notifications
You must be signed in to change notification settings - Fork 904
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
Askrene: an EXPERIMENTAL MCF plugin and infrastructure #7517
Askrene: an EXPERIMENTAL MCF plugin and infrastructure #7517
Commits on Aug 7, 2024
-
It's experimental, so API may change, but it definitely does need explanation! Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 0180ad9 - Browse repository at this point
Copy the full SHA 0180ad9View commit details -
gossmap: don't process channel_announcement until amount is present.
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>
Configuration menu - View commit details
-
Copy full SHA for 1034c6f - Browse repository at this point
Copy the full SHA 1034c6fView commit details -
libplugin: add data pointer for plugin convenience.
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>
Configuration menu - View commit details
-
Copy full SHA for df08615 - Browse repository at this point
Copy the full SHA df08615View commit details -
common: new parameter parsing routines.
param_u16 (for delay). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for ad2ac92 - Browse repository at this point
Copy the full SHA ad2ac92View commit details -
bitcoin: add short_channel_id_dir_eq.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 60f0189 - Browse repository at this point
Copy the full SHA 60f0189View commit details -
common: promote useful routines from renepay.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for cfe5f05 - Browse repository at this point
Copy the full SHA cfe5f05View commit details -
askrene: skeleton which does JSON API.
All the infrastructure and interfaces, but it doesn't do anything yet. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for a611ec2 - Browse repository at this point
Copy the full SHA a611ec2View commit details -
askrene: add layers infrastructure.
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.
Configuration menu - View commit details
-
Copy full SHA for d786110 - Browse repository at this point
Copy the full SHA d786110View commit details -
askrene: reservation implementation.
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.
Configuration menu - View commit details
-
Copy full SHA for 11fd784 - Browse repository at this point
Copy the full SHA 11fd784View commit details -
askrene: flesh out getroutes() a little.
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>
Configuration menu - View commit details
-
Copy full SHA for 99ad986 - Browse repository at this point
Copy the full SHA 99ad986View commit details -
askrene: always set a dummy constraint when we add a local channel.
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>
Configuration menu - View commit details
-
Copy full SHA for 0e7073b - Browse repository at this point
Copy the full SHA 0e7073bView commit details -
askrene: fast lookup for capacities.
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>
Configuration menu - View commit details
-
Copy full SHA for f93324e - Browse repository at this point
Copy the full SHA f93324eView commit details -
pytest: test file for askrene.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 15cbc14 - Browse repository at this point
Copy the full SHA 15cbc14View commit details -
askrene: copy mcf.[ch] from renepay with minimal modifications.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 46d00ed - Browse repository at this point
Copy the full SHA 46d00edView commit details -
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>
Configuration menu - View commit details
-
Copy full SHA for 5393432 - Browse repository at this point
Copy the full SHA 5393432View commit details -
askrene: copy flow and dijkstra from renepay.
Still don't actually try compiling them. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 4cd80da - Browse repository at this point
Copy the full SHA 4cd80daView commit details -
askrene/flow: don't omit initial hop in flow_spend.
That will be done in the caller, not here. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 19e3495 - Browse repository at this point
Copy the full SHA 19e3495View commit details -
askrene: remove code which tries to handle tal failures.
tal does not fail: the default handler (which we use) aborts. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for a28759b - Browse repository at this point
Copy the full SHA a28759bView commit details -
askrene: simply fail if a flow amount exceeds 64 bits.
Rather than handling failure, simply report and exit the plugin. Simplifies error handling. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 2c92d23 - Browse repository at this point
Copy the full SHA 2c92d23View commit details -
askrene: make the flow.[ch] files compile.
This adapts them to their new locations, and copies a few more routines. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 86f5dc5 - Browse repository at this point
Copy the full SHA 86f5dc5View commit details -
askrene: include the mcf and flow routines.
This make the code use askrene's "struct route_query". Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 10bfb88 - Browse repository at this point
Copy the full SHA 10bfb88View commit details -
plugins/askrene: remove local contexts.
In general, we should be using tmpctx unless there's a specific reason not to. It's clear, and simplifies the code somewhat. If tmpctx is not cleaned often enough, we can look at a per-MCF context, but this seems like premature optimization. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 79bbb04 - Browse repository at this point
Copy the full SHA 79bbb04View commit details -
plugins/askrene: attach getroutes call to MCF code.
Now getroutes actually does something! Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for ee4dba7 - Browse repository at this point
Copy the full SHA ee4dba7View commit details -
pytest: simple getroutes tests.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 6702563 - Browse repository at this point
Copy the full SHA 6702563View commit details -
plugin/askrene: add "auto.sourcefree" layer.
This marks all channels around the source node as free (no delay, no fee). This is normally what we want, if we are calculating a path for ourselves. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for b3b885b - Browse repository at this point
Copy the full SHA b3b885bView commit details -
devtools/gossmap-compress: allow setting the nodeid explicitly for ge…
…nerated nodes. This lets us make gossip which contains "real" nodes. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 61c314a - Browse repository at this point
Copy the full SHA 61c314aView commit details -
askrene: split json_getroutes into two parts.
This will allow us to call an RPC function in the middle. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 4f6c88e - Browse repository at this point
Copy the full SHA 4f6c88eView commit details -
askrene: add "auto.localchans" layer.
This populates information on both topology (i.e. unannounced channels) and capacity for the local node using `listpeerchannels`. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Configuration menu - View commit details
-
Copy full SHA for 3d3a5f9 - Browse repository at this point
Copy the full SHA 3d3a5f9View commit details