core-lightning/plugins
Lagrang3 7056018b15 renepay: add const probability cost
The probability for a success forward of x amount on a channel is now
computed as:

	P_success(x) = b * P_rene(x)

where P_rene(x) is the probability distribution proposed by Rene
Pickhardt with a uniform distribution on the known liquidity of the
channel and 'b' is a new parameter we add in this PR, by the name of
"base probability". The "base probability" represents the probability
for a channel in the network choosen at random to be able to forward at
least 1msat, ie. of being alive, non-depleted and with at least one HTLC
slot. We don't know the value of 'b', but for the moment we assume that
it is 0.98 and use that as default.

As a consequence the probability cost becomes non-linear and non-convex
because of the additional constant term:

	Cost(x) = - log P_success(x)
	        = - log b  -  - log P_rene(x)
		= - log b  +  Cost_rene(x)

We currently don't handle well base fees and neither this additional
"base probability" but we can as a first approximation linearize the
cost function in this way:

	Cost_linear(x) = (- log b)*x  +  Cost_rene_linear(x)

Changelog-Added: renepay: Add a dev parameter to renepay that represents
a constant probability of availability for all channels in the network.

Signed-off-by: Lagrang3 <lagrang3@protonmail.com>
2024-08-15 16:46:41 +09:30
..
askrene askrene: memleak: scan reserved htable 2024-08-13 09:12:40 +09:30
bkpr bkpr: add payment_id parameter to listaccountevents to filter events. 2024-08-12 10:22:55 -07:00
clnrest meta: Update changelog for 24.08rc1 2024-08-13 08:32:23 -07:00
examples cln-plugin: add multi options for String and i64 2024-08-13 12:24:45 +09:30
grpc-plugin grpc-plugin: Run cargo fmt for minor style fixes 2024-07-31 08:53:12 +02:00
renepay renepay: add const probability cost 2024-08-15 16:46:41 +09:30
spender libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
src cln-plugin: add multi options for String and i64 2024-08-13 12:24:45 +09:30
test libplugin: Add primitive to serialize channel_hint to JSON 2024-08-09 13:59:07 +09:30
wss-proxy meta: Update changelog for 24.08rc1 2024-08-13 08:32:23 -07:00
.gitignore gitignore: Add missing gitignore plugins an devtools 2024-08-13 08:32:23 -07:00
autoclean.c libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
bcli.c libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
Cargo.toml meta: bump rust versions for 24.05 release 2024-06-04 20:23:24 -05:00
chanbackup.c libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
commando.c libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
establish_onion_path.c offers: add self-fetchinvoices for offers, and self-pay for the resulting invoice. 2024-07-18 10:53:55 +09:30
establish_onion_path.h fetchinvoice: use common/onion_message routines. 2024-07-17 10:57:11 +02:00
fetchinvoice.c offers: fix crash when receiving response to offer without offer_issuer_id 2024-08-06 19:09:27 -07:00
fetchinvoice.h plugins/offers: neaten fetchinvoice integration. 2024-07-17 10:57:11 +02:00
funder.c libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
funder_policy.c libplugin: allow display of default values. 2024-05-15 15:50:54 -05:00
funder_policy.h libplugin: allow display of default values. 2024-05-15 15:50:54 -05:00
keysend.c pay: Add an error code to the payments 2024-08-08 12:20:44 -07:00
libplugin-pay.c plugin/pay: fix crash if failcodename isn't set. 2024-08-12 18:36:11 +09:30
libplugin-pay.h libplugin: pay now emits channel_hint as we learn about the net 2024-08-09 13:59:07 +09:30
libplugin.c libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
libplugin.h libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
Makefile reckless-rpc: initial boilerplate 2024-08-12 18:10:45 -07:00
offers.c libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
offers.h lightningd: make plugins set metadata for invoice requests. 2024-08-01 12:31:48 +09:30
offers_inv_hook.c global: update BOLT12 quotes. 2024-08-01 12:31:48 +09:30
offers_inv_hook.h offers: check they use the blinded path if one is specified. 2024-07-17 10:57:11 +02:00
offers_invreq_hook.c global: update BOLT12 quotes. 2024-08-01 12:31:48 +09:30
offers_invreq_hook.h offers: check they use the blinded path if one is specified. 2024-07-17 10:57:11 +02:00
offers_offer.c common: Add some more JSON primitives 2024-08-09 13:59:07 +09:30
offers_offer.h plugins: move fetchinvoice functionality into offers plugin. 2024-07-17 10:57:11 +02:00
pay.c libplugin: pay now emits channel_hint as we learn about the net 2024-08-09 13:59:07 +09:30
README.md doc: fix wording in plugins/README.md 2020-01-06 12:57:59 +01:00
recklessrpc.c reckless-rpc: catch failed reckless subprocess 2024-08-12 18:10:45 -07:00
recover.c libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
sql.c libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
topology.c libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30
txprepare.c libplugin: add data pointer for plugin convenience. 2024-08-07 20:35:30 +09:30

Plugin Directory

Any file in this directory which is executable and whose name only consists of alphanumeric characters, space, '.', '-' or '_' will be automatically loaded when lightningd starts (unless suppressed with commandline options).