diff --git a/lightningd/gossip_control.c b/lightningd/gossip_control.c index cade4e7030e0..45b98f26adaf 100644 --- a/lightningd/gossip_control.c +++ b/lightningd/gossip_control.c @@ -307,6 +307,11 @@ static void json_getroute(struct command *cmd, const char *buffer, const jsmntok u64 msatoshi; unsigned cltv = 9; double riskfactor; + /* Higher fuzz means that some high-fee paths can be discounted + * for an even larger value, increasing the scope for route + * randomization (the higher-fee paths become more likely to + * be selected) at the cost of increasing the probability of + * selecting the higher-fee paths. */ double fuzz = 75.0; u8 *seed = tal_arrz(cmd, u8, sizeof(struct siphash_seed)); diff --git a/lightningd/payalgo.c b/lightningd/payalgo.c index 0ac9949af3ad..87fb404670f3 100644 --- a/lightningd/payalgo.c +++ b/lightningd/payalgo.c @@ -356,6 +356,14 @@ static void json_pay(struct command *cmd, pay->getroute_tries = 0; pay->sendpay_tries = 0; + /* Higher fuzz increases the potential fees we will pay, since + * higher fuzz makes it more likely that high-fee paths get + * selected. We start with very high fuzz, but if the + * returned route is too expensive for the given + * `maxfeepercent` we reduce the fuzz. Starting with high + * fuzz means, if the user allows high fee, we can take + * advantage of that to increase randomization and + * improve privacy somewhat. */ pay->fuzz = 0.75; pay->try_parent = NULL;