mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-22 14:42:40 +01:00
I noticed that run-route-infloop chose some worse-looking paths after routing was fixed, eg the second node: Before: Destination node, success, probability, hops, fees, cltv, scid... 02b3aa1e4ed31be83cca4bd367b2c01e39502cb25e282a9b4520ad376a1ba0a01a,1,0.991856,2,1004,40,2572260x39x0/1,2131897x45x0/0 After: Destination node, success, probability, hops, fees, cltv, scid... 02b3aa1e4ed31be83cca4bd367b2c01e39502cb25e282a9b4520ad376a1ba0a01a,1,0.954540,3,1046,46,2570715x21x0/1,2346882x26x14/1,2131897x45x0/0 This is because although the final costs don't reflect it, routing was taking into account local channels, and 2572260x39x0/1 has a base fee of 2970. There's an easy fix: when we the pay plugin creates localmods for our gossip graph, add all local channels with delay and fees equal to 0. We do the same thing in our unit test. This improves things across the board: Linear success probability (when found): min-max(mean +/- stddev) Before: 0.487040-0.999543(0.952548+/-0.075) After: 0.486985-0.999750(0.975978+/-0.053) Hops: Before: 1-5(2.98374+/-0.77) After: 1-5(2.09593+/-0.63) Fees: Before: 0-50848(922.457+/-2.7e+03) After: 0-50041(861.621+/-2.7e+03) Delay (blocks): Before: 0-196(65.8081+/-60) After: 0-190(60.3285+/-60) Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Changed: Plugins: `pay` route algorithm doesn't bias against our own "expensive" channels any more. |
||
---|---|---|
.. | ||
Makefile | ||
onion-test-v0.json | ||
run-amount.c | ||
run-base64.c | ||
run-bigsize.c | ||
run-blindedpath_enctlv.c | ||
run-blindedpath_onion.c | ||
run-bolt11.c | ||
run-bolt12-encode-test.c | ||
run-bolt12-format-string-test.c | ||
run-bolt12-offer-decode.c | ||
run-bolt12_decode.c | ||
run-bolt12_merkle-json.c | ||
run-bolt12_merkle.c | ||
run-bolt12_period.c | ||
run-channel_type.c | ||
run-codex32.c | ||
run-cryptomsg.c | ||
run-deprecation.c | ||
run-derive_basepoints.c | ||
run-features.c | ||
run-gossmap-fp16.c | ||
run-gossmap_canned.c | ||
run-gossmap_local.c | ||
run-ip_port_parsing.c | ||
run-json.c | ||
run-json_filter.c | ||
run-json_remove.c | ||
run-json_scan.c | ||
run-json_stream-filter.c | ||
run-key_derive.c | ||
run-lease_rates.c | ||
run-onion-message-test.c | ||
run-onion-test-vector.c | ||
run-param.c | ||
run-psbt_diff.c | ||
run-route-infloop.c | ||
run-route-specific.c | ||
run-route.c | ||
run-route_blinding_onion_test.c | ||
run-route_blinding_test.c | ||
run-sphinx-xor_cipher_stream.c | ||
run-sphinx.c | ||
run-tal_arr_randomize.c | ||
run-tlv_span.c | ||
run-trace.c | ||
run-version.c | ||
run-wireaddr.c |