From 762d624810172ce1349122e4595daaace9fb82df Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 19 Sep 2024 16:30:37 +0930 Subject: [PATCH 01/51] lightningd: move stats into struct channel. Like other fields, mirror them into the db. Signed-off-by: Rusty Russell --- lightningd/channel.c | 6 +++- lightningd/channel.h | 6 +++- lightningd/opening_control.c | 13 ++++++-- lightningd/peer_htlcs.c | 58 ++++++++++++++++++++++++++++-------- wallet/test/run-db.c | 3 +- wallet/test/run-wallet.c | 4 ++- wallet/wallet.c | 6 +++- 7 files changed, 77 insertions(+), 19 deletions(-) diff --git a/lightningd/channel.c b/lightningd/channel.c index af5dae06ed9f..1ea3693cde31 100644 --- a/lightningd/channel.c +++ b/lightningd/channel.c @@ -310,6 +310,8 @@ struct channel *new_unsaved_channel(struct peer *peer, channel->ignore_fee_limits = ld->config.ignore_fee_limits; channel->last_stable_connection = 0; channel->stable_conn_timer = NULL; + /* Nothing happened yet */ + memset(&channel->stats, 0, sizeof(channel->stats)); /* No shachain yet */ channel->their_shachain.id = 0; @@ -445,7 +447,8 @@ struct channel *new_channel(struct peer *peer, u64 dbid, bool ignore_fee_limits, /* NULL or stolen */ struct peer_update *peer_update STEALS, - u64 last_stable_connection) + u64 last_stable_connection, + const struct channel_stats *stats) { struct channel *channel = tal(peer->ld, struct channel); struct amount_msat htlc_min, htlc_max; @@ -602,6 +605,7 @@ struct channel *new_channel(struct peer *peer, u64 dbid, channel->ignore_fee_limits = ignore_fee_limits; channel->last_stable_connection = last_stable_connection; channel->stable_conn_timer = NULL; + channel->stats = *stats; /* Populate channel->channel_gossip */ channel_gossip_init(channel, take(peer_update)); diff --git a/lightningd/channel.h b/lightningd/channel.h index b04e68d84dc8..cdb6cc15f5b8 100644 --- a/lightningd/channel.h +++ b/lightningd/channel.h @@ -314,6 +314,9 @@ struct channel { /* Last time we had a stable connection, if any (0 = none) */ u64 last_stable_connection; struct oneshot *stable_conn_timer; + + /* Our stats */ + struct channel_stats stats; }; /* Is channel owned (and should be talking to peer) */ @@ -395,7 +398,8 @@ struct channel *new_channel(struct peer *peer, u64 dbid, bool ignore_fee_limits, /* NULL or stolen */ struct peer_update *peer_update STEALS, - u64 last_stable_connection); + u64 last_stable_connection, + const struct channel_stats *stats); /* new_inflight - Create a new channel_inflight for a channel */ struct channel_inflight *new_inflight(struct channel *channel, diff --git a/lightningd/opening_control.c b/lightningd/opening_control.c index a1066eb166e8..197316615661 100644 --- a/lightningd/opening_control.c +++ b/lightningd/opening_control.c @@ -109,6 +109,10 @@ wallet_commit_channel(struct lightningd *ld, u32 lease_start_blockheight = 0; /* No leases on v1 */ struct timeabs timestamp; bool any_active = peer_any_channel(uc->peer, channel_state_wants_peercomms, NULL); + struct channel_stats zero_channel_stats; + + /* We can't have any payments yet */ + memset(&zero_channel_stats, 0, sizeof(zero_channel_stats)); /* We cannot both be the fundee *and* have a `fundchannel_start` * command running! @@ -215,7 +219,8 @@ wallet_commit_channel(struct lightningd *ld, ld->config.htlc_maximum_msat, ld->config.ignore_fee_limits, NULL, - 0); + 0, + &zero_channel_stats); /* Now we finally put it in the database. */ wallet_channel_insert(ld->wallet, channel); @@ -1456,6 +1461,7 @@ static struct channel *stub_chan(struct command *cmd, struct short_channel_id *scid; u32 blockht; u32 feerate; + struct channel_stats zero_channel_stats; u8 *dummy_sig = tal_hexdata(cmd, "30450221009b2e0eef267b94c3899fb0dc73750" "12e2cee4c10348a068fe78d1b82b4b1403602207" @@ -1530,6 +1536,8 @@ static struct channel *stub_chan(struct command *cmd, if (!mk_short_channel_id(scid, 1, 1, 1)) fatal("Failed to make short channel 1x1x1!"); + memset(&zero_channel_stats, 0, sizeof(zero_channel_stats)); + /* Channel Shell with Dummy data(mostly) */ channel = new_channel(peer, id, NULL, /* No shachain yet */ @@ -1589,7 +1597,8 @@ static struct channel *stub_chan(struct command *cmd, ld->config.htlc_maximum_msat, false, NULL, - 0); + 0, + &zero_channel_stats); /* We don't want to gossip about this, ever. */ channel->channel_gossip = tal_free(channel->channel_gossip); diff --git a/lightningd/peer_htlcs.c b/lightningd/peer_htlcs.c index 97bb11b035b1..a9af74260cae 100644 --- a/lightningd/peer_htlcs.c +++ b/lightningd/peer_htlcs.c @@ -93,6 +93,48 @@ static bool htlc_out_update_state(struct channel *channel, return true; } +static void cstat_accumulate(struct channel *c, + struct amount_msat *val, + struct amount_msat msat) +{ + if (!amount_msat_add(val, *val, msat)) + log_broken(c->log, "Adding %s to stat %s overflowed!", + fmt_amount_msat(tmpctx, *val), + fmt_amount_msat(tmpctx, msat)); +} + +static void channel_stats_incr_in_fulfilled(struct channel *c, + struct amount_msat msat) +{ + c->stats.in_payments_fulfilled++; + cstat_accumulate(c, &c->stats.in_msatoshi_fulfilled, msat); + wallet_channel_stats_incr_in_fulfilled(c->peer->ld->wallet, c->dbid, msat); +} + +static void channel_stats_incr_out_fulfilled(struct channel *c, + struct amount_msat msat) +{ + c->stats.out_payments_fulfilled++; + cstat_accumulate(c, &c->stats.out_msatoshi_fulfilled, msat); + wallet_channel_stats_incr_out_fulfilled(c->peer->ld->wallet, c->dbid, msat); +} + +static void channel_stats_incr_in_offered(struct channel *c, + struct amount_msat msat) +{ + c->stats.in_payments_offered++; + cstat_accumulate(c, &c->stats.in_msatoshi_offered, msat); + wallet_channel_stats_incr_in_offered(c->peer->ld->wallet, c->dbid, msat); +} + +static void channel_stats_incr_out_offered(struct channel *c, + struct amount_msat msat) +{ + c->stats.out_payments_offered++; + cstat_accumulate(c, &c->stats.out_msatoshi_offered, msat); + wallet_channel_stats_incr_out_offered(c->peer->ld->wallet, c->dbid, msat); +} + /* BOLT #4: * - if `blinding_point` is set in the incoming `update_add_htlc`: * - MUST return an `invalid_onion_blinding` error. @@ -332,7 +374,6 @@ void fulfill_htlc(struct htlc_in *hin, const struct preimage *preimage) { u8 *msg; struct channel *channel = hin->key.channel; - struct wallet *wallet = channel->peer->ld->wallet; if (hin->hstate != RCVD_ADD_ACK_REVOCATION) { log_debug(channel->log, @@ -349,9 +390,7 @@ void fulfill_htlc(struct htlc_in *hin, const struct preimage *preimage) htlc_in_check(hin, __func__); /* Update channel stats */ - wallet_channel_stats_incr_in_fulfilled(wallet, - channel->dbid, - hin->msat); + channel_stats_incr_in_fulfilled(channel, hin->msat); /* No owner? We'll either send to channeld in peer_htlcs, or * onchaind in onchaind_tell_fulfill. */ @@ -1417,9 +1456,7 @@ static void fulfill_our_htlc_out(struct channel *channel, struct htlc_out *hout, 0, hout->failonion, hout->failmsg, &we_filled); /* Update channel stats */ - wallet_channel_stats_incr_out_fulfilled(ld->wallet, - channel->dbid, - hout->msat); + channel_stats_incr_out_fulfilled(channel, hout->msat); if (hout->am_origin) payment_succeeded(ld, &hout->payment_hash, hout->partid, hout->groupid, preimage); @@ -1892,9 +1929,7 @@ static bool update_out_htlc(struct channel *channel, if (!hout->dbid) { wallet_htlc_save_out(ld->wallet, channel, hout); /* Update channel stats */ - wallet_channel_stats_incr_out_offered(ld->wallet, - channel->dbid, - hout->msat); + channel_stats_incr_out_offered(channel, hout->msat); if (hout->in) { struct short_channel_id scid; @@ -2131,8 +2166,7 @@ static bool channel_added_their_htlc(struct channel *channel, /* Save an incoming htlc to the wallet */ wallet_htlc_save_in(ld->wallet, channel, hin); /* Update channel stats */ - wallet_channel_stats_incr_in_offered(ld->wallet, channel->dbid, - added->amount); + channel_stats_incr_in_offered(channel, added->amount); log_debug(channel->log, "Adding their HTLC %"PRIu64, added->id); connect_htlc_in(channel->peer->ld->htlcs_in, hin); diff --git a/wallet/test/run-db.c b/wallet/test/run-db.c index fc73479c23ae..4af4988e7521 100644 --- a/wallet/test/run-db.c +++ b/wallet/test/run-db.c @@ -191,7 +191,8 @@ struct channel *new_channel(struct peer *peer UNNEEDED, u64 dbid UNNEEDED, bool ignore_fee_limits UNNEEDED, /* NULL or stolen */ struct peer_update *peer_update STEALS UNNEEDED, - u64 last_stable_connection UNNEEDED) + u64 last_stable_connection UNNEEDED, + const struct channel_stats *stats UNNEEDED) { fprintf(stderr, "new_channel called!\n"); abort(); } /* Generated stub for new_coin_wallet_deposit */ struct chain_coin_mvt *new_coin_wallet_deposit(const tal_t *ctx UNNEEDED, diff --git a/wallet/test/run-wallet.c b/wallet/test/run-wallet.c index b6f0791a9231..68c961fc3480 100644 --- a/wallet/test/run-wallet.c +++ b/wallet/test/run-wallet.c @@ -1918,6 +1918,7 @@ static bool test_channel_inflight_crud(struct lightningd *ld, const tal_t *ctx) secp256k1_ecdsa_signature *lease_commit_sig; u32 feerate, lease_blockheight_start; u64 dbid; + struct channel_stats *stats = talz(w, struct channel_stats); pubkey_from_der(tal_hexdata(w, "02a1633cafcc01ebfb6d78e39f687a1f0995c62fc95f51ead10a02ee0be551b5dc", 66), 33, &pk); node_id_from_pubkey(&id, &pk); @@ -1995,7 +1996,8 @@ static bool test_channel_inflight_crud(struct lightningd *ld, const tal_t *ctx) AMOUNT_MSAT(-1ULL), false, NULL, - 0); + 0, + stats); db_begin_transaction(w->db); CHECK(!wallet_err); wallet_channel_insert(w, chan); diff --git a/wallet/wallet.c b/wallet/wallet.c index 6d0ee76a99b2..831ae4880098 100644 --- a/wallet/wallet.c +++ b/wallet/wallet.c @@ -1536,6 +1536,7 @@ static struct channel *wallet_stmt2channel(struct wallet *w, struct db_stmt *stm u16 lease_chan_max_ppt; bool ignore_fee_limits; struct peer_update *remote_update; + struct channel_stats stats; peer_dbid = db_col_u64(stmt, "peer_id"); peer = find_peer_by_dbid(w->ld, peer_dbid); @@ -1718,6 +1719,8 @@ static struct channel *wallet_stmt2channel(struct wallet *w, struct db_stmt *stm db_col_ignore(stmt, "remote_htlc_maximum_msat"); } + wallet_channel_stats_load(w, db_col_u64(stmt, "id"), &stats); + chan = new_channel(peer, db_col_u64(stmt, "id"), &wshachain, channel_state_in_db(db_col_int(stmt, "state")), @@ -1779,7 +1782,8 @@ static struct channel *wallet_stmt2channel(struct wallet *w, struct db_stmt *stm htlc_maximum_msat, ignore_fee_limits, remote_update, - db_col_u64(stmt, "last_stable_connection")); + db_col_u64(stmt, "last_stable_connection"), + &stats); if (!wallet_channel_load_inflights(w, chan)) { tal_free(chan); From 3aace10828b11bcd51b9a6b7fa11bc2447cfc5b7 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 19 Sep 2024 16:30:39 +0930 Subject: [PATCH 02/51] listpeerchannels: use struct channel stats, don't fetch from db. This avoids a db lookup on every iteration of listpeerchannels, which can be slow on large nodes (Postgres, I assume). We can now simply add the fields we want to channel load, and remove wallet_channel_stats_load entirely. Signed-off-by: Rusty Russell --- lightningd/peer_control.c | 18 +++-- lightningd/test/run-invoice-select-inchan.c | 3 - wallet/wallet.c | 74 ++++++++------------- wallet/wallet.h | 9 --- 4 files changed, 36 insertions(+), 68 deletions(-) diff --git a/lightningd/peer_control.c b/lightningd/peer_control.c index aaf7897754e3..285a209ab6d0 100644 --- a/lightningd/peer_control.c +++ b/lightningd/peer_control.c @@ -818,7 +818,6 @@ static void NON_NULL_ARGS(1, 2, 4, 5) json_add_channel(struct command *cmd, const struct peer *peer) { struct lightningd *ld = cmd->ld; - struct channel_stats channel_stats; struct amount_msat funding_msat; struct amount_sat peer_funded_sats; struct state_change_entry *state_changes; @@ -1191,27 +1190,26 @@ static void NON_NULL_ARGS(1, 2, 4, 5) json_add_channel(struct command *cmd, json_array_end(response); /* Provide channel statistics */ - wallet_channel_stats_load(ld->wallet, channel->dbid, &channel_stats); json_add_u64(response, "in_payments_offered", - channel_stats.in_payments_offered); + channel->stats.in_payments_offered); json_add_amount_msat(response, "in_offered_msat", - channel_stats.in_msatoshi_offered); + channel->stats.in_msatoshi_offered); json_add_u64(response, "in_payments_fulfilled", - channel_stats.in_payments_fulfilled); + channel->stats.in_payments_fulfilled); json_add_amount_msat(response, "in_fulfilled_msat", - channel_stats.in_msatoshi_fulfilled); + channel->stats.in_msatoshi_fulfilled); json_add_u64(response, "out_payments_offered", - channel_stats.out_payments_offered); + channel->stats.out_payments_offered); json_add_amount_msat(response, "out_offered_msat", - channel_stats.out_msatoshi_offered); + channel->stats.out_msatoshi_offered); json_add_u64(response, "out_payments_fulfilled", - channel_stats.out_payments_fulfilled); + channel->stats.out_payments_fulfilled); json_add_amount_msat(response, "out_fulfilled_msat", - channel_stats.out_msatoshi_fulfilled); + channel->stats.out_msatoshi_fulfilled); json_add_htlcs(ld, response, channel); json_object_end(response); diff --git a/lightningd/test/run-invoice-select-inchan.c b/lightningd/test/run-invoice-select-inchan.c index 154684d3d10a..cc17b7947f51 100644 --- a/lightningd/test/run-invoice-select-inchan.c +++ b/lightningd/test/run-invoice-select-inchan.c @@ -1023,9 +1023,6 @@ const char *version(void) /* Generated stub for wallet_channel_save */ void wallet_channel_save(struct wallet *w UNNEEDED, struct channel *chan UNNEEDED) { fprintf(stderr, "wallet_channel_save called!\n"); abort(); } -/* Generated stub for wallet_channel_stats_load */ -void wallet_channel_stats_load(struct wallet *w UNNEEDED, u64 cdbid UNNEEDED, struct channel_stats *stats UNNEEDED) -{ fprintf(stderr, "wallet_channel_stats_load called!\n"); abort(); } /* Generated stub for wallet_channeltxs_add */ void wallet_channeltxs_add(struct wallet *w UNNEEDED, struct channel *chan UNNEEDED, const int type UNNEEDED, const struct bitcoin_txid *txid UNNEEDED, diff --git a/wallet/wallet.c b/wallet/wallet.c index 831ae4880098..5eeffd234654 100644 --- a/wallet/wallet.c +++ b/wallet/wallet.c @@ -1719,7 +1719,26 @@ static struct channel *wallet_stmt2channel(struct wallet *w, struct db_stmt *stm db_col_ignore(stmt, "remote_htlc_maximum_msat"); } - wallet_channel_stats_load(w, db_col_u64(stmt, "id"), &stats); + stats.in_payments_offered + = db_col_int_or_default(stmt, "in_payments_offered", 0); + stats.in_payments_fulfilled + = db_col_int_or_default(stmt, "in_payments_fulfilled", 0); + db_col_amount_msat_or_default(stmt, "in_msatoshi_offered", + &stats.in_msatoshi_offered, + AMOUNT_MSAT(0)); + db_col_amount_msat_or_default(stmt, "in_msatoshi_fulfilled", + &stats.in_msatoshi_fulfilled, + AMOUNT_MSAT(0)); + stats.out_payments_offered + = db_col_int_or_default(stmt, "out_payments_offered", 0); + stats.out_payments_fulfilled + = db_col_int_or_default(stmt, "out_payments_fulfilled", 0); + db_col_amount_msat_or_default(stmt, "out_msatoshi_offered", + &stats.out_msatoshi_offered, + AMOUNT_MSAT(0)); + db_col_amount_msat_or_default(stmt, "out_msatoshi_fulfilled", + &stats.out_msatoshi_fulfilled, + AMOUNT_MSAT(0)); chan = new_channel(peer, db_col_u64(stmt, "id"), &wshachain, @@ -1977,6 +1996,14 @@ static bool wallet_channels_load_active(struct wallet *w) ", remote_htlc_minimum_msat" ", remote_htlc_maximum_msat" ", last_stable_connection" + ", in_payments_offered" + ", in_payments_fulfilled" + ", in_msatoshi_offered" + ", in_msatoshi_fulfilled" + ", out_payments_offered" + ", out_payments_fulfilled" + ", out_msatoshi_offered" + ", out_msatoshi_fulfilled" " FROM channels" " WHERE state != ?;")); //? 0 db_bind_int(stmt, CLOSED); @@ -2080,51 +2107,6 @@ void wallet_channel_stats_incr_out_fulfilled(struct wallet *w, u64 id, wallet_channel_stats_incr_x(w, "out", "fulfilled", id, m); } -void wallet_channel_stats_load(struct wallet *w, - u64 id, - struct channel_stats *stats) -{ - struct db_stmt *stmt; - int res; - stmt = db_prepare_v2(w->db, SQL( - "SELECT" - " in_payments_offered, in_payments_fulfilled" - ", in_msatoshi_offered, in_msatoshi_fulfilled" - ", out_payments_offered, out_payments_fulfilled" - ", out_msatoshi_offered, out_msatoshi_fulfilled" - " FROM channels" - " WHERE id = ?")); - db_bind_u64(stmt, id); - db_query_prepared(stmt); - - res = db_step(stmt); - - /* This must succeed, since we know the channel exists */ - assert(res); - - stats->in_payments_offered - = db_col_int_or_default(stmt, "in_payments_offered", 0); - stats->in_payments_fulfilled - = db_col_int_or_default(stmt, "in_payments_fulfilled", 0); - db_col_amount_msat_or_default(stmt, "in_msatoshi_offered", - &stats->in_msatoshi_offered, - AMOUNT_MSAT(0)); - db_col_amount_msat_or_default(stmt, "in_msatoshi_fulfilled", - &stats->in_msatoshi_fulfilled, - AMOUNT_MSAT(0)); - stats->out_payments_offered - = db_col_int_or_default(stmt, "out_payments_offered", 0); - stats->out_payments_fulfilled - = db_col_int_or_default(stmt, "out_payments_fulfilled", 0); - db_col_amount_msat_or_default(stmt, "out_msatoshi_offered", - &stats->out_msatoshi_offered, - AMOUNT_MSAT(0)); - db_col_amount_msat_or_default(stmt, "out_msatoshi_fulfilled", - &stats->out_msatoshi_fulfilled, - AMOUNT_MSAT(0)); - tal_free(stmt); -} - u32 wallet_blocks_maxheight(struct wallet *w) { u32 max = 0; diff --git a/wallet/wallet.h b/wallet/wallet.h index b26de521bc77..8fd3ca091f48 100644 --- a/wallet/wallet.h +++ b/wallet/wallet.h @@ -715,15 +715,6 @@ void wallet_channel_stats_incr_in_fulfilled(struct wallet *w, u64 cdbid, struct void wallet_channel_stats_incr_out_offered(struct wallet *w, u64 cdbid, struct amount_msat msatoshi); void wallet_channel_stats_incr_out_fulfilled(struct wallet *w, u64 cdbid, struct amount_msat msatoshi); -/** - * wallet_channel_stats_load - Load channel statistics - * - * @w: wallet containing the channel - * @cdbid: channel database id - * @stats: location to load statistics to - */ -void wallet_channel_stats_load(struct wallet *w, u64 cdbid, struct channel_stats *stats); - /** * Retrieve the blockheight of the last block processed by lightningd. * From eb979980a9fb6f1748dbe393859f5dcaabe5c8a3 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 19 Sep 2024 16:30:40 +0930 Subject: [PATCH 03/51] db: clean up channel_stats handling. Indirection via a string and an enum is just adding confusion here. And move the `struct channel_stats` into channel.h. Signed-off-by: Rusty Russell --- lightningd/channel.h | 8 ++++ wallet/wallet.c | 93 +++++++++++++------------------------------- wallet/wallet.h | 8 ---- 3 files changed, 34 insertions(+), 75 deletions(-) diff --git a/lightningd/channel.h b/lightningd/channel.h index cdb6cc15f5b8..9f1623ad9ab3 100644 --- a/lightningd/channel.h +++ b/lightningd/channel.h @@ -107,6 +107,14 @@ struct open_attempt { const u8 *open_msg; }; +/* Statistics for a channel */ +struct channel_stats { + u64 in_payments_offered, in_payments_fulfilled; + struct amount_msat in_msatoshi_offered, in_msatoshi_fulfilled; + u64 out_payments_offered, out_payments_fulfilled; + struct amount_msat out_msatoshi_offered, out_msatoshi_fulfilled; +}; + struct channel { /* Inside peer->channels. */ struct list_node list; diff --git a/wallet/wallet.c b/wallet/wallet.c index 5eeffd234654..fbab37d3dffa 100644 --- a/wallet/wallet.c +++ b/wallet/wallet.c @@ -37,21 +37,6 @@ /* 12 hours is usually enough reservation time */ #define RESERVATION_INC (6 * 12) -/* Possible channel state */ -enum channel_state_bucket { - IN_OFFERED = 0, - IN_FULLFILLED = 1, - OUT_OFFERED = 2, - OUT_FULLFILLED = 3, -}; - -/* channel state identifier */ -struct channel_state_param { - const char *dir_key; - const char *type_key; - const enum channel_state_bucket state; -}; - /* These go in db, so values cannot change (we can't put this into * lightningd/channel_state.h since it confuses cdump!) */ static enum state_change state_change_in_db(enum state_change s) @@ -2029,56 +2014,12 @@ bool wallet_init_channels(struct wallet *w) return wallet_channels_load_active(w); } -static enum channel_state_bucket get_state_channel_db(const char *dir, const char *typ) -{ - enum channel_state_bucket channel_state = IN_OFFERED; - if (streq(dir, "out")) - channel_state += 2; - if (streq(typ, "fulfilled")) - channel_state += 1; - return channel_state; -} - -static -void wallet_channel_stats_incr_x(struct wallet *w, - char const *dir, - char const *typ, - u64 cdbid, - struct amount_msat msat) +static void wallet_channel_stats_incr_x(struct wallet *w, + u64 cdbid, + struct amount_msat msat, + const char *query) { struct db_stmt *stmt; - const char *query = NULL; - - switch (get_state_channel_db(dir, typ)) { - case IN_OFFERED: - query = SQL("UPDATE channels" - " SET in_payments_offered = COALESCE(in_payments_offered, 0) + 1" - " , in_msatoshi_offered = COALESCE(in_msatoshi_offered, 0) + ?" - " WHERE id = ?;"); - break; - case IN_FULLFILLED: - query = SQL("UPDATE channels" - " SET in_payments_fulfilled = COALESCE(in_payments_fulfilled, 0) + 1" - " , in_msatoshi_fulfilled = COALESCE(in_msatoshi_fulfilled, 0) + ?" - " WHERE id = ?;"); - break; - case OUT_OFFERED: - query = SQL("UPDATE channels" - " SET out_payments_offered = COALESCE(out_payments_offered, 0) + 1" - " , out_msatoshi_offered = COALESCE(out_msatoshi_offered, 0) + ?" - " WHERE id = ?;"); - break; - case OUT_FULLFILLED: - query = SQL("UPDATE channels" - " SET out_payments_fulfilled = COALESCE(out_payments_fulfilled, 0) + 1" - " , out_msatoshi_fulfilled = COALESCE(out_msatoshi_fulfilled, 0) + ?" - " WHERE id = ?;"); - break; - } - - // Sanity check! - if (!query) - fatal("Unknown channel state key (direction %s, type %s)", dir, typ); stmt = db_prepare_v2(w->db, query); db_bind_amount_msat(stmt, &msat); @@ -2086,25 +2027,43 @@ void wallet_channel_stats_incr_x(struct wallet *w, db_exec_prepared_v2(take(stmt)); } + +/* I would use macros for these, but gettext needs string literals :( */ void wallet_channel_stats_incr_in_offered(struct wallet *w, u64 id, struct amount_msat m) { - wallet_channel_stats_incr_x(w, "in", "offered", id, m); + const char query[] = SQL("UPDATE channels" + " SET in_payments_offered = COALESCE(in_payments_offered, 0) + 1" + " , in_msatoshi_offered = COALESCE(in_msatoshi_offered, 0) + ?" + " WHERE id = ?;"); + wallet_channel_stats_incr_x(w, id, m, query); } void wallet_channel_stats_incr_in_fulfilled(struct wallet *w, u64 id, struct amount_msat m) { - wallet_channel_stats_incr_x(w, "in", "fulfilled", id, m); + const char query[] = SQL("UPDATE channels" + " SET in_payments_fulfilled = COALESCE(in_payments_fulfilled, 0) + 1" + " , in_msatoshi_fulfilled = COALESCE(in_msatoshi_fulfilled, 0) + ?" + " WHERE id = ?;"); + wallet_channel_stats_incr_x(w, id, m, query); } void wallet_channel_stats_incr_out_offered(struct wallet *w, u64 id, struct amount_msat m) { - wallet_channel_stats_incr_x(w, "out", "offered", id, m); + const char query[] = SQL("UPDATE channels" + " SET out_payments_offered = COALESCE(out_payments_offered, 0) + 1" + " , out_msatoshi_offered = COALESCE(out_msatoshi_offered, 0) + ?" + " WHERE id = ?;"); + wallet_channel_stats_incr_x(w, id, m, query); } void wallet_channel_stats_incr_out_fulfilled(struct wallet *w, u64 id, struct amount_msat m) { - wallet_channel_stats_incr_x(w, "out", "fulfilled", id, m); + const char query[] = SQL("UPDATE channels" + " SET out_payments_fulfilled = COALESCE(out_payments_fulfilled, 0) + 1" + " , out_msatoshi_fulfilled = COALESCE(out_msatoshi_fulfilled, 0) + ?" + " WHERE id = ?;"); + wallet_channel_stats_incr_x(w, id, m, query); } u32 wallet_blocks_maxheight(struct wallet *w) diff --git a/wallet/wallet.h b/wallet/wallet.h index 8fd3ca091f48..dce2475a4695 100644 --- a/wallet/wallet.h +++ b/wallet/wallet.h @@ -366,14 +366,6 @@ struct outpoint { u32 spendheight; }; -/* Statistics for a channel */ -struct channel_stats { - u64 in_payments_offered, in_payments_fulfilled; - struct amount_msat in_msatoshi_offered, in_msatoshi_fulfilled; - u64 out_payments_offered, out_payments_fulfilled; - struct amount_msat out_msatoshi_offered, out_msatoshi_fulfilled; -}; - struct channeltx { u32 channel_id; int type; From 0440700132144caade6d9c8c9da39e9fa65bd137 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 19 Sep 2024 16:34:20 +0930 Subject: [PATCH 04/51] lightningd: move the state changes into `struct channel`. And instead of loading them in listpeerchannels, use them. This means listpeerchannels no longer touches the db. Signed-off-by: Rusty Russell Changelog-Fixed: JSONRPC: `listpeerchannels` (and thus, pay) sped up on very large nodes. --- lightningd/channel.c | 21 +++++++++++++++------ lightningd/channel.h | 6 +++++- lightningd/opening_control.c | 6 ++++-- lightningd/peer_control.c | 14 ++++++-------- wallet/test/run-db.c | 3 ++- wallet/test/run-wallet.c | 3 ++- wallet/wallet.c | 6 +++++- 7 files changed, 39 insertions(+), 20 deletions(-) diff --git a/lightningd/channel.c b/lightningd/channel.c index 1ea3693cde31..646c4f2ed5cd 100644 --- a/lightningd/channel.c +++ b/lightningd/channel.c @@ -312,6 +312,7 @@ struct channel *new_unsaved_channel(struct peer *peer, channel->stable_conn_timer = NULL; /* Nothing happened yet */ memset(&channel->stats, 0, sizeof(channel->stats)); + channel->state_changes = tal_arr(channel, struct state_change_entry, 0); /* No shachain yet */ channel->their_shachain.id = 0; @@ -448,7 +449,8 @@ struct channel *new_channel(struct peer *peer, u64 dbid, /* NULL or stolen */ struct peer_update *peer_update STEALS, u64 last_stable_connection, - const struct channel_stats *stats) + const struct channel_stats *stats, + struct state_change_entry *state_changes STEALS) { struct channel *channel = tal(peer->ld, struct channel); struct amount_msat htlc_min, htlc_max; @@ -606,6 +608,8 @@ struct channel *new_channel(struct peer *peer, u64 dbid, channel->last_stable_connection = last_stable_connection; channel->stable_conn_timer = NULL; channel->stats = *stats; + channel->state_changes = tal_steal(channel, state_changes); + /* Populate channel->channel_gossip */ channel_gossip_init(channel, take(peer_update)); @@ -836,8 +840,6 @@ void channel_set_state(struct channel *channel, enum state_change reason, char *why) { - struct timeabs timestamp; - /* set closer, if known */ if (channel_state_closing(state) && channel->closer == NUM_SIDES) { if (reason == REASON_LOCAL) channel->closer = LOCAL; @@ -865,10 +867,17 @@ void channel_set_state(struct channel *channel, /* plugin notification channel_state_changed and DB entry */ if (state != old_state) { /* see issue #4029 */ - timestamp = time_now(); + struct state_change_entry change; + change.timestamp = time_now(); + change.old_state = old_state; + change.new_state = state; + change.cause = reason; + change.message = tal_strdup(channel->state_changes, why); + tal_arr_expand(&channel->state_changes, change); + wallet_state_change_add(channel->peer->ld->wallet, channel->dbid, - timestamp, + change.timestamp, old_state, state, reason, @@ -877,7 +886,7 @@ void channel_set_state(struct channel *channel, &channel->peer->id, &channel->cid, channel->scid, - timestamp, + change.timestamp, old_state, state, reason, diff --git a/lightningd/channel.h b/lightningd/channel.h index 9f1623ad9ab3..864854afa928 100644 --- a/lightningd/channel.h +++ b/lightningd/channel.h @@ -325,6 +325,9 @@ struct channel { /* Our stats */ struct channel_stats stats; + + /* Our change history. */ + struct state_change_entry *state_changes; }; /* Is channel owned (and should be talking to peer) */ @@ -407,7 +410,8 @@ struct channel *new_channel(struct peer *peer, u64 dbid, /* NULL or stolen */ struct peer_update *peer_update STEALS, u64 last_stable_connection, - const struct channel_stats *stats); + const struct channel_stats *stats, + struct state_change_entry *state_changes STEALS); /* new_inflight - Create a new channel_inflight for a channel */ struct channel_inflight *new_inflight(struct channel *channel, diff --git a/lightningd/opening_control.c b/lightningd/opening_control.c index 197316615661..a52307323605 100644 --- a/lightningd/opening_control.c +++ b/lightningd/opening_control.c @@ -220,7 +220,8 @@ wallet_commit_channel(struct lightningd *ld, ld->config.ignore_fee_limits, NULL, 0, - &zero_channel_stats); + &zero_channel_stats, + tal_arr(NULL, struct state_change_entry, 0)); /* Now we finally put it in the database. */ wallet_channel_insert(ld->wallet, channel); @@ -1598,7 +1599,8 @@ static struct channel *stub_chan(struct command *cmd, false, NULL, 0, - &zero_channel_stats); + &zero_channel_stats, + tal_arr(NULL, struct state_change_entry, 0)); /* We don't want to gossip about this, ever. */ channel->channel_gossip = tal_free(channel->channel_gossip); diff --git a/lightningd/peer_control.c b/lightningd/peer_control.c index 285a209ab6d0..4bace9f47a96 100644 --- a/lightningd/peer_control.c +++ b/lightningd/peer_control.c @@ -820,7 +820,6 @@ static void NON_NULL_ARGS(1, 2, 4, 5) json_add_channel(struct command *cmd, struct lightningd *ld = cmd->ld; struct amount_msat funding_msat; struct amount_sat peer_funded_sats; - struct state_change_entry *state_changes; const struct peer_update *peer_update; u32 feerate; @@ -1161,19 +1160,18 @@ static void NON_NULL_ARGS(1, 2, 4, 5) json_add_channel(struct command *cmd, json_add_num(response, "max_accepted_htlcs", channel->our_config.max_accepted_htlcs); - state_changes = wallet_state_change_get(tmpctx, ld->wallet, channel->dbid); json_array_start(response, "state_changes"); - for (size_t i = 0; i < tal_count(state_changes); i++) { + for (size_t i = 0; i < tal_count(channel->state_changes); i++) { json_object_start(response, NULL); json_add_timeiso(response, "timestamp", - state_changes[i].timestamp); + channel->state_changes[i].timestamp); json_add_string(response, "old_state", - channel_state_str(state_changes[i].old_state)); + channel_state_str(channel->state_changes[i].old_state)); json_add_string(response, "new_state", - channel_state_str(state_changes[i].new_state)); + channel_state_str(channel->state_changes[i].new_state)); json_add_string(response, "cause", - channel_change_state_reason_str(state_changes[i].cause)); - json_add_string(response, "message", state_changes[i].message); + channel_change_state_reason_str(channel->state_changes[i].cause)); + json_add_string(response, "message", channel->state_changes[i].message); json_object_end(response); } json_array_end(response); diff --git a/wallet/test/run-db.c b/wallet/test/run-db.c index 4af4988e7521..445ef118c46b 100644 --- a/wallet/test/run-db.c +++ b/wallet/test/run-db.c @@ -192,7 +192,8 @@ struct channel *new_channel(struct peer *peer UNNEEDED, u64 dbid UNNEEDED, /* NULL or stolen */ struct peer_update *peer_update STEALS UNNEEDED, u64 last_stable_connection UNNEEDED, - const struct channel_stats *stats UNNEEDED) + const struct channel_stats *stats UNNEEDED, + struct state_change_entry *state_changes STEALS UNNEEDED) { fprintf(stderr, "new_channel called!\n"); abort(); } /* Generated stub for new_coin_wallet_deposit */ struct chain_coin_mvt *new_coin_wallet_deposit(const tal_t *ctx UNNEEDED, diff --git a/wallet/test/run-wallet.c b/wallet/test/run-wallet.c index 68c961fc3480..0d069701d667 100644 --- a/wallet/test/run-wallet.c +++ b/wallet/test/run-wallet.c @@ -1997,7 +1997,8 @@ static bool test_channel_inflight_crud(struct lightningd *ld, const tal_t *ctx) false, NULL, 0, - stats); + stats, + tal_arr(NULL, struct state_change_entry, 0)); db_begin_transaction(w->db); CHECK(!wallet_err); wallet_channel_insert(w, chan); diff --git a/wallet/wallet.c b/wallet/wallet.c index fbab37d3dffa..c5b19ea42f6d 100644 --- a/wallet/wallet.c +++ b/wallet/wallet.c @@ -1522,6 +1522,7 @@ static struct channel *wallet_stmt2channel(struct wallet *w, struct db_stmt *stm bool ignore_fee_limits; struct peer_update *remote_update; struct channel_stats stats; + struct state_change_entry *state_changes; peer_dbid = db_col_u64(stmt, "peer_id"); peer = find_peer_by_dbid(w->ld, peer_dbid); @@ -1725,6 +1726,8 @@ static struct channel *wallet_stmt2channel(struct wallet *w, struct db_stmt *stm &stats.out_msatoshi_fulfilled, AMOUNT_MSAT(0)); + /* Stolen by new_channel */ + state_changes = wallet_state_change_get(NULL, w, db_col_u64(stmt, "id")); chan = new_channel(peer, db_col_u64(stmt, "id"), &wshachain, channel_state_in_db(db_col_int(stmt, "state")), @@ -1787,7 +1790,8 @@ static struct channel *wallet_stmt2channel(struct wallet *w, struct db_stmt *stm ignore_fee_limits, remote_update, db_col_u64(stmt, "last_stable_connection"), - &stats); + &stats, + state_changes); if (!wallet_channel_load_inflights(w, chan)) { tal_free(chan); From aba67a757c4a3ad76b0d441e4047f8f0d15223a7 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Thu, 19 Sep 2024 16:34:33 +0930 Subject: [PATCH 05/51] lightningd: rename state_change_entry to channel_state_change, and use pointers. This name is clearer than the old one. And since the struct contains a string, it's more natural for the struct to be the tal parent of the string so it's a real object. This means we need an array of pointers, so each struct can be its own tal object. wallet_state_change_get is hoisted higher in the code and made static. Signed-off-by: Rusty Russell --- lightningd/channel.c | 38 ++++++++--- lightningd/channel.h | 20 +++++- lightningd/channel_state.h | 9 --- lightningd/opening_control.c | 4 +- lightningd/peer_control.c | 13 ++-- lightningd/test/run-invoice-select-inchan.c | 5 -- wallet/test/run-db.c | 10 ++- wallet/test/run-wallet.c | 2 +- wallet/wallet.c | 70 +++++++++++---------- wallet/wallet.h | 7 --- 10 files changed, 101 insertions(+), 77 deletions(-) diff --git a/lightningd/channel.c b/lightningd/channel.c index 646c4f2ed5cd..59c5be0a2d0e 100644 --- a/lightningd/channel.c +++ b/lightningd/channel.c @@ -312,7 +312,7 @@ struct channel *new_unsaved_channel(struct peer *peer, channel->stable_conn_timer = NULL; /* Nothing happened yet */ memset(&channel->stats, 0, sizeof(channel->stats)); - channel->state_changes = tal_arr(channel, struct state_change_entry, 0); + channel->state_changes = tal_arr(channel, struct channel_state_change *, 0); /* No shachain yet */ channel->their_shachain.id = 0; @@ -450,7 +450,7 @@ struct channel *new_channel(struct peer *peer, u64 dbid, struct peer_update *peer_update STEALS, u64 last_stable_connection, const struct channel_stats *stats, - struct state_change_entry *state_changes STEALS) + struct channel_state_change **state_changes STEALS) { struct channel *channel = tal(peer->ld, struct channel); struct amount_msat htlc_min, htlc_max; @@ -834,6 +834,22 @@ void channel_set_last_tx(struct channel *channel, channel->last_tx = tal_steal(channel, tx); } +struct channel_state_change *new_channel_state_change(const tal_t *ctx, + struct timeabs timestamp, + enum channel_state old_state, + enum channel_state new_state, + enum state_change cause, + const char *message TAKES) +{ + struct channel_state_change *c = tal(ctx, struct channel_state_change); + c->timestamp = timestamp; + c->old_state = old_state; + c->new_state = new_state; + c->cause = cause; + c->message = tal_strdup(c, message); + return c; +} + void channel_set_state(struct channel *channel, enum channel_state old_state, enum channel_state state, @@ -867,17 +883,19 @@ void channel_set_state(struct channel *channel, /* plugin notification channel_state_changed and DB entry */ if (state != old_state) { /* see issue #4029 */ - struct state_change_entry change; - change.timestamp = time_now(); - change.old_state = old_state; - change.new_state = state; - change.cause = reason; - change.message = tal_strdup(channel->state_changes, why); + struct channel_state_change *change; + + change = new_channel_state_change(channel->state_changes, + time_now(), + old_state, + state, + reason, + why); tal_arr_expand(&channel->state_changes, change); wallet_state_change_add(channel->peer->ld->wallet, channel->dbid, - change.timestamp, + change->timestamp, old_state, state, reason, @@ -886,7 +904,7 @@ void channel_set_state(struct channel *channel, &channel->peer->id, &channel->cid, channel->scid, - change.timestamp, + change->timestamp, old_state, state, reason, diff --git a/lightningd/channel.h b/lightningd/channel.h index 864854afa928..4b40356990c9 100644 --- a/lightningd/channel.h +++ b/lightningd/channel.h @@ -115,6 +115,15 @@ struct channel_stats { struct amount_msat out_msatoshi_offered, out_msatoshi_fulfilled; }; + +struct channel_state_change { + struct timeabs timestamp; + enum channel_state old_state; + enum channel_state new_state; + enum state_change cause; + const char *message; +}; + struct channel { /* Inside peer->channels. */ struct list_node list; @@ -327,7 +336,7 @@ struct channel { struct channel_stats stats; /* Our change history. */ - struct state_change_entry *state_changes; + struct channel_state_change **state_changes; }; /* Is channel owned (and should be talking to peer) */ @@ -411,7 +420,7 @@ struct channel *new_channel(struct peer *peer, u64 dbid, struct peer_update *peer_update STEALS, u64 last_stable_connection, const struct channel_stats *stats, - struct state_change_entry *state_changes STEALS); + struct channel_state_change **state_changes STEALS); /* new_inflight - Create a new channel_inflight for a channel */ struct channel_inflight *new_inflight(struct channel *channel, @@ -431,6 +440,13 @@ struct channel_inflight *new_inflight(struct channel *channel, bool i_am_initiator, bool force_sign_first); +struct channel_state_change *new_channel_state_change(const tal_t *ctx, + struct timeabs timestamp, + enum channel_state old_state, + enum channel_state new_state, + enum state_change cause, + const char *message TAKES); + /* Add a last_tx and sig to an inflight */ void inflight_set_last_tx(struct channel_inflight *inflight, struct bitcoin_tx *last_tx STEALS, diff --git a/lightningd/channel_state.h b/lightningd/channel_state.h index 2c655bc8b0ef..8ef3da3bebe7 100644 --- a/lightningd/channel_state.h +++ b/lightningd/channel_state.h @@ -73,13 +73,4 @@ enum state_change { /* Note: This is very likely a conscious remote decision. */ REASON_ONCHAIN }; - -struct state_change_entry { - struct timeabs timestamp; - enum channel_state old_state; - enum channel_state new_state; - enum state_change cause; - char *message; -}; - #endif /* LIGHTNING_LIGHTNINGD_CHANNEL_STATE_H */ diff --git a/lightningd/opening_control.c b/lightningd/opening_control.c index a52307323605..d0a2c7e6eed6 100644 --- a/lightningd/opening_control.c +++ b/lightningd/opening_control.c @@ -221,7 +221,7 @@ wallet_commit_channel(struct lightningd *ld, NULL, 0, &zero_channel_stats, - tal_arr(NULL, struct state_change_entry, 0)); + tal_arr(NULL, struct channel_state_change *, 0)); /* Now we finally put it in the database. */ wallet_channel_insert(ld->wallet, channel); @@ -1600,7 +1600,7 @@ static struct channel *stub_chan(struct command *cmd, NULL, 0, &zero_channel_stats, - tal_arr(NULL, struct state_change_entry, 0)); + tal_arr(NULL, struct channel_state_change *, 0)); /* We don't want to gossip about this, ever. */ channel->channel_gossip = tal_free(channel->channel_gossip); diff --git a/lightningd/peer_control.c b/lightningd/peer_control.c index 4bace9f47a96..d514f59364cb 100644 --- a/lightningd/peer_control.c +++ b/lightningd/peer_control.c @@ -1162,16 +1162,17 @@ static void NON_NULL_ARGS(1, 2, 4, 5) json_add_channel(struct command *cmd, json_array_start(response, "state_changes"); for (size_t i = 0; i < tal_count(channel->state_changes); i++) { + const struct channel_state_change *change + = channel->state_changes[i]; json_object_start(response, NULL); - json_add_timeiso(response, "timestamp", - channel->state_changes[i].timestamp); + json_add_timeiso(response, "timestamp", change->timestamp); json_add_string(response, "old_state", - channel_state_str(channel->state_changes[i].old_state)); + channel_state_str(change->old_state)); json_add_string(response, "new_state", - channel_state_str(channel->state_changes[i].new_state)); + channel_state_str(change->new_state)); json_add_string(response, "cause", - channel_change_state_reason_str(channel->state_changes[i].cause)); - json_add_string(response, "message", channel->state_changes[i].message); + channel_change_state_reason_str(change->cause)); + json_add_string(response, "message", change->message); json_object_end(response); } json_array_end(response); diff --git a/lightningd/test/run-invoice-select-inchan.c b/lightningd/test/run-invoice-select-inchan.c index cc17b7947f51..54fe654ac139 100644 --- a/lightningd/test/run-invoice-select-inchan.c +++ b/lightningd/test/run-invoice-select-inchan.c @@ -1059,11 +1059,6 @@ char *wallet_offer_find(const tal_t *ctx UNNEEDED, enum offer_status *status) { fprintf(stderr, "wallet_offer_find called!\n"); abort(); } -/* Generated stub for wallet_state_change_get */ -struct state_change_entry *wallet_state_change_get(const tal_t *ctx UNNEEDED, - struct wallet *w UNNEEDED, - u64 channel_id UNNEEDED) -{ fprintf(stderr, "wallet_state_change_get called!\n"); abort(); } /* Generated stub for wallet_total_forward_fees */ struct amount_msat wallet_total_forward_fees(struct wallet *w UNNEEDED) { fprintf(stderr, "wallet_total_forward_fees called!\n"); abort(); } diff --git a/wallet/test/run-db.c b/wallet/test/run-db.c index 445ef118c46b..755b6318ee4c 100644 --- a/wallet/test/run-db.c +++ b/wallet/test/run-db.c @@ -193,8 +193,16 @@ struct channel *new_channel(struct peer *peer UNNEEDED, u64 dbid UNNEEDED, struct peer_update *peer_update STEALS UNNEEDED, u64 last_stable_connection UNNEEDED, const struct channel_stats *stats UNNEEDED, - struct state_change_entry *state_changes STEALS UNNEEDED) + struct channel_state_change **state_changes STEALS UNNEEDED) { fprintf(stderr, "new_channel called!\n"); abort(); } +/* Generated stub for new_channel_state_change */ +struct channel_state_change *new_channel_state_change(const tal_t *ctx UNNEEDED, + struct timeabs timestamp UNNEEDED, + enum channel_state old_state UNNEEDED, + enum channel_state new_state UNNEEDED, + enum state_change cause UNNEEDED, + const char *message TAKES UNNEEDED) +{ fprintf(stderr, "new_channel_state_change called!\n"); abort(); } /* Generated stub for new_coin_wallet_deposit */ struct chain_coin_mvt *new_coin_wallet_deposit(const tal_t *ctx UNNEEDED, const struct bitcoin_outpoint *outpoint UNNEEDED, diff --git a/wallet/test/run-wallet.c b/wallet/test/run-wallet.c index 0d069701d667..31006b1f7a6d 100644 --- a/wallet/test/run-wallet.c +++ b/wallet/test/run-wallet.c @@ -1998,7 +1998,7 @@ static bool test_channel_inflight_crud(struct lightningd *ld, const tal_t *ctx) NULL, 0, stats, - tal_arr(NULL, struct state_change_entry, 0)); + tal_arr(NULL, struct channel_state_change *, 0)); db_begin_transaction(w->db); CHECK(!wallet_err); wallet_channel_insert(w, chan); diff --git a/wallet/wallet.c b/wallet/wallet.c index c5b19ea42f6d..811944c27a18 100644 --- a/wallet/wallet.c +++ b/wallet/wallet.c @@ -1486,6 +1486,41 @@ static struct short_channel_id *db_col_optional_scid(const tal_t *ctx, return scid; } +static struct channel_state_change **wallet_state_change_get(const tal_t *ctx, + struct wallet *w, + u64 channel_id) +{ + struct db_stmt *stmt; + struct channel_state_change **res = tal_arr(ctx, + struct channel_state_change *, 0); + stmt = db_prepare_v2( + w->db, SQL("SELECT" + " timestamp," + " old_state," + " new_state," + " cause," + " message " + "FROM channel_state_changes " + "WHERE channel_id = ? " + "ORDER BY timestamp ASC;")); + db_bind_int(stmt, channel_id); + db_query_prepared(stmt); + + while (db_step(stmt)) { + struct channel_state_change *c; + + c = new_channel_state_change(res, + db_col_timeabs(stmt, "timestamp"), + db_col_int(stmt, "old_state"), + db_col_int(stmt, "new_state"), + state_change_in_db(db_col_int(stmt, "cause")), + take(db_col_strdup(NULL, stmt, "message"))); + tal_arr_expand(&res, c); + } + tal_free(stmt); + return res; +} + /** * wallet_stmt2channel - Helper to populate a wallet_channel from a `db_stmt` */ @@ -1522,7 +1557,7 @@ static struct channel *wallet_stmt2channel(struct wallet *w, struct db_stmt *stm bool ignore_fee_limits; struct peer_update *remote_update; struct channel_stats stats; - struct state_change_entry *state_changes; + struct channel_state_change **state_changes; peer_dbid = db_col_u64(stmt, "peer_id"); peer = find_peer_by_dbid(w->ld, peer_dbid); @@ -2464,39 +2499,6 @@ void wallet_state_change_add(struct wallet *w, db_exec_prepared_v2(take(stmt)); } -struct state_change_entry *wallet_state_change_get(const tal_t *ctx, - struct wallet *w, - u64 channel_id) -{ - struct db_stmt *stmt; - struct state_change_entry tmp; - struct state_change_entry *res = tal_arr(ctx, - struct state_change_entry, 0); - stmt = db_prepare_v2( - w->db, SQL("SELECT" - " timestamp," - " old_state," - " new_state," - " cause," - " message " - "FROM channel_state_changes " - "WHERE channel_id = ? " - "ORDER BY timestamp ASC;")); - db_bind_int(stmt, channel_id); - db_query_prepared(stmt); - - while (db_step(stmt)) { - tmp.timestamp = db_col_timeabs(stmt, "timestamp"); - tmp.old_state = db_col_int(stmt, "old_state"); - tmp.new_state = db_col_int(stmt, "new_state"); - tmp.cause = state_change_in_db(db_col_int(stmt, "cause")); - tmp.message = db_col_strdup(res, stmt, "message"); - tal_arr_expand(&res, tmp); - } - tal_free(stmt); - return res; -} - static void wallet_peer_save(struct wallet *w, struct peer *peer) { const char *addr = diff --git a/wallet/wallet.h b/wallet/wallet.h index dce2475a4695..9329e5a37750 100644 --- a/wallet/wallet.h +++ b/wallet/wallet.h @@ -662,13 +662,6 @@ void wallet_state_change_add(struct wallet *w, enum state_change cause, const char *message); -/** - * Gets all state change history entries for a channel from the database - */ -struct state_change_entry *wallet_state_change_get(const tal_t *ctx, - struct wallet *w, - u64 channel_id); - /** * wallet_delete_peer_if_unused -- After no more channels in peer, forget about it */ From 2798b4b7bec57bcd352a4e4c2acafff2d4494b80 Mon Sep 17 00:00:00 2001 From: Jesse de Wit Date: Fri, 30 Aug 2024 11:44:01 +0200 Subject: [PATCH 06/51] cln-grpc: add anchors/even to primitives The `anchors/even` channel type was missing from the grpc bindings. It is now the default channel type, so `fundchannel` over grpc fails with: ``` Failed to deserialize response : unknown variant `anchors/even`, expected one of `static_remotekey/even`, `anchor_outputs/even`, `anchors_zero_fee_htlc_tx/even`, `scid_alias/even`, `zeroconf/even` ``` Changelog-Changed: Channel type `anchors/even` was added to the grpc bindings. --- cln-grpc/proto/primitives.proto | 1 + cln-rpc/src/primitives.rs | 4 ++++ contrib/pyln-grpc-proto/pyln/grpc/primitives_pb2.py | 12 ++++++------ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/cln-grpc/proto/primitives.proto b/cln-grpc/proto/primitives.proto index 8916b84f20c1..f592172bcae4 100644 --- a/cln-grpc/proto/primitives.proto +++ b/cln-grpc/proto/primitives.proto @@ -127,6 +127,7 @@ enum ChannelTypeName { anchors_zero_fee_htlc_tx_even = 2; scid_alias_even = 3; zeroconf_even = 4; + anchors_even = 5; } enum AutocleanSubsystem { diff --git a/cln-rpc/src/primitives.rs b/cln-rpc/src/primitives.rs index 8d7ef03bb48f..0d05c3aa2a10 100644 --- a/cln-rpc/src/primitives.rs +++ b/cln-rpc/src/primitives.rs @@ -67,6 +67,8 @@ pub enum ChannelTypeName { SCID_ALIAS_EVEN = 3, #[serde(rename = "zeroconf/even")] ZEROCONF_EVEN = 4, + #[serde(rename = "anchors/even")] + ANCHORS_EVEN = 5, } #[derive(Copy, Clone, Serialize, Deserialize, Debug)] @@ -407,6 +409,7 @@ impl From for ChannelTypeName { 2 => ChannelTypeName::ANCHORS_ZERO_FEE_HTLC_TX_EVEN, 3 => ChannelTypeName::SCID_ALIAS_EVEN, 4 => ChannelTypeName::ZEROCONF_EVEN, + 5 => ChannelTypeName::ANCHORS_EVEN, o => panic!("Unmapped ChannelTypeName {}", o), } } @@ -420,6 +423,7 @@ impl From for i32 { ChannelTypeName::ANCHORS_ZERO_FEE_HTLC_TX_EVEN => 2, ChannelTypeName::SCID_ALIAS_EVEN => 3, ChannelTypeName::ZEROCONF_EVEN => 4, + ChannelTypeName::ANCHORS_EVEN => 5, } } } diff --git a/contrib/pyln-grpc-proto/pyln/grpc/primitives_pb2.py b/contrib/pyln-grpc-proto/pyln/grpc/primitives_pb2.py index 955eb91afcdb..29aa74c044d0 100644 --- a/contrib/pyln-grpc-proto/pyln/grpc/primitives_pb2.py +++ b/contrib/pyln-grpc-proto/pyln/grpc/primitives_pb2.py @@ -14,7 +14,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10primitives.proto\x12\x03\x63ln\"\x16\n\x06\x41mount\x12\x0c\n\x04msat\x18\x01 \x01(\x04\"D\n\x0b\x41mountOrAll\x12\x1d\n\x06\x61mount\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x12\r\n\x03\x61ll\x18\x02 \x01(\x08H\x00\x42\x07\n\x05value\"D\n\x0b\x41mountOrAny\x12\x1d\n\x06\x61mount\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x12\r\n\x03\x61ny\x18\x02 \x01(\x08H\x00\x42\x07\n\x05value\"\x19\n\x17\x43hannelStateChangeCause\"(\n\x08Outpoint\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\"h\n\x07\x46\x65\x65rate\x12\x0e\n\x04slow\x18\x01 \x01(\x08H\x00\x12\x10\n\x06normal\x18\x02 \x01(\x08H\x00\x12\x10\n\x06urgent\x18\x03 \x01(\x08H\x00\x12\x0f\n\x05perkb\x18\x04 \x01(\rH\x00\x12\x0f\n\x05perkw\x18\x05 \x01(\rH\x00\x42\x07\n\x05style\":\n\nOutputDesc\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x1b\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\"h\n\x08RouteHop\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x0c\n\x04scid\x18\x02 \x01(\t\x12\x1c\n\x07\x66\x65\x65\x62\x61se\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x0f\n\x07\x66\x65\x65prop\x18\x04 \x01(\r\x12\x13\n\x0b\x65xpirydelta\x18\x05 \x01(\r\"(\n\tRoutehint\x12\x1b\n\x04hops\x18\x01 \x03(\x0b\x32\r.cln.RouteHop\".\n\rRoutehintList\x12\x1d\n\x05hints\x18\x02 \x03(\x0b\x32\x0e.cln.Routehint\"\x9e\x01\n\x0e\x44\x65\x63odeRouteHop\x12\x0e\n\x06pubkey\x18\x01 \x01(\x0c\x12\x18\n\x10short_channel_id\x18\x02 \x01(\t\x12\"\n\rfee_base_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x1b\x66\x65\x65_proportional_millionths\x18\x04 \x01(\r\x12\x19\n\x11\x63ltv_expiry_delta\x18\x05 \x01(\r\"4\n\x0f\x44\x65\x63odeRoutehint\x12!\n\x04hops\x18\x01 \x03(\x0b\x32\x13.cln.DecodeRouteHop\":\n\x13\x44\x65\x63odeRoutehintList\x12#\n\x05hints\x18\x02 \x03(\x0b\x32\x14.cln.DecodeRoutehint\"\'\n\x08TlvEntry\x12\x0c\n\x04type\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c\"+\n\tTlvStream\x12\x1e\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\r.cln.TlvEntry*$\n\x0b\x43hannelSide\x12\t\n\x05LOCAL\x10\x00\x12\n\n\x06REMOTE\x10\x01*\xa0\x02\n\x0c\x43hannelState\x12\x0c\n\x08Openingd\x10\x00\x12\x1a\n\x16\x43hanneldAwaitingLockin\x10\x01\x12\x12\n\x0e\x43hanneldNormal\x10\x02\x12\x18\n\x14\x43hanneldShuttingDown\x10\x03\x12\x17\n\x13\x43losingdSigexchange\x10\x04\x12\x14\n\x10\x43losingdComplete\x10\x05\x12\x16\n\x12\x41waitingUnilateral\x10\x06\x12\x14\n\x10\x46undingSpendSeen\x10\x07\x12\x0b\n\x07Onchain\x10\x08\x12\x15\n\x11\x44ualopendOpenInit\x10\t\x12\x1b\n\x17\x44ualopendAwaitingLockin\x10\n\x12\x1a\n\x16\x43hanneldAwaitingSplice\x10\x0b*\xd5\x03\n\tHtlcState\x12\x0f\n\x0bSentAddHtlc\x10\x00\x12\x11\n\rSentAddCommit\x10\x01\x12\x15\n\x11RcvdAddRevocation\x10\x02\x12\x14\n\x10RcvdAddAckCommit\x10\x03\x12\x18\n\x14SentAddAckRevocation\x10\x04\x12\x18\n\x14RcvdAddAckRevocation\x10\x05\x12\x12\n\x0eRcvdRemoveHtlc\x10\x06\x12\x14\n\x10RcvdRemoveCommit\x10\x07\x12\x18\n\x14SentRemoveRevocation\x10\x08\x12\x17\n\x13SentRemoveAckCommit\x10\t\x12\x1b\n\x17RcvdRemoveAckRevocation\x10\n\x12\x0f\n\x0bRcvdAddHtlc\x10\x0b\x12\x11\n\rRcvdAddCommit\x10\x0c\x12\x15\n\x11SentAddRevocation\x10\r\x12\x14\n\x10SentAddAckCommit\x10\x0e\x12\x12\n\x0eSentRemoveHtlc\x10\x0f\x12\x14\n\x10SentRemoveCommit\x10\x10\x12\x18\n\x14RcvdRemoveRevocation\x10\x11\x12\x17\n\x13RcvdRemoveAckCommit\x10\x12\x12\x1b\n\x17SentRemoveAckRevocation\x10\x13*\x90\x01\n\x0f\x43hannelTypeName\x12\x19\n\x15static_remotekey_even\x10\x00\x12\x17\n\x13\x61nchor_outputs_even\x10\x01\x12!\n\x1d\x61nchors_zero_fee_htlc_tx_even\x10\x02\x12\x13\n\x0fscid_alias_even\x10\x03\x12\x11\n\rzeroconf_even\x10\x04*\x89\x01\n\x12\x41utocleanSubsystem\x12\x15\n\x11SUCCEEDEDFORWARDS\x10\x00\x12\x12\n\x0e\x46\x41ILEDFORWARDS\x10\x01\x12\x11\n\rSUCCEEDEDPAYS\x10\x02\x12\x0e\n\nFAILEDPAYS\x10\x03\x12\x10\n\x0cPAIDINVOICES\x10\x04\x12\x13\n\x0f\x45XPIREDINVOICES\x10\x05*K\n\x10PluginSubcommand\x12\t\n\x05START\x10\x00\x12\x08\n\x04STOP\x10\x01\x12\n\n\x06RESCAN\x10\x02\x12\x0c\n\x08STARTDIR\x10\x03\x12\x08\n\x04LIST\x10\x04\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10primitives.proto\x12\x03\x63ln\"\x16\n\x06\x41mount\x12\x0c\n\x04msat\x18\x01 \x01(\x04\"D\n\x0b\x41mountOrAll\x12\x1d\n\x06\x61mount\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x12\r\n\x03\x61ll\x18\x02 \x01(\x08H\x00\x42\x07\n\x05value\"D\n\x0b\x41mountOrAny\x12\x1d\n\x06\x61mount\x18\x01 \x01(\x0b\x32\x0b.cln.AmountH\x00\x12\r\n\x03\x61ny\x18\x02 \x01(\x08H\x00\x42\x07\n\x05value\"\x19\n\x17\x43hannelStateChangeCause\"(\n\x08Outpoint\x12\x0c\n\x04txid\x18\x01 \x01(\x0c\x12\x0e\n\x06outnum\x18\x02 \x01(\r\"h\n\x07\x46\x65\x65rate\x12\x0e\n\x04slow\x18\x01 \x01(\x08H\x00\x12\x10\n\x06normal\x18\x02 \x01(\x08H\x00\x12\x10\n\x06urgent\x18\x03 \x01(\x08H\x00\x12\x0f\n\x05perkb\x18\x04 \x01(\rH\x00\x12\x0f\n\x05perkw\x18\x05 \x01(\rH\x00\x42\x07\n\x05style\":\n\nOutputDesc\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x1b\n\x06\x61mount\x18\x02 \x01(\x0b\x32\x0b.cln.Amount\"h\n\x08RouteHop\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x0c\n\x04scid\x18\x02 \x01(\t\x12\x1c\n\x07\x66\x65\x65\x62\x61se\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12\x0f\n\x07\x66\x65\x65prop\x18\x04 \x01(\r\x12\x13\n\x0b\x65xpirydelta\x18\x05 \x01(\r\"(\n\tRoutehint\x12\x1b\n\x04hops\x18\x01 \x03(\x0b\x32\r.cln.RouteHop\".\n\rRoutehintList\x12\x1d\n\x05hints\x18\x02 \x03(\x0b\x32\x0e.cln.Routehint\"\x9e\x01\n\x0e\x44\x65\x63odeRouteHop\x12\x0e\n\x06pubkey\x18\x01 \x01(\x0c\x12\x18\n\x10short_channel_id\x18\x02 \x01(\t\x12\"\n\rfee_base_msat\x18\x03 \x01(\x0b\x32\x0b.cln.Amount\x12#\n\x1b\x66\x65\x65_proportional_millionths\x18\x04 \x01(\r\x12\x19\n\x11\x63ltv_expiry_delta\x18\x05 \x01(\r\"4\n\x0f\x44\x65\x63odeRoutehint\x12!\n\x04hops\x18\x01 \x03(\x0b\x32\x13.cln.DecodeRouteHop\":\n\x13\x44\x65\x63odeRoutehintList\x12#\n\x05hints\x18\x02 \x03(\x0b\x32\x14.cln.DecodeRoutehint\"\'\n\x08TlvEntry\x12\x0c\n\x04type\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x0c\"+\n\tTlvStream\x12\x1e\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\r.cln.TlvEntry*$\n\x0b\x43hannelSide\x12\t\n\x05LOCAL\x10\x00\x12\n\n\x06REMOTE\x10\x01*\xa0\x02\n\x0c\x43hannelState\x12\x0c\n\x08Openingd\x10\x00\x12\x1a\n\x16\x43hanneldAwaitingLockin\x10\x01\x12\x12\n\x0e\x43hanneldNormal\x10\x02\x12\x18\n\x14\x43hanneldShuttingDown\x10\x03\x12\x17\n\x13\x43losingdSigexchange\x10\x04\x12\x14\n\x10\x43losingdComplete\x10\x05\x12\x16\n\x12\x41waitingUnilateral\x10\x06\x12\x14\n\x10\x46undingSpendSeen\x10\x07\x12\x0b\n\x07Onchain\x10\x08\x12\x15\n\x11\x44ualopendOpenInit\x10\t\x12\x1b\n\x17\x44ualopendAwaitingLockin\x10\n\x12\x1a\n\x16\x43hanneldAwaitingSplice\x10\x0b*\xd5\x03\n\tHtlcState\x12\x0f\n\x0bSentAddHtlc\x10\x00\x12\x11\n\rSentAddCommit\x10\x01\x12\x15\n\x11RcvdAddRevocation\x10\x02\x12\x14\n\x10RcvdAddAckCommit\x10\x03\x12\x18\n\x14SentAddAckRevocation\x10\x04\x12\x18\n\x14RcvdAddAckRevocation\x10\x05\x12\x12\n\x0eRcvdRemoveHtlc\x10\x06\x12\x14\n\x10RcvdRemoveCommit\x10\x07\x12\x18\n\x14SentRemoveRevocation\x10\x08\x12\x17\n\x13SentRemoveAckCommit\x10\t\x12\x1b\n\x17RcvdRemoveAckRevocation\x10\n\x12\x0f\n\x0bRcvdAddHtlc\x10\x0b\x12\x11\n\rRcvdAddCommit\x10\x0c\x12\x15\n\x11SentAddRevocation\x10\r\x12\x14\n\x10SentAddAckCommit\x10\x0e\x12\x12\n\x0eSentRemoveHtlc\x10\x0f\x12\x14\n\x10SentRemoveCommit\x10\x10\x12\x18\n\x14RcvdRemoveRevocation\x10\x11\x12\x17\n\x13RcvdRemoveAckCommit\x10\x12\x12\x1b\n\x17SentRemoveAckRevocation\x10\x13*\xa2\x01\n\x0f\x43hannelTypeName\x12\x19\n\x15static_remotekey_even\x10\x00\x12\x17\n\x13\x61nchor_outputs_even\x10\x01\x12!\n\x1d\x61nchors_zero_fee_htlc_tx_even\x10\x02\x12\x13\n\x0fscid_alias_even\x10\x03\x12\x11\n\rzeroconf_even\x10\x04\x12\x10\n\x0c\x61nchors_even\x10\x05*\x89\x01\n\x12\x41utocleanSubsystem\x12\x15\n\x11SUCCEEDEDFORWARDS\x10\x00\x12\x12\n\x0e\x46\x41ILEDFORWARDS\x10\x01\x12\x11\n\rSUCCEEDEDPAYS\x10\x02\x12\x0e\n\nFAILEDPAYS\x10\x03\x12\x10\n\x0cPAIDINVOICES\x10\x04\x12\x13\n\x0f\x45XPIREDINVOICES\x10\x05*K\n\x10PluginSubcommand\x12\t\n\x05START\x10\x00\x12\x08\n\x04STOP\x10\x01\x12\n\n\x06RESCAN\x10\x02\x12\x0c\n\x08STARTDIR\x10\x03\x12\x08\n\x04LIST\x10\x04\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -28,11 +28,11 @@ _globals['_HTLCSTATE']._serialized_start=1311 _globals['_HTLCSTATE']._serialized_end=1780 _globals['_CHANNELTYPENAME']._serialized_start=1783 - _globals['_CHANNELTYPENAME']._serialized_end=1927 - _globals['_AUTOCLEANSUBSYSTEM']._serialized_start=1930 - _globals['_AUTOCLEANSUBSYSTEM']._serialized_end=2067 - _globals['_PLUGINSUBCOMMAND']._serialized_start=2069 - _globals['_PLUGINSUBCOMMAND']._serialized_end=2144 + _globals['_CHANNELTYPENAME']._serialized_end=1945 + _globals['_AUTOCLEANSUBSYSTEM']._serialized_start=1948 + _globals['_AUTOCLEANSUBSYSTEM']._serialized_end=2085 + _globals['_PLUGINSUBCOMMAND']._serialized_start=2087 + _globals['_PLUGINSUBCOMMAND']._serialized_end=2162 _globals['_AMOUNT']._serialized_start=25 _globals['_AMOUNT']._serialized_end=47 _globals['_AMOUNTORALL']._serialized_start=49 From a6366c2814e351ddbae7283bb6d62f8839502801 Mon Sep 17 00:00:00 2001 From: Peter Neuroth Date: Wed, 21 Aug 2024 13:45:50 +0200 Subject: [PATCH 07/51] rust-libs: Upgrade tonic to v0.12 Tonic had some breaking changes since 0.8. We want to be closer to newer versions for downstream consumers to be able to benefit from changes in tonic. Signed-off-by: Peter Neuroth --- Cargo.lock | 303 ++++++++------------------------- cln-grpc/Cargo.toml | 6 +- plugins/grpc-plugin/Cargo.toml | 10 +- 3 files changed, 83 insertions(+), 236 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7ecd83ae16da..16f7cee37cb7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -56,7 +56,7 @@ checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", "synstructure", ] @@ -68,7 +68,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", ] [[package]] @@ -90,7 +90,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", ] [[package]] @@ -101,7 +101,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", ] [[package]] @@ -170,12 +170,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -236,17 +230,11 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - [[package]] name = "bytes" -version = "1.6.1" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "cc" @@ -369,7 +357,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", ] [[package]] @@ -481,7 +469,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", ] [[package]] @@ -586,15 +574,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys", -] - [[package]] name = "http" version = "0.2.12" @@ -717,15 +696,6 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" -[[package]] -name = "js-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" -dependencies = [ - "wasm-bindgen", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -937,7 +907,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", ] [[package]] @@ -966,12 +936,12 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "prettyplease" -version = "0.1.25" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 1.0.109", + "syn", ] [[package]] @@ -985,9 +955,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" dependencies = [ "bytes", "prost-derive", @@ -995,44 +965,43 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" dependencies = [ "bytes", "heck", "itertools", - "lazy_static", "log", "multimap", + "once_cell", "petgraph", "prettyplease", "prost", "prost-types", "regex", - "syn 1.0.109", + "syn", "tempfile", - "which", ] [[package]] name = "prost-derive" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" dependencies = [ "anyhow", "itertools", "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] name = "prost-types" -version = "0.11.9" +version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" dependencies = [ "prost", ] @@ -1083,7 +1052,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54077e1872c46788540de1ea3d7f4ccb1983d12f9aa909b234468676c1a36779" dependencies = [ "pem", - "ring 0.17.8", + "ring", "rustls-pki-types", "time", "x509-parser", @@ -1134,21 +1103,6 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - [[package]] name = "ring" version = "0.17.8" @@ -1159,8 +1113,8 @@ dependencies = [ "cfg-if", "getrandom", "libc", - "spin 0.9.8", - "untrusted 0.9.0", + "spin", + "untrusted", "windows-sys", ] @@ -1194,23 +1148,26 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.9" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" dependencies = [ "log", - "ring 0.16.20", - "sct", - "webpki", + "ring", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", ] [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" dependencies = [ - "base64 0.21.7", + "base64 0.22.1", + "rustls-pki-types", ] [[package]] @@ -1219,6 +1176,17 @@ version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring", + "rustls-pki-types", + "untrusted", +] + [[package]] name = "rustversion" version = "1.0.17" @@ -1231,16 +1199,6 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - [[package]] name = "secp256k1" version = "0.27.0" @@ -1278,7 +1236,7 @@ checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", ] [[package]] @@ -1327,12 +1285,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -1340,21 +1292,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] -name = "syn" -version = "1.0.109" +name = "subtle" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.72" +version = "2.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" dependencies = [ "proc-macro2", "quote", @@ -1375,7 +1322,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", ] [[package]] @@ -1416,7 +1363,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", ] [[package]] @@ -1494,18 +1441,18 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", ] [[package]] name = "tokio-rustls" -version = "0.23.4" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" dependencies = [ "rustls", + "rustls-pki-types", "tokio", - "webpki", ] [[package]] @@ -1548,17 +1495,15 @@ dependencies = [ [[package]] name = "tonic" -version = "0.8.3" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" +checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13" dependencies = [ "async-stream", "async-trait", "axum", - "base64 0.13.1", + "base64 0.21.7", "bytes", - "futures-core", - "futures-util", "h2", "http", "http-body", @@ -1567,30 +1512,28 @@ dependencies = [ "percent-encoding", "pin-project", "prost", - "prost-derive", "rustls-pemfile", + "rustls-pki-types", "tokio", "tokio-rustls", "tokio-stream", - "tokio-util", "tower", "tower-layer", "tower-service", "tracing", - "tracing-futures", ] [[package]] name = "tonic-build" -version = "0.8.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4" +checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2" dependencies = [ "prettyplease", "proc-macro2", "prost-build", "quote", - "syn 1.0.109", + "syn", ] [[package]] @@ -1645,7 +1588,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.72", + "syn", ] [[package]] @@ -1658,16 +1601,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -1709,12 +1642,6 @@ version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -1742,92 +1669,6 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" -[[package]] -name = "wasm-bindgen" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.72", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.72", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" - -[[package]] -name = "web-sys" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix", -] - [[package]] name = "winapi" version = "0.3.9" @@ -1944,7 +1785,7 @@ dependencies = [ "lazy_static", "nom", "oid-registry", - "ring 0.17.8", + "ring", "rusticata-macros", "thiserror", "time", @@ -1958,3 +1799,9 @@ checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ "time", ] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/cln-grpc/Cargo.toml b/cln-grpc/Cargo.toml index ff36a319237a..2a03c572c66a 100644 --- a/cln-grpc/Cargo.toml +++ b/cln-grpc/Cargo.toml @@ -16,9 +16,9 @@ server = ["cln-rpc"] anyhow = "1.0" log = "0.4" cln-rpc = { path="../cln-rpc/", version = "^0.1", optional = true } -tonic = { version = "0.8", features = ["tls", "transport"] } -prost = "0.11" serde = { version = "1.0", features = ["derive"] } +tonic = { version = "0.11", features = ["tls", "transport"] } +prost = "0.12" hex = "0.4.3" bitcoin = { version = "0.30", features = [ "serde" ] } tokio-stream = { version = "0.1.14", features = ["sync"] } @@ -31,4 +31,4 @@ serde_json = "1.0.72" cln-rpc = { path="../cln-rpc/", version = "^0.1" } [build-dependencies] -tonic-build = "0.8" +tonic-build = "0.11" diff --git a/plugins/grpc-plugin/Cargo.toml b/plugins/grpc-plugin/Cargo.toml index 32085e44c29a..1daea299ab05 100644 --- a/plugins/grpc-plugin/Cargo.toml +++ b/plugins/grpc-plugin/Cargo.toml @@ -15,11 +15,11 @@ path = "src/main.rs" [dependencies] anyhow = "1.0" log = "0.4" -prost = "0.11" rcgen = { version = "0.13.1", features = ["pem", "x509-parser"] } -cln-grpc = { version = "0.1", features = ["server"], path = "../../cln-grpc"} -cln-plugin = { version = "0.1", path = "../../plugins" } -cln-rpc = { version = "0.1", path = "../../cln-rpc" } +prost = "0.12" +cln-grpc = { version = "0.2", features = ["server"], path = "../../cln-grpc"} +cln-plugin = { version = "0.2", path = "../../plugins" } +cln-rpc = { version = "0.2", path = "../../cln-rpc" } serde_json = "1.0.113" [dependencies.tokio] @@ -28,4 +28,4 @@ version = "1" [dependencies.tonic] features = ["tls", "transport"] -version = "0.8" +version = "0.11" From 0a6870f13d098d3b61651104dab598573038e8fb Mon Sep 17 00:00:00 2001 From: Peter Neuroth Date: Wed, 21 Aug 2024 15:10:53 +0200 Subject: [PATCH 08/51] rust-libs: Bump versions We bump the version to minor version 0.2 to allow ourselves to bump on patch level when we need to fix a bug or update a dependency. Changelog-Changed: Plugins: `cln-grpc` Upgrade tonic version and introduce new versioning scheme. Signed-off-by: Peter Neuroth --- Cargo.lock | 8 ++++---- cln-grpc/Cargo.toml | 6 +++--- cln-rpc/Cargo.toml | 2 +- plugins/Cargo.toml | 4 ++-- plugins/grpc-plugin/Cargo.toml | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 16f7cee37cb7..5f1965482408 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -250,7 +250,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cln-grpc" -version = "0.1.9" +version = "0.2.0" dependencies = [ "anyhow", "bitcoin", @@ -270,7 +270,7 @@ dependencies = [ [[package]] name = "cln-grpc-plugin" -version = "0.1.6" +version = "0.2.0" dependencies = [ "anyhow", "cln-grpc", @@ -286,7 +286,7 @@ dependencies = [ [[package]] name = "cln-plugin" -version = "0.1.9" +version = "0.2.0" dependencies = [ "anyhow", "bytes", @@ -304,7 +304,7 @@ dependencies = [ [[package]] name = "cln-rpc" -version = "0.1.9" +version = "0.2.0" dependencies = [ "anyhow", "bitcoin", diff --git a/cln-grpc/Cargo.toml b/cln-grpc/Cargo.toml index 2a03c572c66a..2b96b9c194b5 100644 --- a/cln-grpc/Cargo.toml +++ b/cln-grpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cln-grpc" -version = "0.1.9" +version = "0.2.0" edition = "2021" license = "MIT" description = "The Core Lightning API as grpc primitives. Provides the bindings used to expose the API over the network." @@ -15,7 +15,7 @@ server = ["cln-rpc"] [dependencies] anyhow = "1.0" log = "0.4" -cln-rpc = { path="../cln-rpc/", version = "^0.1", optional = true } +cln-rpc = { path="../cln-rpc/", version = "0.2", optional = true } serde = { version = "1.0", features = ["derive"] } tonic = { version = "0.11", features = ["tls", "transport"] } prost = "0.12" @@ -28,7 +28,7 @@ tokio-util = "0.7.10" [dev-dependencies] serde_json = "1.0.72" -cln-rpc = { path="../cln-rpc/", version = "^0.1" } +cln-rpc = { path="../cln-rpc/", version = "0.2" } [build-dependencies] tonic-build = "0.11" diff --git a/cln-rpc/Cargo.toml b/cln-rpc/Cargo.toml index 3d4b760f1e44..3f38145ef03b 100644 --- a/cln-rpc/Cargo.toml +++ b/cln-rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cln-rpc" -version = "0.1.9" +version = "0.2.0" edition = "2021" license = "MIT" description = "An async RPC client for Core Lightning." diff --git a/plugins/Cargo.toml b/plugins/Cargo.toml index 1b3dea946920..a753f01b9297 100644 --- a/plugins/Cargo.toml +++ b/plugins/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cln-plugin" -version = "0.1.9" +version = "0.2.0" edition = "2021" license = "MIT" description = "A CLN plugin library. Write your plugin in Rust." @@ -27,4 +27,4 @@ tracing = { version = "^0.1", features = ["async-await", "log"] } [dev-dependencies] tokio = { version = "1", features = ["macros", "rt-multi-thread", ] } -cln-grpc = { version = "0.1", path = "../cln-grpc" } +cln-grpc = { version = "0.2", path = "../cln-grpc" } diff --git a/plugins/grpc-plugin/Cargo.toml b/plugins/grpc-plugin/Cargo.toml index 1daea299ab05..5b8cd886b40c 100644 --- a/plugins/grpc-plugin/Cargo.toml +++ b/plugins/grpc-plugin/Cargo.toml @@ -1,7 +1,7 @@ [package] edition = "2021" name = "cln-grpc-plugin" -version = "0.1.6" +version = "0.2.0" description = "A Core Lightning plugin that re-exposes the JSON-RPC over grpc. Authentication is done via mTLS." license = "MIT" From 5ae7212e37c0f051014aea422475b91ec32b5e7c Mon Sep 17 00:00:00 2001 From: niftynei Date: Mon, 19 Aug 2024 17:24:24 -0500 Subject: [PATCH 09/51] anchors: dont include utxos which are csv locked When building a tx to spend *now* we shouldn't include CSV locked utxos as we want them to be immediately spendable. --- wallet/wallet.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wallet/wallet.c b/wallet/wallet.c index 811944c27a18..84a449d0ac91 100644 --- a/wallet/wallet.c +++ b/wallet/wallet.c @@ -469,6 +469,10 @@ struct utxo **wallet_utxo_boost(const tal_t *ctx, if (utxo_is_reserved(utxo, blockheight)) continue; + /* Don't add csv-locked ones */ + if (utxo_is_csv_locked(utxo, blockheight)) + continue; + /* UTXOs must be sane amounts */ if (!amount_sat_add(&new_fee_amount, fee_amount, utxo->amount)) From 21fcd4594b9db99017e6c6f4cca750566d1b2969 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 20 Sep 2024 13:03:01 +0930 Subject: [PATCH 10/51] cln-rpc/src/model.rs: fix difference between master and my machine. Not sure why this differs from master, so trying pushing my version to master? Signed-off-by: Rusty Russell --- cln-rpc/src/model.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cln-rpc/src/model.rs b/cln-rpc/src/model.rs index 26a25e53a9a4..2704515ce60e 100644 --- a/cln-rpc/src/model.rs +++ b/cln-rpc/src/model.rs @@ -3,7 +3,7 @@ // This file was automatically generated using the following command: // // ```bash -// contrib/msggen/msggen/__main__.py generate +// contrib/msggen/msggen/__main__.py -s generate // ``` // // Do not edit this file, it'll be overwritten. Rather edit the schema that From e36b68ab4803d1dfc6c29174f711b14c103fde10 Mon Sep 17 00:00:00 2001 From: ShahanaFarooqui Date: Tue, 24 Sep 2024 15:34:50 -0700 Subject: [PATCH 11/51] gpg: New public key Changelog-None. --- contrib/keys/sfarooqui.txt | 41 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/contrib/keys/sfarooqui.txt b/contrib/keys/sfarooqui.txt index 7e6d51c188d3..04125380495f 100644 --- a/contrib/keys/sfarooqui.txt +++ b/contrib/keys/sfarooqui.txt @@ -39,3 +39,44 @@ dOm4LuC5X/Ygx+zc5s8aTEYRGjlGYOJczZy6a5azaYUZMbiNSc4pEVOXJgUnbgC+ /JD0CXztohXlKEQYwx0PpModgSRhMFmDDtU8 =meZK -----END PGP PUBLIC KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=gFP5 +-----END PGP PUBLIC KEY BLOCK----- From 00e0b99d3af378fd4c442d9075402e824c703f0f Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 6 Sep 2024 11:43:35 +0930 Subject: [PATCH 12/51] hsmtool: provide nodeid from hsm secret. This allows tools to validate that it is accessing the correct hsm_secret for this node! This is extremely important for backups: if they are using VLS, they need to back *that* up instead, for example. Changelog-Added: `hsmtool`: `getnodeid` command derives the node id from the hsm_secret, to verify it's the correct secret. Signed-off-by: Rusty Russell --- doc/lightning-hsmtool.8.md | 27 ++++++++++++++------------ tests/test_wallet.py | 8 ++++++++ tools/hsmtool.c | 39 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 12 deletions(-) diff --git a/doc/lightning-hsmtool.8.md b/doc/lightning-hsmtool.8.md index cabe5dc6bd9f..d10f7b3b3ee6 100644 --- a/doc/lightning-hsmtool.8.md +++ b/doc/lightning-hsmtool.8.md @@ -20,38 +20,38 @@ as well as derive secrets used in channel commitments. METHODS ------- -**encrypt** *hsm\_secret* *password* +**encrypt** *hsm\_secret\_path* *password* - Encrypt the `hsm_secret` file so that it can only be decrypted at + Encrypt the `hsm_secret_path` file so that it can only be decrypted at **lightningd** startup. You must give the option **--encrypted-hsm** to **lightningd**. -The password of the `hsm_secret` file will be asked whenever you +The password of the `hsm_secret_path` file will be asked whenever you start **lightningd**. -**decrypt** *hsm\_secret* *password* +**decrypt** *hsm\_secret\_path* *password* - Decrypt the `hsm_secret` file that was encrypted with the **encrypt** + Decrypt the `hsm_secret_path` file that was encrypted with the **encrypt** method. -**dumpcommitments** *node\_id* *channel\_dbid* *depth* *hsm\_secret* \[*password*\] +**dumpcommitments** *node\_id* *channel\_dbid* *depth* *hsm\_secret\_path* \[*password*\] Show the per-commitment secret and point of up to *depth* commitments, of the specified channel with the specified peer, identified by the channel database index. -Specify *password* if the `hsm_secret` is encrypted. +Specify *password* if the `hsm_secret_path` is encrypted. -**guesstoremote** *p2wpkh* *node\_id* *max\_channel\_dbid* *hsm\_secret* \[*password*\] +**guesstoremote** *p2wpkh* *node\_id* *max\_channel\_dbid* *hsm\_secret\_path* \[*password*\] Brute-force the private key to our funds from a remote unilateral close of a channel, in a case where we have lost all database data except for -our `hsm_secret`. +our `hsm_secret_path`. The peer must be the one to close the channel (and the funds will remain unrecoverable until the channel is closed). *max\_channel\_dbid* is your own guess on what the *channel\_dbid* was, or at least the maximum possible value, and is usually no greater than the number of channels that the node has ever had. -Specify *password* if the `hsm_secret` is encrypted. +Specify *password* if the `hsm_secret_path` is encrypted. **generatehsm** *hsm\_secret\_path* Generates a new hsm\_secret using BIP39. @@ -59,7 +59,7 @@ Specify *password* if the `hsm_secret` is encrypted. **checkhsm** *hsm\_secret\_path* Checks that hsm\_secret matches a BIP39 passphrase. -**dumponchaindescriptors** \[*--show-secrets*\] *hsm\_secret* \[*network*\] +**dumponchaindescriptors** \[*--show-secrets*\] *hsm\_secret\_path* \[*network*\] Dump output descriptors for our onchain wallet. This command requires the path to the hsm\_secret containing the wallet seed. If the flag *--show-secrets* is set the command will show the BIP32 extended private @@ -74,7 +74,7 @@ password. To generate descriptors using testnet master keys, you may specify *testnet* as the last parameter. By default, mainnet-encoded keys are generated. -**makerune** *hsm\_secret* +**makerune** *hsm\_secret\_path* Make a master rune for this node (with `uniqueid` 0) This produces the same results as lightning-commando-rune(7) on a fresh node. You will still need to create a rune once the node starts, if you want commando to work (as it is only activated once it has generated one). @@ -85,6 +85,9 @@ You will still need to create a rune once the node starts, if you want commando **getemergencyrecover** *emergency.recover\_path* Print out the bech32 encoded emergency.recover file. +**getnodeid** *hsm\_secret\_path* + Print out the node id that a node using this hsm secret would have: useful for verifying that you are accessing the correct secret! + BUGS ---- diff --git a/tests/test_wallet.py b/tests/test_wallet.py index 77ba5f38a983..cf197fdc0fc4 100644 --- a/tests/test_wallet.py +++ b/tests/test_wallet.py @@ -1701,3 +1701,11 @@ def test_hsmtool_makerune(node_factory): # We have to generate a rune now, for commando to even start processing! rune = l1.rpc.commando_rune()['rune'] assert rune == out + + +def test_hsmtool_getnodeid(node_factory): + l1 = node_factory.get_node() + + cmd_line = ["tools/hsmtool", "getnodeid", os.path.join(l1.daemon.lightning_dir, TEST_NETWORK, "hsm_secret")] + out = subprocess.check_output(cmd_line).decode('utf-8').strip() + assert out == l1.info['id'] diff --git a/tools/hsmtool.c b/tools/hsmtool.c index c3daa80d6420..4b3c16141b4e 100644 --- a/tools/hsmtool.c +++ b/tools/hsmtool.c @@ -49,6 +49,7 @@ static void show_usage(const char *progname) printf(" - makerune \n"); printf(" - getcodexsecret \n"); printf(" - getemergencyrecover \n"); + printf(" - getnodeid \n"); exit(0); } @@ -697,6 +698,38 @@ static int make_rune(const char *hsm_secret_path) return 0; } +static int get_node_id(const char *hsm_secret_path) +{ + u32 salt = 0; + struct secret hsm_secret; + struct privkey node_privkey; + struct pubkey node_id; + + secp256k1_ctx = secp256k1_context_create(SECP256K1_CONTEXT_VERIFY + | SECP256K1_CONTEXT_SIGN); + + /* Get hsm_secret */ + get_hsm_secret(&hsm_secret, hsm_secret_path); + + /*~ So, there is apparently a 1 in 2^127 chance that a random value is + * not a valid private key, so this never actually loops. */ + do { + /*~ ccan/crypto/hkdf_sha256 implements RFC5869 "Hardened Key + * Derivation Functions". That means that if a derived key + * leaks somehow, the other keys are not compromised. */ + hkdf_sha256(&node_privkey, sizeof(node_privkey), + &salt, sizeof(salt), + &hsm_secret, + sizeof(hsm_secret), + "nodeid", 6); + salt++; + } while (!secp256k1_ec_pubkey_create(secp256k1_ctx, &node_id.pubkey, + node_privkey.secret.data)); + + printf("%s\n", fmt_pubkey(tmpctx, &node_id)); + return 0; +} + int main(int argc, char *argv[]) { const char *method; @@ -838,5 +871,11 @@ int main(int argc, char *argv[]) return getemergencyrecover(argv[2]); } + if (streq(method, "getnodeid")) { + if (argc < 3) + show_usage(argv[0]); + return get_node_id(argv[2]); + } + show_usage(argv[0]); } From 7ac32ebbf845624497efc77f8772b59cc1e5077f Mon Sep 17 00:00:00 2001 From: ShahanaFarooqui Date: Thu, 3 Oct 2024 11:20:52 -0700 Subject: [PATCH 13/51] Update pyln-client for clnrest --- plugins/clnrest/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/clnrest/pyproject.toml b/plugins/clnrest/pyproject.toml index dd418ceca97f..8c2b15c03193 100644 --- a/plugins/clnrest/pyproject.toml +++ b/plugins/clnrest/pyproject.toml @@ -10,7 +10,7 @@ json5 = "^0.9.14" flask = "^2.3.3" flask-restx = "^1.1.0" gunicorn = "^21.2.0" -pyln-client = "^24.2" +pyln-client = "^24.8" flask-socketio = "^5.3.6" gevent = "^23.9.0.post1" gevent-websocket = "^0.10.1" From d143c229760739343c2cc057c4bc6c6b43b3d742 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 2 Oct 2024 16:22:26 +0930 Subject: [PATCH 14/51] gossmap-compress: sort nodes into most to least as intended. Interestingly, compressed sizes don't change, but uncompressed does: ``` $ file /tmp/gs.out-wrongorder /tmp/gs.out-wrongorder: gzip compressed data, max compression, from Unix, original size modulo 2^32 1594822 $ ls -l /tmp/gs.out-wrongorder -rw-rw-r-- 1 rusty rusty 494337 Sep 20 13:34 /tmp/gs.out-wrongorder $ file /tmp/gs.out /tmp/gs.out: gzip compressed data, max compression, from Unix, original size modulo 2^32 1498634 $ ls -l /tmp/gs.out -rw-rw-r-- 1 rusty rusty 494353 Sep 20 13:33 /tmp/gs.out ``` Signed-off-by: Rusty Russell --- devtools/gossmap-compress.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/devtools/gossmap-compress.c b/devtools/gossmap-compress.c index 426dde9c9575..5c58c8558851 100644 --- a/devtools/gossmap-compress.c +++ b/devtools/gossmap-compress.c @@ -84,11 +84,12 @@ static unsigned int verbose = 0; #define GC_HEADERLEN (sizeof(GC_HEADER)) #define GOSSIP_STORE_VER ((0 << 5) | 14) +/* Backwards, we want larger first */ static int cmp_node_num_chans(struct gossmap_node *const *a, struct gossmap_node *const *b, void *unused) { - return (int)(*a)->num_chans - (int)(*b)->num_chans; + return (int)(*b)->num_chans - (int)(*a)->num_chans; } static void write_bigsize(gzFile outf, u64 val) From e55a4850cc2be99a37a0e7bdb87f20b1372f58fc Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 2 Oct 2024 16:24:23 +0930 Subject: [PATCH 15/51] devtools/gossmap-compress: fix channels. We can only use the loop to iterate once. Signed-off-by: Rusty Russell --- devtools/gossmap-compress.c | 54 ++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/devtools/gossmap-compress.c b/devtools/gossmap-compress.c index 5c58c8558851..9a1b2302df05 100644 --- a/devtools/gossmap-compress.c +++ b/devtools/gossmap-compress.c @@ -516,22 +516,23 @@ int main(int argc, char *argv[]) opt_parse(&argc, argv, opt_log_stderr_exit); if (argc != 4) - opt_usage_and_exit("Needs 4 arguments"); + opt_usage_exit_fail("Needs 4 arguments"); infd = open(argv[2], O_RDONLY); if (infd < 0) - opt_usage_and_exit(tal_fmt(tmpctx, "Cannot open %s for reading: %s", - argv[2], strerror(errno))); + opt_usage_exit_fail(tal_fmt(tmpctx, "Cannot open %s for reading: %s", + argv[2], strerror(errno))); outfd = open(argv[3], O_WRONLY|O_CREAT|O_TRUNC, 0666); if (outfd < 0) - opt_usage_and_exit(tal_fmt(tmpctx, "Cannot open %s for writing: %s", - argv[3], strerror(errno))); + opt_usage_exit_fail(tal_fmt(tmpctx, "Cannot open %s for writing: %s", + argv[3], strerror(errno))); if (streq(argv[1], "compress")) { struct gossmap_node **nodes, *n; size_t *node_to_compr_idx; size_t node_count, channel_count; struct gossmap_chan **chans, *c; + bool *dirs; gzFile outf = gzdopen(outfd, "wb9"); struct gossmap *gossmap = gossmap_load_fd(tmpctx, infd, NULL, NULL, NULL); @@ -569,27 +570,42 @@ int main(int argc, char *argv[]) if (verbose) printf("%zu channels\n", channel_count); chans = tal_arr(gossmap, struct gossmap_chan *, channel_count); + dirs = tal_arr(gossmap, bool, channel_count); /* * := {channel_count} {start_nodeidx}*{channel_count} {end_nodeidx}*{channel_count} */ write_bigsize(outf, channel_count); size_t chanidx = 0; /* We iterate nodes to get to channels. This gives us nicer ordering for compression */ - for (size_t wanted_dir = 0; wanted_dir < 2; wanted_dir++) { - for (n = gossmap_first_node(gossmap); n; n = gossmap_next_node(gossmap, n)) { - for (size_t i = 0; i < n->num_chans; i++) { - int dir; - c = gossmap_nth_chan(gossmap, n, i, &dir); - if (dir != wanted_dir) - continue; - - write_bigsize(outf, - node_to_compr_idx[gossmap_node_idx(gossmap, n)]); - /* First time reflects channel index for reader */ - if (wanted_dir == 0) - chans[chanidx++] = c; - } + for (size_t i = 0; i < tal_count(nodes); i++) { + n = nodes[i]; + for (size_t j = 0; j < n->num_chans; j++) { + const struct gossmap_node *peer; + int dir; + c = gossmap_nth_chan(gossmap, n, j, &dir); + + peer = gossmap_nth_node(gossmap, c, !dir); + /* Don't write if peer already wrote it! */ + /* FIXME: What about self-channels? */ + if (node_to_compr_idx[gossmap_node_idx(gossmap, peer)] < i) + continue; + + write_bigsize(outf, node_to_compr_idx[gossmap_node_idx(gossmap, n)]); + + assert(chanidx < channel_count); + dirs[chanidx] = dir; + chans[chanidx] = c; + chanidx++; } } + assert(chanidx == channel_count); + + /* Now write out the other ends of the channels */ + for (size_t i = 0; i < channel_count; i++) { + const struct gossmap_node *peer; + + peer = gossmap_nth_node(gossmap, chans[i], !dirs[i]); + write_bigsize(outf, node_to_compr_idx[gossmap_node_idx(gossmap, peer)]); + } /* := * {channel_count*2} */ /* := {chanidx}*2+{direction} */ From 01b65d1a15cc9d989dd0b1515b575b020f70418c Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 2 Oct 2024 16:25:40 +0930 Subject: [PATCH 16/51] gossmap: print out nodeids and aliases, so you can map them back after compression. Signed-off-by: Rusty Russell --- devtools/gossmap-compress.c | 38 +++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/devtools/gossmap-compress.c b/devtools/gossmap-compress.c index 9a1b2302df05..dc8cace625c4 100644 --- a/devtools/gossmap-compress.c +++ b/devtools/gossmap-compress.c @@ -496,10 +496,32 @@ static char *opt_node(const char *optarg, const struct pubkey ***node_ids) return NULL; } +static const char *get_alias(const tal_t *ctx, + const struct gossmap *gossmap, + const struct gossmap_node *n) +{ + const u8 *ann = gossmap_node_get_announce(tmpctx, gossmap, n); + secp256k1_ecdsa_signature signature; + u8 *features; + u32 timestamp; + struct node_id node_id; + u8 rgb_color[3]; + u8 alias[32]; + u8 *addresses; + struct tlv_node_ann_tlvs *tlvs; + + if (!fromwire_node_announcement(tmpctx, ann, &signature, &features, ×tamp, + &node_id, rgb_color, alias, &addresses, + &tlvs)) + return ""; + return tal_strndup(ctx, (const char *)alias, 32); +} + int main(int argc, char *argv[]) { int infd, outfd; const struct pubkey **node_ids; + bool print_nodes = false; common_setup(argv[0]); setup_locale(); @@ -508,7 +530,9 @@ int main(int argc, char *argv[]) opt_register_noarg("--verbose|-v", opt_add_one, &verbose, "Print details (each additional gives more!)."); opt_register_arg("--node-map=num=", opt_node, NULL, &node_ids, - "Map node num to "); + "Map node num to (decompress only)"); + opt_register_noarg("--output-node-map", opt_set_bool, &print_nodes, + "Output nodenumber:nodeid:alias for each node (compress only)"); opt_register_noarg("--help|-h", opt_usage_and_exit, "[decompress|compress] infile outfile\n" "Compress or decompress a gossmap file", @@ -554,8 +578,18 @@ int main(int argc, char *argv[]) /* Create map of gossmap index to compression index */ node_to_compr_idx = tal_arr(nodes, size_t, gossmap_max_node_idx(gossmap)); - for (size_t i = 0; i < tal_count(nodes); i++) + for (size_t i = 0; i < tal_count(nodes); i++) { node_to_compr_idx[gossmap_node_idx(gossmap, nodes[i])] = i; + if (print_nodes) { + struct node_id node_id; + gossmap_node_get_id(gossmap, nodes[i], &node_id); + + printf("%zu:%s:%s\n", + i, + fmt_node_id(tmpctx, &node_id), + get_alias(tmpctx, gossmap, nodes[i])); + } + } if (gzwrite(outf, GC_HEADER, GC_HEADERLEN) == 0) err(1, "Writing header"); From d1a6649c735182a8af0f5cbf3f76748952697152 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 2 Oct 2024 16:50:15 +0930 Subject: [PATCH 17/51] gossmap-compress: warn about updates which we don't include in map. There are some, they're unusable high-fee. Signed-off-by: Rusty Russell --- devtools/gossmap-compress.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/devtools/gossmap-compress.c b/devtools/gossmap-compress.c index dc8cace625c4..0aaf4046ed35 100644 --- a/devtools/gossmap-compress.c +++ b/devtools/gossmap-compress.c @@ -517,6 +517,18 @@ static const char *get_alias(const tal_t *ctx, return tal_strndup(ctx, (const char *)alias, 32); } +static void cupdate_bad(struct gossmap *map, + const struct short_channel_id_dir *scidd, + u16 cltv_expiry_delta, + u32 fee_base_msat, + u32 fee_proportional_millionths, + void *unused) +{ + warnx("Bad cupdate for %s, ignoring (delta=%u, fee=%u/%u)", + fmt_short_channel_id_dir(tmpctx, scidd), + cltv_expiry_delta, fee_base_msat, fee_proportional_millionths); +} + int main(int argc, char *argv[]) { int infd, outfd; @@ -559,7 +571,7 @@ int main(int argc, char *argv[]) bool *dirs; gzFile outf = gzdopen(outfd, "wb9"); - struct gossmap *gossmap = gossmap_load_fd(tmpctx, infd, NULL, NULL, NULL); + struct gossmap *gossmap = gossmap_load_fd(tmpctx, infd, cupdate_bad, NULL, NULL); if (!gossmap) opt_usage_and_exit("Cannot read gossmap"); From 79fa3d3d7a88cc49cb9541f82a4d5a939690c950 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 2 Oct 2024 16:50:24 +0930 Subject: [PATCH 18/51] tests/data: add compressd canned gossip from mainnet. We can run a lot of tests on this. Look at me, I'm number 3301! Signed-off-by: Rusty Russell --- tests/data/gossip-store-2024-09-22-node-map.xz | Bin 0 -> 767408 bytes tests/data/gossip-store-2024-09-22.compressed | Bin 0 -> 497620 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/data/gossip-store-2024-09-22-node-map.xz create mode 100644 tests/data/gossip-store-2024-09-22.compressed diff --git a/tests/data/gossip-store-2024-09-22-node-map.xz b/tests/data/gossip-store-2024-09-22-node-map.xz new file mode 100644 index 0000000000000000000000000000000000000000..a12cf619a92b0b139316b287d8689365c2c8ff62 GIT binary patch literal 767408 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 z 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 tL8r`0^#0{Hn#nupl@ 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

u1G3an9-z_9qCj1z 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

(GaePjnS8cbaGm_$oND9-EqwtoPe? zvkpaX4>-%OYW?r&bP+nwAW2I2j7%7%yuE!(>FXOPta!6)jq(Nl*zjW|SV46=5;+~a zlrrUjaj0U5t{)S5ts`bZ2N&5A+Ao&w(Omt>8}ko zD~51+j6+`CKg?L?m_i9w*A{Pn?>QB#nfWgllHMn;X^>3k1U4_Qdk$P41GtqWrBnUIQ6*XZ$XOQG6>*O~^vrwphQ5eXBkM?w6gRkSzOKXqw! z%z{67%eKbWgBfTSxquZMH0jF-jTxNZyc`0I-LdI6H~@w{w@*b@p5}@rrEig@x-!jj z_*GZZuYvF6+yBU^IcC(ab=5W=}REjy&ZFIT(r97@)M zlik5s8`SD{rQ9cy*S;K}VE{sd<6LQU+`QFvv*4KbLRoP4)2F}|=M>cRy=M}4jqaMr zUe|Ag@ZgpCQL$5(%e>ALfJy}k3uR?*-OILf*l4^xf4jNeyQ(X@lJ(j<%W0^OHxu5l&78&(Z&<9nyuUuRtHh%_4c+htH; zt8bZpI&~E#_awi`U|nF^60qGQB6bkI`sFxF#@KohsAUE*kwDV@V);d-{WI7scvfwr zwcJa5uH*d2II;(YDZN-48JM9?zfEysHhG_I%haqO35|O_*v~ha2fEWcM%z~&@#9B3 zDS?R0V|R0O27R+PwQbwMZ?@R?6#>7hyCKV@`X)!$5K9pxyQ@fba<1doqr~S8s+Tei z!wJNy$~Ag$JlXJ0i!MBO9G0&fctVE2?ya3evYDum%jby7MWsko3Ij!?OBXpn%Ni48 zYE#p_DQkmLX?`D%!&hf&eC!%eXP@_0FCJ)k|Jg^+q=J%_Wn+3qj2*Hsaz`AD(A~Y1 zg5~ERn6#)?M8D)(#1x*+6K94(D;~$^ll{Z-kjgv2dnBG@WmYT>7wM|)R-)B}`wv;< zX>a|Z_nabY=MYse1yw|#L&bwy+GF0RY$Dy_im@!StCtQ_k@8}qu+wmgfx&Z<+Ti-m2QYMry8@NhuA96Kk zGJT==DYgZ55DM(w3rVZ*&q zYPCwFbu97ZzKPsP{vS+;J~x3qY!E8|u(1lc1X5aTs#x&x$YCh?GHO1UJfu6qPC&)$t7aE3i;*UJOVgDZyWp{%j5bwKz#PCl9n}2Q&`ex$!UAkpxXcQCQA8Q@RgGvB00iCc`%%w8l|1Sw;bzr1~#H zqWPJA+uH1Xi~n8=(NU>{kOMQ8+PLp_?JF@2*kV}-$~i8-d&6Wu;7upB3n@G!=J2Cq4Fit2^(8s$nmuQHN@LtU;a01U&wjnG|g!rP)>7 zL%1ZX=BX*27&mE@lF7MHpm@p~Gq6JUo4P{czj=$F*C5mL)9mAkeq?(dyr5rzsvf!_ns^| zbstD`xqWXnft7t=BRhd(p?N)sGqbD5cQLr;6HFkxD5Pu;e;U@!MXz4U&X7DQSnh8r|1P9~G!`Ws;t_nbwR}p)^9M z^WR>G$>aXK zXHR6F^A9wQ#7Xq(IAU>x3%cpMDF+PbYoO98(ryM!{aSr-!LiV(sMU=(CUVZCG->hX z=-%OsbC(6R6!0$rfd`)wqz_?n>sZzCn&@kUF!lNI48Zz{FCok|p(BeuYeQLOcQ3vyu=b)AwzRo{S z40|0-?W42u5Pem!CPJnQby^2w- z6BEZ=vO41dP~dJzX4nhrHB2#N6{|wwT#w5DrQI`C|39~KhvmF$uVgd^xT2qgom@o; zTxl(UGdXVBNiKL1mls)apI5C?MB{6gZQKDiKm%wG2BZa=AGJ|miwWxt>5l4fgj9`p zKm5vcKu35V=OOockhgCkC8*@#iV-({o-$pK3P=+Z-3YajA|D--3hK4Co;+E#aKa2G z)Xh&MASINE_@41Ntzkbn%hi<}lJSOX%VN79n&5M5753)YG;6AqRPhLzsl01&^_Ebhw~a7LVy`-~C9z2n;wuP>b-ts%~EHSZgM3V6n%sQC$9Gg(N90e5KLX5ap z!dyij6{JLv5&>0fr#z^VPYuu0Qlc(w2_QzgA%|Uvt+;ju8}M1z6EXly6^L@z*vjjp z=li($p^a}cq3ZyiObHN4IYL*JHVG@BU6h2!REVvRBQA`udK>)#s!(>rXcs~n#SbXv zvya#yxb4^UI{w9EI>!=4VL<$-9V#r!-bT?&roFSG+8neyPi#B`{23XD=1NsQ1$Y)^4pFg-VpdEi1Slhmh8&& zDvEb6M+0c)LEbK-FMP5SFt^VDb11vY=re}0Eg2vwc(}Tu1Mw{W{kdXQuK(BqRG3Am z)P;gR+R90cvbG#)Rsw%h1g?`4x1$;S@vTYJjVnrpU$`71X3jjK>QUW#O!I)p5>*! zr=9G_n$Im&%2y((1g zE2@KyzZE?6{}0s7JRtBwN=uc*v4 zMUhA64ObUseKdf>tKTDIt%41D3Whd4<(S;d{$65W9WNn`8}?1JP_gM09#D3o{u5oE zE%npmfhvr9ENYJzPzBQ3R5YjR>^Ja5r!y&yU=LiyuW6;zylZ8F{a+}Y-#Q@Moz-5{ z5|6^pihVhiNI}vbQ8CG=*R?LDxl)Y&;;M`K zX~&D104B>e+l)ZsJ*aji5N1;G=ct+ZiA*c>2-(y(_0DR-HuZT>sqe3mQSGw{PlMG< z^ud!XtMR6v5B+u~bSG$k7F@BQN^j#UOztBXhc!Lz+Sb)BTpevWr&Xzd_|^%smoOB< zcDd_2un;g(1r-5^;_axW{lnTW?S9qN>%X$pb}khfP?6hl^IfMyn#Ib4@t5#fN>@>U zlr$m-V@QdIUWun3x<3qCm2F039r*#>H+907h%ZXPK&_F;bR&n{HL#%Q9ZqTyB7T~6 zo$ec@*|XL?VvA{(GXZM~*j0K6L9~Xtf-J)2JY0?X?wg!Ua>PycR{maMfLg-I<`) z30A{v1;0+mYBqoxe9g?8$D)--?b4B0TLPbkJtVLh)bdT1d(7aJIv6or=oJU{;MkM2 zX;L~TKH=bf23>`R?Kt3>EqB}OQdkIQsfQg_j<^Lz%$5)qO*9vv+bw~(D~#yd)BfY2 zoq1)qU>KX))^S@2L{aU?b&Im!hQ9uIkwh);`-&=u`n>L|RC$~=!4hQSl1GDityM%} zZ1Wd!qLd}0`V=DZb!TR23kfn`CdYwT%e5K}w|7TTX+eW!=JKzw3&5r;zA-G+BUGX| zZ&O6v7?8He!dmj@WoBa!EhD|Ygq87)f7SwI>eOgSxv(kVK(_?mYR=-9#UwhEP5@}!VflFWG+o+}||H7NKd zKL`m|LQx0q_f#GWJX`mfmvp&WBWBn7cfpI2T@>{LuBNDmp z(}!3Nv=h0+s^0}J0Zq0`#zgMVj6-Yaia%9V1Uok6or(AeXWWN{4l2(OQla3-K0>KnSVS~ z4(4~)MDEOs9J$fJYWjaW>i(qQ6@I|vi3jX$Qsa$eKWZ)`+6tuJ*hmlMnhr1-a(xY4D*t*W@4O1T=@J#g-mof+8*v}(ep$F+= z8cM=%DwsIJbfy-sw@yZwj^BsUi`PAms@At9WSaKTz48{aM@ zIa^>~AgWZlaq;)RRpt4ew7vj;LDYaC3xK&BbJx2_8 z8T{y*`LX18xCPeOCx8t;g>pbA^3A|NK6dPE4UY1bjpkGSm>W6W6Wk%`q&cq>W$(=3 zl|@0@^~!E|Ia4sy7}EuFS#1t{Lg@5rLZ%aK;@$H&cJiIr59l{DUdmk|wRp4;#tI^0 zSl<)+luCaOQ@qtXxQYz5!|_;0ON%G>ScFh;2%R4zs4cYwh~M%~6a*|HYPmN!lPTp) zVpL$D$R5?@WHtv&#EPQhwlA)@HJNTw5AM3P@3kUXf>@ADP}?nLP*x2;IaN-bi|%i| zJLc0fth!e_c7DG`3h^n+NGSv5M(3+1d**w-Z^oP~-Q{2HIMICA?o8)_FMqT943bzE9Z10kkxm?fxOx`u_z&eCxi*9{HdbmDJgFrHqc~xVM zRp@u^I0`;7Vv=2QFMmpBV(`@@dpy!!53u4yUiTT@0e@P*4G=rmz#^4;6`}t1F`JJX zVv~!whq2@YB{UgpOW@^DG({D-D{?f_@FD;uIbpzs`N{kgw}`ggjYA140e@gow=T*}`xLU99=OH3vZM z#WHX;VZQcv-nM5vCPNN~sVXI&Quz$B0i%(DI&U*0`;~zfIg)5rP_x% z6kvyyVLe^Fdh8IbA?*`0S#ux#K{&}GN%fN1^6^fx!k;^F)GUdbus8f`OLWP%u~>fz zCDI&!D=c6nIG3m_(65V9YlEtAl78Y;I9aTnbC?`F4p}qeVxy-LVb^*Fd74)sYZ}%o zF0<%g@0uTcjQ+3!2DTg7Fi$D$FAx0}by8of>^!4ijul*8FyDbm4>pDQEM#A9z5G+K zJJ9Lo^*42WEwSfk7gdOdCVwT~5LYQimA3-A*Uf`Lp+{Rl6&Bk)Js+T%1ir&RZeZWP z>I$AChan>MfiNf1hqz;<7~FXxKwR0iWx{b-RM1$vyP}m*+NcUND)Iz@GR@~a@qcv z!aCHGNzgo(CnJ$yPf93fm4cn;Dg7g?MsMZ?UCQh86PX%cb)NYH@;7cj(Oo%4QpLt3WQZb;#24`Vr^zmzic? z5<9r)B^pKxFsd>>3x^kI_)=NJwiQu`?TiJFY@|f52lvbD>UhS9w-gmmv^1&10_H<* zQ7S|95pz1IJs7NQjo@gE8s8_j@)lMVq_;pBZeSrM<-q6U@hSjtz;Bhwf`s*avEt4& zP78n>wE&lnd+SJm=2D!8m0QJ&I@_m6xy-*eW;yjEmX~Cq9&q@m?O%4hgNrrqrC?d3 zz^Jz?^hQEs0~3I`r)VYpq72l8o?Lu6y!|sK&-BcAR10Pr5zwR;(}wU&&#f*|7Z2!x z6RCH8;MN`M8+KGI)Ja6DID7v^dq00j9l*+ z47)epK73IdgV-*|h`}cwkQkc5)7aNbnkJ+~PaL>>?l6mmJxdQ5#V?M_|ioXL#9)nDXo{NUbl_%>%|ul--l0UQW;0Ek0nSff12Q z9+~Sv`B&YY%SUUdvf|PI#AQH_|LPIbV}MPVDP(oHEJ*s%H4YUMp_*lZp#lTpRErHX zEw8Lu`S)~3L4kViI%bIb@NgwuDZc(JhhKhY@t%@}dVu&x*-t0|T zMUD;phmC$XFlL(7ZO+S9v`vMLW?*kdgfJS)gxXZtP;`)F(&lB-?fOQHhGD4@>|hdF zph53+v*n_uM|LcNiSECj9XGE=BZ4)hqJJKzd`<+0N`hlr=Y>}N7kHSc@hvJV#V1Ax zo~}tF0R){np*zyCMuuPckg25fV}z#wT_jUMFWeN3hbM{B=_Bwy1A;Jjk+}R5UVc_8 z7k_0BXk!;OWR-X+z=Yt80G$=J5uw8VKHco%l%y(AKAVt<`NC##TJB!*i9S@1Y9hU^ zQ>Wey22Te*Dkq~|QzdXuwFEMWgh|Qp-F>y>{hR+21vDB*rCjYXCOxUuFIy0RwToyf z&-&56qW6-pE?WD&ILzi#p4gTS+h*GyG-F{jaiW>SCEHu}_p4T(49rwd8OG2MNCKx# zvT1WN-PAvVW6)Lz(&b{`t_iM(0N!HNgt7qT)lgYUow+&#^8T{zYz*1pC*H!MG?2?6 zMzNH@n+P02_u?i2Rk)Va#kv%HL;xtvnb9P=T9s2T<>>77(BpIj23M+Z-a$0gMSq)Q z@wMd$X(ZG3N$9d7#HoKcmySwP<8m z_}tny0fO@@>|x!l8>z6qKn}&BBJGz}ir3ulqm?1FBs!_LyO%-S0&>ep%o)rHvNZ z-7+(FOdL7d0I(-?EBxs@W`>(t`WEQ1WB<@`E&o-4#qh`gohX9>+ysjzSb~>#2HeR-zX`#fXCtC+ zu!c%WfJ4tqw-my5&n*F|dsDHJWW4i8ZnCMJ&%Nv!$JMIFupTP~hZ4iqym$bka2| z(0^~8cA_6|S8Z(>|3{@_V0T_Ikt-Z{rFtxBOux74*SO@B;?zfk{_Ig0X|uaAjwxqM zi1x}%0*bUG!fLjHqR}2B*54WA zOQKBWm8zRUI40RV&j`^b+W1<~Fs5F)g1Xge*$gh8PzYYsWoyy_KOXsnr0XM{`+D(= z4_bbMZR8Al-LkgtM`M&(!)eG7*q;pP%wh?05>lJw@}Zanv=-$bdhRllR18O1joec$ zuIGbM)f>fZv2+igfyb{wk33|6L#oapfnKXT7Ffn97^96v25#C)DDHHyWGj|7xCbe_ zbEG3pw79MmNk$$WOsfuwKngdfgEc!CHvlvnjM8yxXOyyj!g!t)^AIAJpe0DcxVIBv4) znxwJ(a;D!d+*fzRVHk?~x~pE7S>^nh%G^$TXhO`p!I0Jxwo*0uu~&?2xFLZ%Ugyq` z?9Ve8;4A+EGIuRQSEQO5-W1w3M&2r}SW}DQw$@;F!bet^ zL-Mb_)nY2t-cl3bB=oMyJ2}1gdvi4bSXZkD2)JuB?e}=RF6PWEAX5iQ(xv(W6B_1E zd=)lPI;IKhFpyP1#YKNJ4vxFtsg=pmwR0#GgVd#BT- z*tMwP(e8Wd8j8UUD3G%=%_du(7AH_2J%|Wi38R38pS@P6ZpNRT=g^8spk``L3CcWp zL4fI&wKR+8A7{2^z7c%%T48kppS)OUZq5p za4MccOlE;dU~Xp(Kp~|Nu`DLCNl;U0_&4)Z0PkAV)^ybc$tce{OgyNvUJJ|fpD0NJ z&A?JHru93j8U4e=3wL9D*aYV(Elj4jc@bT3KCQdRCt-+yV&F&aBMiH_M`GRdKG~l$ zBeOOvY%!g4?bZRDTRrmcjZ7uVqH!tB;aB@q5*F@=3sLD_{n*m{>cgOss5z+sBPXB= z(wx9ogPA8$DXV;KbpIu0G&>Kg>ENPpTkowWNx!o5wF}E)n-k20WW)9XypDGdA>sNK?!SmZLJt-+J@fX(L zIMeaTd-Me6O7;gx>9#4`5D)p+g#hvtDQ&a?7^sBHJ>W=G(jG^zikXi|UCcTl>_jD7 z%(#q`wv`bLQ0FyK)E&h1L;tinC1h(`vaip9O55j06A?3vpD9gjznITYK*0E)og4*9 z86km#B+!r*O`2KzU+?ygW5+=*AEXYRt0f$ogjl!vX{mm zxN+RwaT#E-g>P$?dOk?4yx!scH}4mjXWNZ_O-H&~3m^tLgy`IZl{BGWWapA3H{a0qTKzWl!ZBihD;%+ka2J$Ic3C;aUMQNsg9sJ1RxZ z#~vw40+czqv6Y&wiKbV8JA@5ZqCLeq)oF_;EQ}A^Q3h!MrSsHWcWc_3qhU6?OVxx! z;4s>iP`syO3Oleu#Y8`jsPsgxsxUQ%2(&j_R!FBlg%zQ~kOoRg_@Lw1MC0OZpk(B4M90|2Cuj>?>-CJzemtx!MFiv+ZrzXrPlvdJY z#0IF17D_Rxj-g;|Th(wRyvH4uz>l&RIhF*KOf~4L?)d82@uJ)al~jMDyD)^2ZE7tf zf-7RA!pzYvOx*os+TEUc_Uzeyh8Kn^9ydeuM`$nTnj$=U?9ZYu#p`x~d7_+HR~~{& z?zdW7deF45F)4qU_M>K#*fl#6cdhE6FKR~_9wGw^*W?LlC+dCUUI9zN;@4AX>0_6_ z0GHU_`g$ZD{^m&<(a!m#qPn=A71UVsKi}ugw9#Jy)+o zAdi?L&8Z+=znKyO(aT1NcWLHb#d7@gv>1f(rf_ACadVkgxo?wV+#nZ=+A3-XYa>8` z8Tm#=-IfT{7g`I5;)v>VvwpMIBfVB+3>D;1kjhGPrg;I;`7z3D) zl0zE}axdF#bp3A!x!G0VU1Hz*^*GApNRLJK6zI)exHnkw?dr%a3U75doQz(tsHN#`J}g(oC|a5ZW$2qMuh6^1+yf{XbK)kxk{o(TVK*%Y}4sVtO7 zl_8N>Vy+~dH+FdV6G71k8+g_$ZeWwEexz9-^&4!&Y70>742O+@9D)u{SiCl>T9nFp&SCGze)pXW2&PdR=R05b92mhHq8ml|85Y;-F!*ymeLSO`68RBnm+ zSfFHa_X1wxPq}~9luOgpUlq{YhTzrix4`R_gF>yj(WX$>Sr$Cs~ zH`G?47|1jvc(K_BdaUG)O1j@`WTwWKTF1S_f6Wtq#@yI z=7+VvWOo0{dRrSuJ*(nU7c8;oR5S+mhZgS(n#wIGW0E(&(QKsNsVocDhpSk%M{rA~ zA77PYTlF%ENI!RgX7I-gDQ+;qJl7Umc*FB=d-2G zfVZEaA*~5SpPBg809vbsD~9SFLzLmlWsSn#!}ZgJ=!A8161R8tY7!C_{>wv0rmybN z#mr#+Od(!5VE~p_laJ@utV=1F#6dm`MEGh?h}QGv?pFdxdWq>9;1keXRD)7IY#^yi zb;2a3Kj$0j5zA=o@;OTmog}RBhXSn0s*v3yQMVPJ#(X-ucZ6ZD{<(aQ{H4`$v~f)4 zcsbPN%~#!h7tCGaoBr^6ibg~1evS>n*cQYARX-O0?WMO38A*(uacrbnIh!sMM(EIn zTO5YFh~u5O&kk~f6}LVNoW$tmjEMc0pARum2hpi~#cfcLY-Crrl|T?3x|9i0IR+5f zNU&z{9>Llg{`Gr9ice%n_}nE|nqicV-Ket#fe{%+VxmY~O6ikg!GnCzkrhQ^o*iXJ zd$|=;cie&k`PKST+jy5w8uQ25dG9!LZ=x}TVdpLg&=Q{0rj0aF4yEz+H1_{kHXr<& zm-h%67i5;}ra}z*99!0&Epb_)B9L~chC-rJ*FIQ1C$?l8?OvnwanQkbTl~()wQ!!i z<9Exi-z#Gq_IMFTp+F8~dlLP@bLQ*I=qiewkIMM9#Xz#CG{zd!T@dVAjUOX@E%Rzk z6`J&4AZ}kRltF}Ia~*3Vdui-rF9J+BT=e3BOdgOrUfRfGKKdlQBF(k*QLabb-8R+=6aV zsf;e+n<5bdYFvNM_bz?bupx`vZ$YD+0>V;Cr?N0{V-xlZ(j8C%6_N?>)?%IARS-4T z)B?d8B%;q|D~d*5E$vvhwQj)}L*3zkO1S}5cNvD?pDI6d4#1zQAv@f90C+tyr(@7M z_DA`iG4fAr(W1(3CoTLf@N2;~j#E!_UyvOkr7X&H$>A}YE*ke-tu4Jw3u_I3)vw6G zJk{lS&{RKcAr58`%C5W|9p|W zAsWQH@WPQ+_Txb)hYyRlSfW%50WFZWl*gidb4UA0$+eMuJ66U}OL^KlO1dFc_bUJ=-fLJdWaWRH z-T1lJk?Dsw*9M#BLph9ScSg(_6{hBr_g#OV!0<_;d!T}2!T5=SEq~k!+w9N(EhM^F zX?;j-aGDGAgtWZ$HGiYL$c`SH!|?Aj{x4A_zhj^3IHD3x4cyOq2T!P0m;)IHWl!CW zqu^I3V@E!((44ETUGpr^`-PVPPN(@hjt}eKXoN`8*Dc}fG-5cnYnky}ZF#Ysc$?ka zIIav0>6e1R0hSxqMCtw9#kI*x{!DU^kr5AVES@2pbCF#I;Cd!mUjblm1%DmqZ1 z7_c(D$S2?wD4bx2OLsfmurh^X435b~JTeEVr>HcgZkq)3NnHz;F@gcg>M8c(vqSJGL1KFv7v$n!9PDf_r zU-_61g;+nwwJG9bK|I5-2WlZtLr9#x=MY*UFOiK2Qfi#kzGkR#kLcaV^}*iDVXBP)PZXiPM$+*K+;A}8H(sSE-F+$^+I50M_ITwtf! zU{5zmp*>#~ZagYX1} zx{%{!J%09>vQ@OEZFm=(bFl-srESMM>nGC$B8)rQ(CaMH&D2nCE*S~PXy*+Hx-xvt zH;Kbod}H(Sa+0X>D%MKhvfx{L6>vt1Xx3psrr4_#p^(*r{+zwA!B<7RY+z2F13@3A4i~cx1A-JKNA~2GcLTz|G{*DUp$Xo zQp&X|3CQ^2QVR%J=EVt)&KF`n9KAflLH?|J6juutEBVwQ#| z(&q#;v4F?uY@1lBoCM&1iy~CGPf&->yws>|@vPUvRVBV9W`GX<>yyjspr%geFkpj* zfvcNpN3RSc=DYK7o_CyS#fizF%3`~EB)2_+juv>3)aci7cdLn;k4!|y<*G6TYq_i> zHMAWzRCg`e9l!~Jwiw?$FoE%2FZ6&fNkYIbK{>7ozVt#m*UCh%KYvuMgb^3#sa=D6 zZWo@fXh-*nqr*9{nUvKVORL$2ALnggH!|anU=SrZ0cNFuc*N<|MvM^sdTtd5m^SDY z*@M9)dL^n&4$lzdXr_M4^+YzP6K7B<%&8uSp+~C6vG-wvC`%@28Utig3WSf6msGqk z2o5aaCT#L)zUILvSqa*Q^zJ-M)A16G{_9OX&jL`lUNpy1`O)^z{OmHJ|BR{{6GLKg zl}Y_SU-JK^VsIt^-ME9O=9V=l;fYJ#QF~Y5EPhPg5@1njIR76gjtMYwJVPUH;|bFb zUdq9<5LBoeWCVp&Z zteLP%XM}^JRlZ>0oCVr$BCDr9ub;ux%#IPW% zM&($WOAWS_(|Qm&b6iy~FN#8@LokJsJQ5)ZD`w%?bEd|(1#kO5oy8$UguTAUl(fNn zwP|MzrWo&e`C6<(qbn^Ur_mJQNiQoLr;-jXpaCf(H+EhgiqK$yF-)8yf^Z&u$OY_2 zebL))Vi=_-ds_Qt*$HZMea!FDk@Gtf^1-fmn7eqoW0y)O3WDftouc(tVO{V)Uk&F| zbmxNwBmOCWYF9!*9+j<{<#jU0k7@K!JHF$Bo((ri4U(4LR90dKAX7Zsdjdk(7SV-X z$aQ0;oK`{FV91Q@eCT#=MT8FOPrp!z0Qt%;Sb<{DPNr0LMOCR~zs+a3v7CHDP$Vc8 z^zJoD^IAGE=@@Ob82eosIczo_QMo?{+ax~%1~u|@a&_jCSfLx*oegayhCX|qy6-%% z8kUQ?zE5vR*$tjf+H$R~g(@pqO|#Nr z>sl3$j&k#N*uf152*7AJ3biTx5tF}mEQih)Y;2?WK%|CbBHnp;3w_8uVObZ00qznkQuYXfen{A1e*lZBOtNz;V~l*P`>$?S?@geZe)F^}0?jFH)fJp%nW1Iae8V;Q26QoAKXC@ zdxyyv0nA{j>t7^Fmx;N&v*BD7?s@V*O&|LlhyKIS^I20KZuJ3Jn$`CZ)pU z64jK0wJ_!$<-tp|<&X39nUQFC#8i+DV5Ch^zqIo%n~0IZ0%eGFsk6GLEt4#KE!wzv z+;6bJeuC6dqIB(_#Ff$Ks*v8u0DRtslf4{QrZ*x5aXP)+RCv2?khJ5kac1%7O-MS^ zGlMr?gP&%qLC>QfP+W0?YQ1(ap8Y8$*Ee!|*UYH-&IbT`hB|&c42YA+7qhZMI@;qe zteO;SAcaKI&W#$$v!|4`i)p`z86z;ZA+>#tZLRtv08K6a)3=pur7+L(G4xXv0ZxV& zKM1@3k`4p@N`g&`o*P||GK@gsz4I({RfS>=9CvIaq(^goY;?q^5s}l|$ysJmHP2o%`tky55>B<5e zi<%BFXB6W5Fc}pMn5Rsq+O@x`&PI0j`QA#Srv@3t2wjUnbt~|_6;PQnd8~W#S8riz z>JF;ckjIV9N0=6APtn|)ac>J=c?As2yPC8Ee0^>M=VKC!0T{t|1WIaR0q+64}hCSHC-h2l$D z*sFJT2q2vGh=NLdAyLc2v4jlKAS({r6TuQYJbB)GN9c1fF5W?Z{;a>sej%ECDmM6Z z%`G_)xff(l(KH{X&XlW>^*153o=tzq)Q344-<-jO5}KPC;)G>#5aoX6m3$?yJ7=?d zpZF!$PIt>+C&}46SM#bC>dIpK-96Bh4;k9n-8~GH7ng~$qn|~TMAowu zNhhZ>l~b|v#^JnZRLJbFZV2~S51QXGl4{3~1dHoLoEZ9IG<0nxGAH|2Uha=Jl8Iy; zH>m-p!>Bv_C*)l-GF*;)<6qQf(G^-yUA4F%*wQCBHkdh zIgH3vSAeanTWujJN2^eLKTOr$3TkjH;8$EC_#aapOlj6P1n!v~9l+x>65^D1$!m}> zq`ouibMVSAi1CMLiyYbdcm^#%GO}&l{8f~VupW|4o&&KyrvUWQbc={W8e#~~qi?ip zZpUr;`eb14!YV{WyDULsG32h1Hr2&2iM^Is1<54{kD{IsCTJLYX45@ce=!zV^0h$` zSLh^og2f`x&9GIgW;YyrXjFVjfyZrWl$8n#!cviEj}U5TM>7u--#&mu^uTkToP^BPE`~v>y>|p~A|~i=RS%8cx=~L62>;rw zyz2Ya`S>&|81F(*il{C1Q}vG@$XqZ&>GX{=~7t0NWuLgnQA=C2u|8HX`@=M~Axr~l$Xw3<`^^<2q3s(buA z?MAN8YJ%G%H3XEo4V`5x>oLqdf)PufqZ}|K^(ZG0FlrTco#WX)gWh9Nmo-R#r7A-B zX#Y2kfwn5Z8ePMFx`A4O+}y4!5)%gg_f>1ck5Fg}x@!UP*Q(-qlBTf>2Z97=J%6;- zT0Py}v+B(gIT%;OLPANSJbw`1kKgwa-r5&eD%3v7V2Rh!nts7QgEzn zF9;*<9I@1IS~`YYVEx8Xi1rJy%>VKtZu`c|9v?;cbF{}$1=6=hBEbZI(*fAWWzti0 zu#?A<`j5wJ26i*?Wi$T8=@A97YAfKfyVZWPRS7+K)TuWu*Yp56pIf@%mkF_Pj9QPw zss^lZj-nMpn7o$=i2=;&4z?sdCeE*gIcS_mGXT_T^Z(pORPk^}-}$CRNR!VF7vH?@ zB|kt5(RKkPJ1k1AI{ZOTo7zp~=rE)>{oaT(9LI zx?sos;s`;py6XAyx;Vm05!>KFo@7`-e^?`A$+sgXMdPxWJ-7-b^Gn{Z_ruIr4x426!DA>ZKE91s#%P6UMXdKZXpepaKa;3g6tJ3E9i+hrAkks0G_FD%09&%TPus9$)s7sriLK(sCFNu3&jzU(QXJD zCs^kN1#JC!CXle_`IM4-sLZ2jfN@$LGYP{*r5Jh zN6>EnO?)X*k@xC1tnsWU#411i2t}51Y^igrCy=7u)&4)OjXzfe@v?Jya)(-V(gZi1 z0w=k;pIHB=q-d57BdN`+fC?%pRr2-bL%l~XJb0HHX1Ap`J!(nmb3R)KLctg@&5~}} zWA=BYi2x|JGl-9YXtAS`gqIF+3fM&ruMilyr83YjiVn)z>bZMx;>fmV$&Thy_6P~) z!lpqk0w69eHMKUn<19;bzpPgMiDLNNHn*w2j%x8=nT_FAXq!>n3h>?#Xxcn%p^Px8 zWL4NuDwgzakrWGf>($6vV8w~=JS*DTFHFLqZ-1~s9zq{O^{=MwMPX8rC3$+a{e7A| z2k*XbB1a?H1thYTZG{5rbl<^&)u0+L4~WA(G2d) z>4kEY0;HtWm`lh-c}U)u)8DhPM<=Kbfz8Pdx^m1e=+;MHTC~3}+u(HXXP@+tL!hG4 z1I+uq;M`V!br8S2u;P2zYo=^nmOKK*X9Q&nJ$%v~hhK&3Fh@kQhHCza!|ow$G$zQw zSLfzYf;P}@rHGROqu-{2-s`e%-!e;7t*#Um$+LOi0o3Sg&wG0t{2l@Ijc7F2^v8d= z`duY@=J?V%>WJlBCMhgW{Oh~}L0i(0j|T{k9D#_m*Hx@Kg2&z0#U%5FhVNTJG5R(m zw;sKc^R`AGR0xYPKKs^W%>Ez?zJ>Y!aVlx3gun79VH?1>eCTBga{Nna5xW@j8BaYxNwtO@6x0g$FM;Hb;A}R(8^{M z8+X`pYX&0!2ua@iH11YHriC~;WU|cFygN~ z@p$0J2^fEb5b_p`@uj5YVqJjrE~8LY7~Ad0KxUjro3d@+_`R&E``U0sf2rR8H{`8 zxIXd(&8T6dYvz%@1Nd5P9Hohm5>UMBr)|L&+{kE>z+xAQk8DtrkMbhPf~My8IqP57 z8Fu#tg&R|%#mjU2=r4N}V-JW&8W`NLi(d%fbDvv^b~Tc;=@Tj zznt8NWce~@?tS>Aj|%WVFadX~&`C`vc=QiObm^3h)x6HH$PH z`My67I@M#6U{gU7i0F-~Y&_{)Hp$=)%ejDiI@U2;Q| z%(U5^dcpbfe_qbCxB$NRa_mNn8myE?V1VarelCb4dmo@I?l0rUi`oLI$in#0wW=uU zh;n2k^^HWzhmHF9x3sQBGp&sgtm3j9Z%18PnQkm%F|KgrAA?2o2zQtopP^}JRcJl+%@a47#KC#*Gg4#uPH$JN-XPrLG~F}VS71Uo6#_U+ zf+6Z*seF9`l_5T_E{O~ds7gn}{4ssa0?e@>oMW+U@>#Uhers6AZqVu;_6~H317+l@ zk`4hsbhRBK<;;kdIlD{m_qM2;t&9`=rRiqOGMb?2fCeD)N3GnDwu>n{eG9UI*%ScT zQZAM$tHq^OF0_Z%N3MA%-WooH@VJ&wvM-Zdm)0RMUBFm3#mq4bk0MzMJ``nB z`)@fMVM0CTZFoq@1og!fcTYcSX00Jbf z3IG40h`?3KN#mM=cdy^sJ~$I{>Nv5k@${M7r~q;DWB6ydU@dk4m&w@71;q?-9)rSm zcjcKe!Dbq#lc;#WKjjW-f2bTBmXQ21o)yFlMNqih9(J|kgj_Z1E}HwQ8%nf=za@rG zAg#F*f#*Tn!lz!5pr?mKc4X=UE(tm17fFY5x=4&_|B&5ioN{syOqOq}#3*Xb0s7?O z90$0Z76ee@)myMUgWfpaTp0f$vqmQSvGTjpl?F%xs;7x8Bg|(4(0`hE z6(lCDl3&FZWxVhk_i8O+=%}hKM6M20!0>qE-ob!XJY6uibY*#8)+Aht={OM%t z>|S9O0sBMKYta_z?}B}ghdlI^-&xAI?SAn`$ITBrtDni~KzM}StWT+_z!fF8&Z^9D zB>1RnTC@1P zv44ziPRunKag;V+hih0q&NDOE5L6O&J>Uba{ISP=Goh$Pa65~f+&nl-bW(TEYE*hrUlheCCBG7Y8IH?b}^O^0k;0Y$_1pv{=L|&RI)J@Kp zAX~Xi6p_b+&OWxZJ8$V9z>_E$7!8+&9X`^kd*6Tp7+=Pw1A%CljfVBTWr~=ROQ6@B zb09<{F$(Z;q4>J<0=s}tmLuqY@EU^n_aZsaR>hf%QcL&_IGl(|ic?j(l%wsX7kW=t zu;NlFPSj_!jf~>7%Njo&xJB%f3$5?dE781O#Ye<+Cx~Ap(Mj!il|GcZ&daS}kQqr$ zT5ok}_;4&*{Md8e3Ig(6q^v_9w`Au>H$uLQioTs?V|;g(m|BviZ8hHkO$vPhpBhmU z3OAwHRuj+b1tk4JKcN_y3ImyxC|@Iw5WOBs?Zt?{fI6=>C60))mLMzVUn(hKzxX50 z+W~v71}+c&g{0g0ja9YmOwsDD4|t*9{g%;b430!{3V7Lxq8d;1qtB_CA%N#I`#56_fQT0_`|^QY>O*w1(s{6vvTlpd;L1IHWHUdyK&3 z$%~pCx7$NEbyRAaEHd7-+c2S-5X;N)Jp&2L711~c{t3^wYazcEY?!Ghx*Jd`7J{tSb;PGzfzH6jb6xN@EP<8_blQE*-< z8!l#F$}=Zwaew27N;K=0k8C3>S_kll>Vx;^Yh+GTeoziJUB41#bxjA$Pl)H zLfao>;>diBvz{US!ZOgZ#^A~KNs(qZg-!|j|oXo%DTBc8GP$mv%h{1Z3G}O;k$ywjE0l)&zhSu zNI^-K1%_2qL9HZ)3mqkAZoorbUOI4{p)w^L0h1ey`YLrqwcbCn` z{_NOJw~2S#_Td!tD>WMf&&Nu7DbC%iDFiD(c*qQ6O44*8Lams65XMfAr{G;Q_}at2 zl*?tyyR)g?(0g&T%%=R;SS*E%w*>jZtjKjtNwj^7D_2moSiF8cBp@1e0m0Y-|V z^G{43nq)v&0*JET^f@U{P&B(6`p9bZ!2?vS$A_rn@L-tY#6z*b zwdUW#<7~ZR=<^X-xh8H&Ue0Ssm8ru{2hL7 z*Y>ehhFcF@8mmRwjFq-FSFYu(P8!ED(&|skLZ`vc>OHgkpO8~iYE{)GW5`omA<)g4 z{&JTBc-M|=6TX{=;Fa28B;>~39z-|ZpQgUtjwzvIQ1k@bB#HpIY*Ld08#Xac)@;Bm zH>_?5+a+780F*}->%kio*>9hO>TEKj4o!ezbl8g4uG(I>cVG%bs>qOwQt{H~HwHCp za5?nI7A6u8%_Fh?JaYsKF=OPUALoU9X(5rzC{^sgasTk*Zd|$79ty%vp zp&K}mtwJTSK1zQiWMo%n8q|%H=WLeJ*`@M_gq__JyM}lrRGY5iPCai{I50a>?A8?v z|CpA%e~CcvXs=RNA`&Ioj+kL9@Nzjej;`ZJ*KN0p10m;2ReUmi-}xRRgfpSkqfxX04c!{UTaaKz#d;ew%AT_JP#r%w z`s~GOfw#%4jnQ_q1%fyBl6pFXRO~2Z?ErV0)bFH(Yh=IRLb|UQNnRa7^nM=)X2rDx zryl68$e@uZPxs(VHSa0uixRi%?z;tI$6aqvrgdJ_h`=sm@&Xg7r@TFKG#ousB)&!Z z0YpBi#*jzo`oFUSPEXm%7pc%n)ZsJC~b_StcxRg zp&Z#rAFZ6Re1cR6Bfuwy@UU^d5Qe|Sa8vC-W?nS+b-{cRv*e9AcZBn?g)=NuEo!~G|MU9c&t3<*qXLojl@4o?Gvts3$JqeQlDhgDiJ zqQfMfzycy)d$EMj=Y7c(fYnEyZ>MttRRh<6(`*`1HhaFLm!`Kep>V>M54q=xjEgPN zq{t-er0CDDwCniZ2w6jv2KOwfYw^@<{0&$DFDVzMgt~p4 zL?%KNnGg1y!@#eag5onKC7N+j^KA|+-`+{&{Ts6N%Si<13C1K}P0n<~HW4<$=0BtW zk(h2ewrI7SwEo>;8REmOA$njs@AR@#|jf2!%qnktFB{=7npgj z5$psD`y>pLq+m7!(tN`xG4GNZus=vL)^l^}c;-GMleA?w#*A}BEi9In9?sFF~_@ac}{yxlv`;Ck}45%~5k zUhIwArWiyVV<5h0PHih91^{K6wG`3{Yl)#(1RxQEl+|79wfB1VFsGNLt^0o0OTj+1 zd@||4Z^l=(0>TtsN&k?MiEX;6*RE0%w!k4qXlU|rsmc5P4A9;q`ZyJxk&;xLpm^0A zC$nAiDcPa&BO?p|+L~t?Fz%v&!~yL8_Djt!RCoqFjg&{U+dlgTZxUd6P2p4B3Z<3m z$AqdTc@GqPVe0T}uvU+pKPMi+d*X8b58CX%fz!f-Q^zE{M?C9fqF{|D{8-7bau?Ha zg8q}^xx5;|K^bx0QHXFAvlh+p-DP6jARKSm>ITCNe|y7#Aa>eDa1mLX)QvJE8PO*8%&#Ymu8tsWa>-SILzZ5?g!!Y8D|Us%fW$-5~b zcDQtj_H*9FT}1bAmcOIwRw(wPaT_sx?{)@BzvQuh z@eSY>w5%=ad}>NrgFg#*WFL4nya83fo4!j*IUh0YXO0 z0ijZG%Yt>ktBPLBHKXA<09}9oaA>;eUG=88Ne}&pwTX0~BhCCT&739su?4ZS?%#$7 zkZe`u6pj>!C|TR7CisAhB>;lG(P%XBH417`g+ug+xg!}eAVG@9-L{Hxra0X05cp!9 zw@e$kAdFLcgBs`kQb$~M)T#n6%X|q+<`sDTtlBY z3Ed&jgNXRhaIFasfT};{Vs)5UF!RK2FI>~e-kd4H@tao>GmcJgP&L1%ws7?gDeKx_F#>fW1jGkXcYff z0R6^JZ1ksyXLo{qcMh#$6PCMaA4tFA5*8X5{5_CXjWu>?jE@u4@k+X}E(SNd&624{ zYS;+jOZ>3^SUMfNH{R*<_OQ0+WiS>C%Ox7rXX1$m1k>w%8FLhvFJ!Wdut0ITs`mKy z2b3C7wixbtG*Rn($6^l^%O+MDx3VLv8}h}tScj`cLGKCp`6 z1}#V9rK~BcLX`|%62&d#hjuvjR&vZEN`oBzYKb@iL@}(UmnZ+d$#cS?-2e;06M{&d-2}WF z{2VCR!^Ks#ruAS1w%#1;S%sE<@c99#Q|wGz`A@Y95Cr`G^O#at zE@gHV4E;mnADRv{e5RoR7(iQ%u&WC_8^;rGhE6O zIrj)}JdDf-ASEXr%%p||VRKiTbf`xc%uaxOve^$ex!ffH`_1ruY}^vS6CjZqF3DTT zI;ln0an);gIKnnK!zlnA!HIo93#~<-7j7;;+0vD>8X_qfeCt(5v25mg;({YIBDb?w zCU6)Ovo|MC@^;By*Tbg?LJlR$vP^{{orYL;A8R5x!RfvwfjCkF^9F1G61gC^Woy&KwfZfu@%@$sq-EGBv zHhlJINhyv_6wIGYr7DL{)*H>%5R`b#sdhKT#;mVQpi9$%@ju-jjMyiXO4Swk6V<~2 zF0VJy2%HAd*SHw_aNnb6F5tqp3gr-Dkyc%&n@Wb5){^%oJ0OyIdxgoTe=Nz6hBVj0 zuyX(PV)SV%zECKsDWOO6qB7EIq+NkLmFJ5;sgM*8-%2>h26LRuqN)`OWQxmBhU^HF z-V$ChLuXAVKo9H=`a8~j?O-;eIo6}2`Bb?Cy$X?!R$PS<&Iz8M7lHR*rRdQ2yc$Sw zWZ0G4h$!RLq?sCM4~Fi`h_KcWLca31Tv6zWHikHRdG?HTfWStA!y3D0f)sE&5H_KK z1%U;f3(b@9gPHYnw{`TgnIr@IB75iu&Rwj^)ib@fZ5Q)CSB#6?JYlLbIKP%aN?^V- z_3gEhccPfyJM(J99Aw2h%`GbwVI#+Zx4G_ad*i;vH9meU1r_2v!2ntV{87Gl(>qNF1CJ; zfh8ckqec=~r@~(<^C-43HpvcoARBlidKjm+wMTUFZg3&bu$Z;}%u{@Ys->AHE8S#X1k< zT{^^cqy!fzL%c+VvhVl)3ghmrPCrXp=Rz5M%o_Ze#=RCz&Bz>RYrl1|Qi@$Bh=6(W z3Q6CCSJL9bZEb63Ww~;}>96rA!I8Aa{u4|`{DMQ| zZ665-$0bN8>S}p)`xy5^FZa1k>N{Tw7YV=lfezjkWI^MJB0aDL&}L+guyEcEi!+zBT*=j$Ppn^Ww?y zBTd~Oi+^qH{}n%Bn3tV>gpcpt4=MjmKCZK~PPly+AHja+dvv;NZ4Rz_gQ+u}(7~ zD-~1>WTvn5<9>jVkS}lRPdBQMSCHi809@X?l}(Ep!#^w6f5@)FWN+wmud)4Sf*sJQ zREmYQsTx@(EwGDEpptE;t}ZhaR&jq}nbIR#Awmk@YznA@G}*22q8D?&SBcDV=zEws zn_%#vs(gTi#fXExfFUX`xvflty=(j+VbW=@N93XveT$F@&fst?)u1Uc1#rhB6Yl-> z9fMxK{KxKK>VYK4(9)$WI1MibA}_19YxZ?HTKoB^&E9^iuw7%n(RhqA)AfT@`hIKv z9;y$vkf-26(KcFrz46bL$Cl&QN=hCXzIHOmKW0yV=(v-+iT$6`j<#5jiF>|sfJwHk zCDZ_NyRkWoB$bb*(mpI3d^7?V=nrb9+s8Gn09KL#lRJaO_{f9L(PRT#nV`%*Yf430 zHN~tXv9djNhyh`1M!xvt2C3hxKvA0K9vZltA79O*{K>TOe5QUaE$Bs~cbJ5StNcF8 z=RCCR2B*C)Ya5j5zr{p|d58ox|27I^2L>#jCQ1s-o?0$M>^cwE;^Umk zLXE57giK>cvjL)Oq2v8QFw$VRvQZKOW{s$RhPN|T#dh93A`qcGSlGTKB-`torm0wr zK z7;mM_V(@xxD#hTA%JFpjd^m@A0?PH^#nC0EI)t2@-N2Rax&0`nAl`hO!qq75jMy8M^rIL^) zFTH>reFtZ~G;LFDL$J`x=-&voi@Qb}q)*0i497Et5HnajFHZ{AaNw{-Sk(;V5m7F- z&8A*bnie@cHr&$m-F^+MRuQrykWZV?~a{&L$nKO%MD zTFFh58Zj3DAa4e=l$E|!RO}-YWZD;bNQIY7hB+;G2@HmjvA!SP7f!6T#zf4aOs}1V zy*RS#8bk_<(*!@$owrDGR5g?@_}_3$mQA@lFvPusqyDrNA(gLzQCUR;*+FmB8X_S-*w8_6)vJ3t3J0vARm&4^yamZ3#my>h_z)}}rI+hk` zk+LyJJiLB12*vNXdSXLQ#8ycXk{i%$?@4lg8_++)AQP^~SJ1=GYA#yBIE1vZqwH@x zEQz?+AnQ=-4>Bq$4^0j%x5ZL(s;z}gn*Jv0i}u+<90aQN(ORk?%*bcyaWOnH-6 z0FBp=k%l-<#Dby{>Xj1c=R-MomNeLiW#&Jd3)*Ch{-ibuF?}s)RZnmi&K%c5zy46I zZDqtQ0|B%I>8G$(}W4&4o=xiWGJ1dxEzdX6^--^DxI2uP)e)xs&V>6`V9}BaUfC$QrGj% zieX&s&2|QaA?_j#kwz^ddJ~|{_{hsmb0(7Q#COt_O&y3Xb)OZNQ|7oAO`p)Tj(yvCbt+wRbpg|-n^MX*qCdcTX}V8pmb(0_-^k)I3T zO6S6GWF@<$>4*9Uz?8KKf!>X=Sg`Vng1eZYcLSX!JeaotFe*gXq+|fdqF}$49R)t- z{0=L>yy%b5*IW*oA{bS}96yNtrsfLn`CSZ&O(l-AwiTV3u1{EfBZE_B=RIh4_h|E= zGa(~2Yoe5|K${8)Kw z0b%5BafwRz6#rB>0+yf4GF)I{zj<0TDUP}+u=h7LSqdU)1w5|eg%VF@d=J72;jeoG z%_@?$WP<(zwr=-3G7O`qut1b|GBSE91G5vBs`Z)EUK2++n$COd`wp=JI3$f#5UP14 zVOk#%M(4lvI|&$*zZ7a}j&Et}?S7~KS~cY8<&b~LuIy3_qMw9oSFQy|L;tNfixlR% zxC)brC+(Ls&{^0&e4|3sNpp{|0|^u)9gU?lrc$abYAB@aWgC88mHXT1N%LQ@JeOoZ zmcTf`l2RinMxxj*MSq)9@}#ik?)(mKUY=IHQj}RY*B;-|icX1yjCbD$jV8>h%`eE6Shc6>8gVJ&-Nj;2o7Y;tiZIV#@5xBd4eZH`FuzYsTG6QL(Qp&A zxWv98*Nctuf4^%^tkuVnp&I-7JU9Str3iy*;*BO6gbce}?nODHJm{(bYdXX-#_woA z#t^{Y1d-l23_Oug*D!m@$wqqJ^-W>hCFXrvrX0*mPc#I--#AnRNts;#;|O5>)Fw2q zR%m5zY=w z!4yPGwEkR8UUYBJCMiN$nL!;O=((Uhf|tQ~K@#Q?Slg9+U%ITr5d1fwNk*Q^-K)IK ztN&KA#D zoJBI)P5ZEe($^M^3ndZieTA0Ll? zl*&UCWJ>P<;>ljM9Vrn+4Jzx9mtU-SUd%9l-eIw?iZ-OU2b{P--a1P4a`**Wxx!jE zN_?JK(cC1a{y}AqI$8(rV5;<3xJ6Rdr}d=W_Ubog+tyN0AfWralGyB8o2<5&R9tKz zA;i|3sAi^Hvl;dKmn`w%BuK46!g6Hb&54)4X&8d40#7k(aa)aRZAKL-wLdSKf#(d` z-}Nv8Hl6N+5kTxVK0(ainZtg^i^BF{fo7@5wqCtQD)NIC0k_FBiwy`$7v*BZQX#KG zL1@tju(~S5h6zco8$(8lb00S5O8?QXjju;#3k$=!4Ibx%x4HMJO=)x2#nPaKBL1t4 z`?f52LVGUY?OJl-NhA|Vq4Z-2*bqkdf$i=JA;R{?>`0%N2lpP$rv$(@(RMV1Cul`( zX@@CiFY!Xo^prp4#daw>s;18ttAm(iqeiT(Qe>ED~AI(Fs>IL?3@0SWW1RP3Op0! z;MbFb*gI1^TsmDLx72peF0qALd43H-wc9ROfHs+BRGpYi`L`>D?@z%5mG|8rx~>KN z;k1FWaM31<;we-v2_8Z7zx(TcKwg4RGlVD}%Am4wGcgTIpf~r!&3lQosakc7n)Bdm zFt&DhoN`f@I5J;ZVr1R#w*f~&iO(Fkv7&yV!%J?e-`W$TxfXr3vk$#HYM(AqrPW@8 zeRc>^oJ3tRk`;8sXe@~x8u`)ryH0xah3=Z5W7NXR22T1=&B0K(e944l(`$See;@3d zLx)w$TgVRWlSbCu{oe=vD1bJ+ABN_{h|KP<6vp-+?>jOaD$n6J_5#y?7rxe%tr%Cb z;$k*}W=rTB`xHau;kaY8G9QNM7MQ1B9%6ya{p}c*- zI6aFXp-?tjfV5bo{=l*{QR(NrwW<~BhNQ45C9ZTHe_!sm+j-~Cw#?lrMPsujMgQZ| znH%=TOk#BT4FQo66cv5fvh_Wqq(ja+z@WEL#3hGdY$%nx`-VnL=Hm!#&`fC?Kz;ex z#MrOF=I377NUO5uB5V~n41sw&QQe3`340NWjet0m!9R607^P0*3PH3$YS$xL#PD@T zNfJf#yH$1MS9;5UrOD}?3*OXr057?ok=>s#@C`y`_j^eGKA9?QvY?hdp8?5DgpvGN=FQ=I(TX)m3pH!C>p5J!ft5}Yue!sgogsC}kY!Jmmt`A4C5La<=8 z@g}nZ-aJzFP4gotgE?u#-4one2!NcWHl=)ZHW%6aI1;k&WlnlSsNys}Vvr2jAf?Vu z%1IoQ0AIP=Jsw^_TZuttlHpEs`81`dqbPm{#p0BjZ=6Zlm(vQZ%)KXfSJD>a>H44$ zQTMH81kr`&E}ie4reA?zJiKYSiN{#EKc!0>Fy4M};9VC12{0R&<;L!3Fo zMY4Ay&mYk;XIg2 z|H;ZwNY9?h@QWd7Yhh4rmDUg>DQ)IB{Hoks6H-tjiklMQMfj)NM?82rWbO#>dUT+I zCAW*bRHr89Hk70Va~AtEHXkX75{3EFf6dIy6=vX+mwJ8a4Vnl#{`-EA`vIkZC5$C5 zVCUzU&|q_`SEC*vq%BDEl9$db2NZd087m>LR!TgsvVa<{yF4*)21ABTFPnQ6Wa$}{J-dAJv0%krXkmFLrOn~@JLQ4&6%?#ElsTE-G z-T>poNV-xC)^~oaTTe6xYK7Z8gbn^0I5u=pN$|x1v-!`!r;n86Y*o$I4BOv~&`+f* zIdOSX)LYoRC;>@iWz2xfS4;1BTup7KxSp(06r{w(}Z}6~Ys2VeNR^f7QAu=Cqwx@X2&cj?Wpw*`Qt;hZl8;Wl-bGm(FTWkVIk;Z3 z-?F>bw04>vlQGGW$(s!8>qvS2U-(Li#(f~ImnD%>Y>GokyDxPq9eVhxAyw%ofioiL zA8`+o$dySzm@zt?1)+8B2P+I@%lLW|%6I%6RbEDDsnK<(q1qMZfbr`q$4+m^h9i=^ zJb>)mSfIJoZ6{V7hc$LV1H=)j6ooFes0W@BW011MeT4-?1?wv!R~pUk?%j%1fTPmJgSB6T8(K zs^Nbg^8niIv*Q-R0opNI=^f&5@7M`^rBy>HpUSx-lxRA^z0^+J8(#oT;%g`vcJksN7_)OoM; ziaP^{YWNO-6b?W-mo%t<4zt^aB8bags~=J-WK0eAnQvms{knincmv4firsP>Rm<}6 zIo7El`LK3kZXNh<|4{?s3vyq3nyx>3Wn=$T9`_r^JdBT=-J+y(o7nnC!Y_-=m=%Zk zezNstOeUuI33jZ;MAk2<$XUGFq+;%-{Pp%$2q1RKC={6#{zY(?HopRkD(@ghY0H61 zVowf3U01+nejo>vil52#(cvD)G==$=KE;nmF0Q;--7%Yi8S>GQVU3xHZq3sF0mv$u z)u+XL%O$a;1*HeeWBOYZ0eoIpbsKa**uG0kX*j8%)d`336E7YK#G3XdY?i80^-19& zCsc{h_BC}TUaNP`z0QZwiQEg#i8n7=w(}juG=g6r>a)#7(gqhr7GWG|;{A!_^%lQa z9wjJj8R=9&OW|^_gZvr-4X#?bELTa*=Uj#}{AoK z32kPI6)=646ZbE3xSpT)zXU)o{e$*sqUIATN-c^YF;PQ>-`iTx}pV+dyYxI#zT z^%O6TB7^F6r-+#6{YGW^G6tY(Z$^Hh_OMreTFl4ZG;Os#>0>lBe#XNt6Hwd&8dXBH zT&2Go4Q&Px9Y7%>Hk>1>5(@=T{<|j+x^%Bo93Rw8R*zO)w1tUI{ilUIJ)uH96zeA# z)K!(2R)!d!-i#PBl=y=_xpag-2&JG$MjMDm*q}*3co;6XbHb$G^@ltXp&9h2)pVJ< z>3%OIP_1Yb3Lomvwd0MpF`q)LOv$tA`8X_WsDRJGj=>SP zHU}fw#n2dXhRR*6KV$oZ`gC6N6S}3R0AhGRRwa3YCs}wzeo^ywTNEgcB0s-6@zhe^ zywbUxV5W)^AP?IOT ztYL55&F8;bn#sq6k9aZDMd!z-7u>U7!Yy?vF#(Xx(zEocxt)~6$ekxk-+7bd;Y!mi zPlC)Qm_b}D>Yb-F+zY?p%IW|5uq6)f%5D%QyDIgG5ls9^@eTc$tJ{5@-v@PW5ACDZ zNe)01K=8ct@l!mN)S}+J0-He0l(_8%_N#rQ1MP4qhJFkQ80kI{Nd?hFzw%et-dj(Y zY|k2>kJ?q{kVe0-3ES(3xIsdM88|2|OecCWM4oyop}Qjt6|6R)vq6ZD5Ke-ueq_3a zZUb3gOwk%^rDm+rc$rDNzq`O^UYryVKVz9Qj{;;HAlC{8+bXg<3a@9*M#rAEL#r<+ zLv)>#``z*@(J@@5e=-b=X(Gf#V0U1{Yo{yBQD8 z$sjY@9&&=|MqUI0+;`5tla#aIv`f(lB_!hcs6MVU-3+tB(nuEuuBX>>8cdqg_u$i-bG4{UxHa8;#{7fTjjDBiiYW>7n zKyO7ZKS*<>_mTuL>s*Iis?R2g0_{MXi=z0w8Ociu`=tC3Br+4B?ArQ-V}X{Ky5fTM zxts;AV6!3xIzV=2;{Dc;cB00*1C;YWT?{>V?Nt3rVOR$ahuz5#MmantuduTkds5@y zI$Yf+3bp_pz)sc}MgkY!Wv2~rwy_P-)m^M(aYhsZ2PB*c_~^;*lP4)0Vb9TYa&N^H z&0u?c6B`*>cecF5?l@f(ODA}I20$p~md5}nRS~g}BHxO0I<}YAqn|yTup6+XzLOirQWEMchxdJUUmo%iTb^k7X zpo=LNdKHHe+$$(72IfLTpyCNa6F%Gb4X=)FT5x!m5;Cv5zFMu-6PWGM)&Th66b%}!=9JNRF z%}=L%Ks^nf_y54+x-p)IOWj**0=j=1Q^)HcNnw-k!6xTF&$^#@54uxC$qbcjZzq{8 zq|KS`nQNSAO$OGeZ~T2G08PBa;I_n^CCRy!ofgq)rTXMcEBq3pM{VDmW|BC7?^D+!xKiqlArp#o+ICJaTZ&V*= zp+(wvFOY7b%hCXf-IHIV%qRw%e#On?KO-WGo4{#XrF9=w&QnR*V+ZHi*T@Jv@F2P2>&8@85l@LX~VY&`G_C@U|IoarS~ z(m1;1`sd3Tz-wlhl=vt2rA0SQ!=>j+dqivXr-0mde)xP^y4eEAdR->g>5h^&0byC~ z_Zde#-7ln2jDF|~Piw?SU1bMxq~S(yRs-0t?1b0N-9WzE!$VUXpd^6&^#qM@4}2%a z_o%6s*|6pnHvPt&8qa{_y(w>f)x%#O_5idWS>VHycEeUc4g6(Bii#2As^GII`^BDh zR^8kYc~UzqUcnh06sGDS;4MRGO#=75CTs`rfS0KDax`SMF)I>%d{+*uc~2KDx`{$n z&6ZXT+U;1X1C=#G8yVEZ#x-$0`ICfZK6GVFxx2G6KE0P#a9c4xq}Y&yrP-|#f68bO z5Q7Cvb*F`ajZ@n4+wBJ7@F>ztw02&K@fhf4q(ph~_sy`^TZ3%e(-av)=GRU6_B6<6 zlQmezWgsRf)FL*?0BQ3g3p8;F5h1MdEdrOf?)KY~gm-mPGLOBml zeO>RST2=i*a?cu5=w*Jt@=EAI;v6BGFP+Y0rqw%8c~q{m>va6*)zdl$*~?YnZSQf{ zYH&G1n82u^OK1qse7k~SIjW=&J<@o8jC2v4RxJL$IF?Uej^EMvWeHw>4V0j8_uVAH z>sK2ZfRKcW*+?IEhToDJ5To))_hl_GOIod`sQWf3`{Car3v3PC#hZ zl+U`v+%w@zRPfl8AZB8%JK`gOs0!Dl3u^|VZbXoV#l;*pG%Z|Q{-sY$AwuCs$v}I_ zLxYUaTv{FULMw2_mfwsfE;Sq>DXI%$;o_LtuF4PD@hc@ON0^*1HHtLeS&7k zLQu2j6)x72=sk)#N8PwCPirq=RS<1+H|fwf0#UUozsRB#>u|iw2~Bq`cnjVyJPs>Ev+zsp@XP zP%cM|OP^gLcuH6cs3{+5HR%tbH82(yxgk0;nDLQim=BT+x-Lx}D5iMNk!2>d9tq)Y z^1||X_Cz{PB;NCbXkJ2CS*NTd{BElAho25Jtn?(^QUtb; z#5V4_|L3|ETLq7G{A2z!3_mcw2q?JHL8BIIjUsOJ9Z|lx8+HQ+$p2$AJ1BU;iq8@H zEts6vjGc68D)eCQq(5`6o+({BDzJI%sB|<~>v|#)z%!(>GEaLApu5P5)|tm2_U$Cr z57TAF=}ZgejVkvlZ9)#&`8&N8A_OPK4|A7bw2RZEsdL>ljCd@$tP8i7OFo+2p1Qk$ zpvKbO$!GJ?!hhIKFB$lLK@{n%m~Za;USYayRBH$J*$gc0c=zIs668+Oi2!i11()DD zfVZAw8q$`7_BnAsjDS=6l>INJ8f?56NR>jES+8&=KOK*IWodYXbZA^QimngT%cZ(~ zh&Eot9^(?$g}EXhG~62tro;#iGgX-;Ag^_=%;pfjkpfhDmBF_sk0|{koz>R1AM{ih zmHk(c8e9oeooM7~OVO9|+Ng7ME;R-es<}@L`BSfT+mE<97EXu_Q||><}8EM}l=8W)CqmEF+cYavH#0v*90w>Fj1Rl=S9{bg@b) zW_Q}(&WSV+F}}5{4BsGm|AJ5(~tx9^$Gw6VEJ-+$1@?D+)Ntr@4Y95^U%_ zR(=9%4xkRzu(K26kIm1O=}93GjO!oE>Kp0;%jjz!Z1^{(eiEWSFco|Vc%JCmdfnGr z&?P1}=IBD-i}xg#QvXstCFM7oywh}0`wgsY+4E{p#GV4^RLJ}880w+L0hgMd9WiuW!uymW(*$jp0AJ3s$;tTL$%$w))Zblk z=rb`ZWy}dHzO-3*`St-7S=!;%7C(MgeE%K>y46CB+G43H61V52q6o8N`IS?6zM>M9 z*wJ9_NpF-sPx00D;!mW|@7|;=OnkI~2`ZqX*R=pr7(^^hzA9>H`B#!olBxb!+=J=b zF#>zd%DG)5Ow3SCvpDR$1{bO*6-i9uDE%Qeb#&Jf(>pr%UNb<(@0&OoDS22Iv;gq} zJ3r?Q3H&9@P`RiW$Mm{@G6F!Ebi~~gn(oRcPc!cmewqa7aGHt#gjkMpH+hA0%>1FQ zWBWwDS)8P-wB|(86mp(>c_uQ@)!qYpyl6ILi;H&cAC>jxC)PBdQ0 ztKqYB1TP%nyRC>ajw9)dk26CTD(7=pbW!42cPp+_v>B0_GmUtyH_uYdUf)p7+K_wHw3$U+ZYzrQK(>7TuI!LH32@%9dDX?^YoJ1p9%KY^U^G zfG7?|t+E0TR^I=?^PB|!&%JZqI$xOxf~w^e?04zpKAiafytWJfKXkf`mkaUe)ZB(rAaBaeofWP^NulIB=NhcYLAc2z5)&3{SQ<|Zd*TIoM(G~G(-xbYW z)A7w((jF_XqR}?Aga&}tT@+q85`j=+GMW(yVI)_Gpn*@G^ixBYuJo`aIc*}X%g@2v z8b>tmR7E$yoec9a0@^5VIm(jJZcq@BYHxONV4Zd6Oi##&K`7alj{@V~C}~uTr8k({*rzpQ^Qsc>Hcpn|BLCm;YQQ z_8VDQ{dnu?WHT5nwVtq!&QbTmuSjCaU{JK(6l7WXON?e}b;RQEu?}|Z!1zuXO!JDZ_sFng1MGI_~&uIjK2h~lN>@LiF(MJ!!NX-Q!HU*Xxcn$ zpGL#i4m2^Up_!tWY6wb+lXuWAI5cHFtJ(bt2ASLczuD;%J!j#)JNCm&tA%vhYz;qU z&TLCx=|S_#|sFk|WJ!Z9;R}xdd~@2cT;b862~9jal3b9MvC7 zJC63MfQQaijeS+De2Dyrap(QDF&^tVDT4%G$8ra8Ns0TB#uEhq5hIdqT7OCjgEk}A zgm3_}wPWcy8r(Df9*E~@LcqNFxsbbaF&B&CrhakqiG7@+6PNw{c=Zdg8}f9RJ#1wh zk*C(3_Aq?Oz2UbocT$D?qOuUy&Je%oK`Op6yljKEi-*VOwZOHLC@;orD3j%-ixac~ zu>x%(fd=&Nddp0q3fUJZ|7gDxii|LpLKNJl#4&fx>;byyW?uJ|O4i3re>ykbV7!z? z<|1o3)~6gmRn{I?S#g|$(NMZ5$SiGFDRJf`_@9EjtESF#IUXWs$}BNnTlc-G;j?oy z0z)m{Q-O}QuWm`-(>u=CZsJqpL&B;Jnyo&7eyOuH%U*Ea$QDmpNzUJUz42f4upS zC?F9LDfEzW`FPvN4;8qd83M# z@bibq%;fJ866}uHwV?5&TEKb&N(FKF?3X0d2zAZ7VCxv9WDv^!!cV@16CJxC!kvMg zE~sBt1#)6+`tr&4ej9|q^LFCylDgq>it=1#PpT~hNsw>X`_m%2b~A4TiRvxfKRjug zXmbLEhu^X1wa!{HL+6`hHPwF*4W;jk1SSG3f-SnLdYwrx>m{H0^yr2$R8z=)+IMG8QPICtqF*`u#MS$e z#xPv`=B;6CeS&n>^FUF%2yo4s^50BUdp(AihV8)@u8!Q#NDLZEg`qDHHWiQ*toOPx zX^s?i6fVNNNgx-)+eo+ZIBA9$W;(_(@$*X))?@SD&4S3AbUxR}o#X2m)?3U<@uw;b zg?4ykRfjY_CnJ%8AH>^arEwD`(%TvvB2=amepH6-nPEeWh{Kz77O(G!aG8HDA^gkL2DgP zt9GE)XG2vDf7ymD-82xv{&4W-?G}>ST)$krDAN*GGo86GxH`nilQgX=j%JDys{vSb z{Ok(%UaB7ia5flxq!6U4da5IF;_6 z>DB)xd^Y|E-_u9}NRnV*=j4R_XfE()ocL-b1!oufeOE3{S{md$)O`L4An+ntNrHOC zwZ3&_Ow%&uWlvh$4!*VB8t-WVwO!k4zkSkH@TGRi|w>(63d6La&F*rXEx{ifx8B(6A1tuvn?S%=!aS z+G#?9;gi6jAqJU|qu^0dh>#G9;-Dnyw?(#qDzazGrkeDwLNc~}imsy!dx#Q^)+*WTXFbJd* zDcs7~JIM<@HFsN0f_Eef&gmBTkEYtre$67WSr){d#npdinW85BmeZg79=V`?|mICG-p{^rNE0xEpj)G{Z$VP8UG6G%rb+q1$rTf(^=(|zB8HeSZpHd z=L}#VK-`Hbn_*n>f#>rhE{qTZcIR2;Uvs~RD1^h>vdv{%cTIi?SbTY%xx^liRuNv% z)eKwC%X7m6t*E3F*e}ra3VnxSns>PfshX=Fm@=J8Sabt;mej1m-PA!ms_*~{81*We zAe&^D%!Em!Zq76$xfscsMa1Fbt<`qOA#3Jrn#BBvfP{Cq22Y(Ky;t~s)$2nQMy2%} zgS}aXO|KCI+dMmN_C84_nte8V4K~TdS~>E+rppF}YOoIBq#pu`I&vEbjN>|X=36e# z;1xxm=89_HwHy{Uiagp zp_w34#^FM%SU3vQ%po~3oa@)g$9(Sj-6MUQ$kWIjjP1&xjLE2i3s&f8E8_U9+gWVHDLwV?yY^zzUFJZ4$z# z-c8Zkq{g&RaZW_Xx40xbU z&u{HIKn8*=kx<3LG?XXh14 zN{P-@hk}$?06)#ENZ=}|k*v8udaa#PGG~xzpT!x^rtYcNTP(oPn)BV_z5}lUPDcvk zor-`2|5dV)`Skmr0$JwxexSQtAhy2ga`$}<~F%22OCUegnHpa6^?crK_<_%-5_%^Wgj^}@F3$E8RK zFbb?6EUGz7&9GF)4f)#0Lk5SSFY!^E7yZW71W9^MH)W=@8`d6M9AgB`>XOAW@olc7 zsYdknqQMrHP4G(Jt?zY+UZS7~2hi$CL;y$JT-(pbbZHM~UWxUf^~mf9LE{^cM~85c-cP zq`jt@&n)8z2>g=`P*^UsRx!UTrv^y$6f?sqQ;2(#Z2EY0Ka%YeKkl=tltp1_j*MFW z=y~H*vY}j?$ouDY|H>jEG?uW>f{1%d-LJ{0TU;^CwEv|=@8dS;+sD|OML3rA%Y8cC zu;~cCtO0G}73BvBM zQf;=muXHd2aB$(wCP5kqA?%pD40}RRxjfwr%aFbkh7=e4ra!(I`8N9(fhf$BC|CzA93M{1|9K18mWHaxzfwDh>_f$)N|*dwJ>j@VcBtEP z5uhrkRbJ9-&X7bYJ?SwWcSF$L#d46!5^NTYz9;w*Uv2=Vfk z>a1fo^VfHn218{CU;Me{X^ooWS44@j)95Opl9dL>_W4YI=4> zCbG}}yU;HD_1u$^kV87Y+cfP(5U_)HdXywp z*1y$-B`97j#4zGbuB#sZ-6nr$hR6i5B Kb=mw*R|}&3cJ(!&5bnaMk`;_UjAwHB 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 literal 0 HcmV?d00001 diff --git a/tests/data/gossip-store-2024-09-22.compressed b/tests/data/gossip-store-2024-09-22.compressed new file mode 100644 index 0000000000000000000000000000000000000000..3f955dd09edbd8d9234974b9013e3f25a69f0324 GIT binary patch literal 497620 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 z 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 ~6K3{jrj?maX67?< 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

kr}2XheT;;$HJgznLRNW46Aqke!qxB(z(A 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℘hTRdTE}K#W^2 ziiMlZrL>!B^18EQgEv+7;XFyEs3u&DINDY<({*1wdDd7GV`64IiuXmn?!;RZD5w>RCN@LA)Vv8wTs!yg8|)@>C525UmgE z*Og4rxso$ibXb0oOnj2_i$rJ&TD$R`{?51)Y$D^N_Rs{NavoB&4%DwC$G255Dlbwx zM}kD$iTR+rdXKnt&zATJVzZ&8uQRD+p{Kzg1`TVVc?jJsf57=?+$yjN8hSVm6{AD) z_&1*o=|xPdS1Q@)7beiYWBF6dxqDJ;)Nzy!24LP${Bs@-2 zHLe`rqu>GoCFwpjuV^R8r1G}t?UxB8?~>54)s)(GP|s=A)hhag>1cI6KTi$|S}D-! zb?z7S-lzt=(1z}G&DdxcCOz|c7StS&mm8PTe~)xI0%QOJRci{B_ENuuBx@#F(Wr_& zPJ#Rko()L5$U!myMV}X`q8#)s^LQiKP_h9g%Q|HW_A-N~+C#%Kmjh09>~${XpR5I> zIsA>!;Xm(kCrRv&$Urponm6jV0cI*eaY{j z)$d4A(;q*iRA)^pd5U@krS03Mr9hHY&@L3il?xV|R9Bn>f-<6zLSk)U&uZR*N$u(> z8<*v13#*{$JE*;$v(KNZ@UI`>kZ7$8aioaOBX`nAIadj3M0=|`+{KX=hbH9AS*A(kd7JfC>seS;j&iYiY3Mm!Dk94I$Vp(Q`qQk@~M}cG`3d znkH{Mr1n*7f`<2%J{3I5&IM6LdvzlSd^G!5fmTj#aUq>n@gt<~;|9~TiMAocXmSVX z@5tNosvl1F7}62imbrVy}wSHYA1Js0##W)Y`|TarD%WSpHvoS!384BgqgTtadPY6{3dFlZY&>25 zQ(bZ$CdJ8WSdF&g!Y+eZn?+?B=p>(9QmgSU8ckx8T8KsAcC43?MX4uYg);`VU42U3j*F$(k7W^BiO4Ub* zQc1&E@*c0>7wX}j>XY?+0QownP#GMeP%ZtPd`~h;N$`v%3I)l@gRP2W^u!;}l!IKd z8uW!CLcFqAw}d~uUDyGNe_^mA_UUl)iagOnjl@rcU@Ch*8Ssex;8{3@m!Rl(D4YzT z=V;!+HXd$!!K-9rJAURl(aCR- zH$;gAP}Gsf9~undCpdkG7f<6rROX zrd%G9Iy_aS5!(JAy_5+wc%fR!TaFx%`vC&Uz9M`OKZQui&q=gO4^yHf4xPgdodmJB zG;y)y|Cii>I9N#t6wBE#k3FwnG$0|e5sGI*DJNzLZt#+Ytn(z!0y_I1e_X*$GM>{T zYmx&wol^A!Jx0_<`MXeZFa~Q>^btvMYE}u|e#L-Bek{{ERa-@%Lw=I)G1Ly@92NUsrJ@EP!rMHV?4YIcLkLI^7~P;wiS!7@Y|jwbX=7J|1!;iJfq{ULPD62{^kkT{VC z`Zf85v4LO@78=h$dLE<~Kv5$(b0a@Ocso=lApIuazlt_d(ws^&^)OXP{|SW?Ai4(1 zzlMqeNEE9)N%f&w2H#L|6bwVra_TNUmrB0~yW<$QH;CXv5H4c?5z9~lkFA^{cPgak zJ2@<$+@TfWPRb-9H*qN?;u^;iUARkA0P^GDBP#V|6=3Ry0LMrM7rX3Sl6)q*n(|bj z=m^bFDK3}LJGI6cQi9Jh2)@%cr3HEme|)Ryu{3qt3aENrs|By(Wr(w!BBlb>oE{11 zL0OMtv|tj+@pl$O_i1LnvMcBv+1AvIcL`nqInBg)Nv4$5Qzp7R#+O3kJ%Qy`sGZ{S zN)oAyY$H(l`5Uv6?}De8rMw~38leEGnU+}`d&*nDI0=HJr4W*h@vbnv;oFl>OW_D{ zji4k$Q&{9L6A>o4IP2&^`Fy0xaChOK7a?>xMDNZ@+7ixvEQ#7g&LAg}?r=1JlH?O* z z7FGu>Ua4Op;OuQ#k`E-~YYVo^8b<)QMI{pUB6*XMCc|?OFK>a*=!8jC7z6%2IOXmT zkHdyC-xWTi=|*Hfkh($CBXVz3J%ipKO4F@B0D{$O&`_4khoEq~=GiQ~72oQ`*k9#k zaiOD9oz_ACNsTufIjJYM`>8HG7o(>??%;f zi|2Ca-nE+6T9j4Md&^5WF^!i(1mCjDCItixV#+(-DaquJ8m<f~M|Jc>x=}_wu2sFG=oHp(dGtny1ws6K1E~+)CZT5$&jAqUI$id71XS zN#*fAqfHEOq_;&qk-r`=2YD>3j)cNZ5H8U`07@shz`?ck+N`>gL^-NFO*4XEdy+pO zwn8;l*}xJ@yful;y7K@Ts3+&;_V*ZryFWygFnjp$En&ZefrM(VjmI~ zNo4YaG-?#7-O;CAt9?~f#y69%<>b)ebOm)BUsAM~lgu4L-}8~3Gm%`_T1}g(*>%_H zLMAC>IaA6MLO+?0rBHH{epWTt2Y|D0-aW_pQJ^VVldXA+ydo$YRIvC!qa*kDerb?hq}yrF3?CK zZE`n@X-oYOxBVx(x*7vkN+HwbJ45p*tuLVnbl8ETu#&HkRw|MFHZxJ(S2|_!JIVLC zt&@jN&y8{36)%H?Rt}&%HagyxYN&shkJm)mx5R~+9`Y8Pz#{n*a zroRYKLT%QIMX6B6(6DO{X385*p(YfZhG2QaaTV2J7Zx4PD$_3+({Vi1f>+aIn?o*u zpMr1(a{R-#yigYG0;N%Ax{?ZZEv`0uK1-v0#LE}c5Ve{Lok-0+^tsUHD|ps}U7!Lb z6A@}Z5Gsyw-}%61qj&Kq?q)JIRzYdf#RQU&sZcr>1XUfOFWR_einn={j+5A!Iw3{t zqO|6C?O#O95{M<6Nm+9oV!6wXQ&_QsHky-$E|Z+EWM?iin)1Fpq0zrd3=gX*&AB6LV47S zf5x@(7Y*q|`A~74`>?SDkW?S6ElZEcBNA&`b}$d14$9j@@c;41P+C4O-Nl>EM-W`33si34P3l3YnG8+*#ot;E!)V#+I8k_^HRuIt%c+N+nt+2m zKl`gplf|39F+Uh;*0TC~syY!-ne>romcJMheK;Lv@mp#X3wcoPLUG9i+C#8~ zb;z-72_+-EFcp7BYg^5+;+RkcTeOmzS*U|e1piVm{~DR)l#_B8A0)p4{AX!>ykaX{ zoILSY83C}y=N7(F{@P7paI@y{w&(P#V@hrI>}dLC&qdajb)*sA>Q+D7s+wAqg?SvR zn-4&!FOBCm=6)L6B6}h1 z&Vcd>;JcNLFJAAf>cPJqf@8q-9-Z*iuh{-1o z7xF-j%xbd5tUBp%vSgVQK|Knr&ic73jX>q)s=fwVKIBcTyJ<1V&A}rQL~=XTmeKEK z*6T7?=49yD;C<8!l??tcd(#*f<}L@NB>hsYPpjGbqB}}VXQmZuTQoCNcJJeb?)v2Q+NaqvIJqibg;~ad3j$?@aB_2@Cj$yA0kQ7qr?a0#Hu8Q!kuohbqr- z=YeH9nV0y)j%Nxrui?FFK2=Vm@&cL(K6~+Lf!|g1)Hdi5zVr`zYFeh2`B3AqagA@s zhaWQEP~4>21HU_9BF1HogzJmEykx&?2r^0miAl}O(>w?=7)kyppP8jb_J-y*x2+;K z1;VX|>Zk;*Hg%aqyHcHjbV${n1IMd*qW;KDDkwOrT?p;U$YYrK(jk$qB8M0HEcw&a zSISRo47Dt(=K`fwn}CY)6Y`Po#zksQ64^hd(bD$wZkZF@ZZ3*=8hM2~sVndookJ

WxHL%a$_(#)sb0o%op$oZuoLcJA+NvAc)L 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 literal 0 HcmV?d00001 From 9f0c0e1ccab9283799a47f021779fe45bb30b167 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 2 Oct 2024 16:50:25 +0930 Subject: [PATCH 19/51] askrene: use a simple array as our queue. We only ever visit each node once, so we can just use an array. This avoids calling tal() all the time, which is *especially* slow when we're memory tracking. I had an old canned gossmap which I benchmarked for these (and in particular one node was unreachable, and that was slow): Before: 17.27 seconds After: 5.80 seconds Signed-off-by: Rusty Russell --- plugins/askrene/mcf.c | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/plugins/askrene/mcf.c b/plugins/askrene/mcf.c index 18b62ab7570e..2c73d0beeb0d 100644 --- a/plugins/askrene/mcf.c +++ b/plugins/askrene/mcf.c @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include @@ -687,13 +686,6 @@ init_linear_network(const tal_t *ctx, const struct pay_parameters *params) return linear_network; } -/* Simple queue to traverse the network. */ -struct queue_data -{ - u32 idx; - struct lqueue_link ql; -}; - // TODO(eduardo): unit test this /* Finds an admissible path from source to target, traversing arcs in the * residual network with capacity greater than 0. @@ -705,25 +697,21 @@ find_admissible_path(const struct linear_network *linear_network, const u32 source, const u32 target, struct arc *prev) { bool target_found = false; + /* Simple linear queue of node indexes */ + u32 *queue = tal_arr(tmpctx, u32, linear_network->max_num_arcs); + size_t qstart, qend; for(size_t i=0;iidx = source; - lqueue_enqueue(&myqueue,qdata); - - while(!lqueue_empty(&myqueue)) - { - qdata = lqueue_dequeue(&myqueue); - u32 cur = qdata->idx; - - tal_free(qdata); + while (qstart < qend) { + u32 cur = queue[qstart++]; if(cur==target) { @@ -748,10 +736,8 @@ find_admissible_path(const struct linear_network *linear_network, continue; prev[next] = arc; - - qdata = tal(tmpctx, struct queue_data); - qdata->idx = next; - lqueue_enqueue(&myqueue,qdata); + assert(qend < linear_network->max_num_arcs); + queue[qend++] = next; } } return target_found; From 0a23c63d375c48069c4910ca2b5e822c0107df73 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Wed, 2 Oct 2024 17:10:56 +0930 Subject: [PATCH 20/51] askrene: optimize, by calling tal_count less. I like the clarity, but this is a hot path. Fortunately these arrays have very well defined lengths. Before: 5.81 seconds After: 1.06 seconds Signed-off-by: Rusty Russell --- plugins/askrene/mcf.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/plugins/askrene/mcf.c b/plugins/askrene/mcf.c index 2c73d0beeb0d..8a72c6a229fe 100644 --- a/plugins/askrene/mcf.c +++ b/plugins/askrene/mcf.c @@ -392,7 +392,7 @@ static s64 get_arc_flow( static u32 arc_tail(const struct linear_network *linear_network, const struct arc arc) { - assert(arc.idx < tal_count(linear_network->arc_tail_node)); + assert(arc.idx < linear_network->max_num_arcs); return linear_network->arc_tail_node[ arc.idx ]; } /* Helper function. @@ -401,7 +401,7 @@ static u32 arc_head(const struct linear_network *linear_network, const struct arc arc) { const struct arc dual = arc_dual(arc); - assert(dual.idx < tal_count(linear_network->arc_tail_node)); + assert(dual.idx < linear_network->max_num_arcs); return linear_network->arc_tail_node[dual.idx]; } @@ -412,7 +412,7 @@ static struct arc node_adjacency_begin( const struct linear_network * linear_network, const u32 node) { - assert(node < tal_count(linear_network->node_adjacency_first_arc)); + assert(node < linear_network->max_num_nodes); return linear_network->node_adjacency_first_arc[node]; } @@ -429,7 +429,7 @@ static struct arc node_adjacency_next( const struct linear_network *linear_network, const struct arc arc) { - assert(arc.idx < tal_count(linear_network->node_adjacency_next_arc)); + assert(arc.idx < linear_network->max_num_arcs); return linear_network->node_adjacency_next_arc[arc.idx]; } @@ -540,16 +540,13 @@ static void linear_network_add_adjacenct_arc( const u32 node_idx, const struct arc arc) { - assert(arc.idx < tal_count(linear_network->arc_tail_node)); + assert(arc.idx < linear_network->max_num_arcs); linear_network->arc_tail_node[arc.idx] = node_idx; - assert(node_idx < tal_count(linear_network->node_adjacency_first_arc)); + assert(node_idx < linear_network->max_num_nodes); const struct arc first_arc = linear_network->node_adjacency_first_arc[node_idx]; - assert(arc.idx < tal_count(linear_network->node_adjacency_next_arc)); linear_network->node_adjacency_next_arc[arc.idx]=first_arc; - - assert(node_idx < tal_count(linear_network->node_adjacency_first_arc)); linear_network->node_adjacency_first_arc[node_idx]=arc; } @@ -596,23 +593,23 @@ init_linear_network(const tal_t *ctx, const struct pay_parameters *params) linear_network->max_num_nodes = max_num_nodes; linear_network->arc_tail_node = tal_arr(linear_network,u32,max_num_arcs); - for(size_t i=0;iarc_tail_node);++i) + for(size_t i=0;iarc_tail_node[i]=INVALID_INDEX; linear_network->node_adjacency_next_arc = tal_arr(linear_network,struct arc,max_num_arcs); - for(size_t i=0;inode_adjacency_next_arc);++i) + for(size_t i=0;inode_adjacency_next_arc[i].idx=INVALID_INDEX; linear_network->node_adjacency_first_arc = tal_arr(linear_network,struct arc,max_num_nodes); - for(size_t i=0;inode_adjacency_first_arc);++i) + for(size_t i=0;inode_adjacency_first_arc[i].idx=INVALID_INDEX; linear_network->arc_prob_cost = tal_arr(linear_network,s64,max_num_arcs); - for(size_t i=0;iarc_prob_cost);++i) + for(size_t i=0;iarc_prob_cost[i]=INFINITE; linear_network->arc_fee_cost = tal_arr(linear_network,s64,max_num_arcs); - for(size_t i=0;iarc_fee_cost);++i) + for(size_t i=0;iarc_fee_cost[i]=INFINITE; linear_network->capacity = tal_arrz(linear_network,s64,max_num_arcs); @@ -699,9 +696,9 @@ find_admissible_path(const struct linear_network *linear_network, bool target_found = false; /* Simple linear queue of node indexes */ u32 *queue = tal_arr(tmpctx, u32, linear_network->max_num_arcs); - size_t qstart, qend; + size_t qstart, qend, prev_len = tal_count(prev); - for(size_t i=0;i Date: Fri, 4 Oct 2024 08:48:53 +0930 Subject: [PATCH 21/51] gossmap: don't crash on localmods on non-existant channels. We allow adding them, but crash when we remove the localmods. Yet this could theoretically happen if a channel we modified was removed from the gossmap, anyway. Reported-by: Lagrang3 Signed-off-by: Rusty Russell --- common/gossmap.c | 4 ++++ common/test/run-gossmap_local.c | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/common/gossmap.c b/common/gossmap.c index 068a25c41566..5427c5e1cd4d 100644 --- a/common/gossmap.c +++ b/common/gossmap.c @@ -980,6 +980,10 @@ void gossmap_remove_localmods(struct gossmap *map, const struct localmod *mod = &localmods->mods[i]; struct gossmap_chan *chan = gossmap_find_chan(map, &mod->scid); + /* If there was no channel, ignore */ + if (!chan) + continue; + /* If that's a local channel, remove it now. */ if (chan->cann_off >= map->map_size) { gossmap_remove_chan(map, chan); diff --git a/common/test/run-gossmap_local.c b/common/test/run-gossmap_local.c index 4debfc47c418..376e4025e12f 100644 --- a/common/test/run-gossmap_local.c +++ b/common/test/run-gossmap_local.c @@ -333,7 +333,7 @@ int main(int argc, char *argv[]) char *gossfile; struct gossmap *map; struct node_id l1, l2, l3, l4; - struct short_channel_id scid23, scid12, scid_local; + struct short_channel_id scid23, scid12, scid_local, scid_nonexisting; struct gossmap_chan *chan; struct gossmap_localmods *mods; struct amount_sat capacity; @@ -498,6 +498,13 @@ int main(int argc, char *argv[]) AMOUNT_MSAT(100), 101, 102, 103, true, 0); + /* We can "update" a channel which doesn't exist, and it's a noop */ + scid_nonexisting.u64 = 1; + gossmap_local_updatechan(mods, scid_nonexisting, + AMOUNT_MSAT(1), + AMOUNT_MSAT(100000), + 2, 3, 4, false, 0); + gossmap_apply_localmods(map, mods); chan = gossmap_find_chan(map, &scid_local); assert(gossmap_chan_set(chan, 0)); @@ -510,6 +517,8 @@ int main(int argc, char *argv[]) assert(chan->half[0].proportional_fee == 3); assert(chan->half[0].delay == 4); + assert(!gossmap_find_chan(map, &scid_nonexisting)); + chan = gossmap_find_chan(map, &scid23); assert(chan->half[0].enabled); assert(chan->half[0].htlc_min == u64_to_fp16(99, false)); From d8ca9baa3b30b381330a14aba30473104af12549 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 08:49:53 +0930 Subject: [PATCH 22/51] askrene: add support for disabled channels in layers. Based-on-the-patch-by: Lagrang3 Signed-off-by: Rusty Russell --- contrib/msggen/msggen/schema.json | 10 +++++++ doc/schemas/lightning-askrene-listlayers.json | 10 +++++++ plugins/askrene/layer.c | 26 +++++++++++++++++++ plugins/askrene/layer.h | 4 +++ 4 files changed, 50 insertions(+) diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index a9b6d1572ac4..1dead107c5c6 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -556,6 +556,7 @@ "required": [ "layer", "disabled_nodes", + "disabled_channels", "created_channels", "constraints" ], @@ -575,6 +576,15 @@ ] } }, + "disabled_channels": { + "type": "array", + "items": { + "type": "short_channel_id_dir", + "description": [ + "The channel and direction which is disabled." + ] + } + }, "created_channels": { "type": "array", "items": { diff --git a/doc/schemas/lightning-askrene-listlayers.json b/doc/schemas/lightning-askrene-listlayers.json index a0a5cba70511..20d579539e71 100644 --- a/doc/schemas/lightning-askrene-listlayers.json +++ b/doc/schemas/lightning-askrene-listlayers.json @@ -33,6 +33,7 @@ "required": [ "layer", "disabled_nodes", + "disabled_channels", "created_channels", "constraints" ], @@ -52,6 +53,15 @@ ] } }, + "disabled_channels": { + "type": "array", + "items": { + "type": "short_channel_id_dir", + "description": [ + "The channel and direction which is disabled." + ] + } + }, "created_channels": { "type": "array", "items": { diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index 3991716dc988..9e8efe54cea4 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -83,6 +83,9 @@ struct layer { /* Nodes to completely disable (tal_arr) */ struct node_id *disabled_nodes; + + /* Channels to completely disable (tal_arr) */ + struct short_channel_id_dir *disabled_channels; }; struct layer *new_temp_layer(const tal_t *ctx, const char *name) @@ -95,6 +98,7 @@ struct layer *new_temp_layer(const tal_t *ctx, const char *name) l->constraints = tal(l, struct constraint_hash); constraint_hash_init(l->constraints); l->disabled_nodes = tal_arr(l, struct node_id, 0); + l->disabled_channels = tal_arr(l, struct short_channel_id_dir, 0); return l; } @@ -302,6 +306,11 @@ void layer_add_disabled_node(struct layer *layer, const struct node_id *node) tal_arr_expand(&layer->disabled_nodes, *node); } +void layer_add_disabled_channel(struct layer *layer, const struct short_channel_id_dir *scidd) +{ + tal_arr_expand(&layer->disabled_channels, *scidd); +} + void layer_add_localmods(const struct layer *layer, const struct gossmap *gossmap, bool zero_cost, @@ -362,6 +371,19 @@ void layer_add_localmods(const struct layer *layer, i); } } + + /* Now disable any channels they asked us to */ + for (size_t i = 0; i < tal_count(layer->disabled_channels); i++) { + gossmap_local_updatechan(localmods, + layer->disabled_channels[i].scid, + AMOUNT_MSAT(0), + AMOUNT_MSAT(0), + 0, + 0, + 0, + false, + layer->disabled_channels[i].dir); + } } static void json_add_local_channel(struct json_stream *response, @@ -426,6 +448,10 @@ static void json_add_layer(struct json_stream *js, for (size_t i = 0; i < tal_count(layer->disabled_nodes); i++) json_add_node_id(js, NULL, &layer->disabled_nodes[i]); json_array_end(js); + json_array_start(js, "disabled_channels"); + for (size_t i = 0; i < tal_count(layer->disabled_channels); i++) + json_add_short_channel_id_dir(js, NULL, layer->disabled_channels[i]); + json_array_end(js); json_array_start(js, "created_channels"); for (lc = local_channel_hash_first(layer->local_channels, &lcit); lc; diff --git a/plugins/askrene/layer.h b/plugins/askrene/layer.h index 7acea220c072..5503644ae0c7 100644 --- a/plugins/askrene/layer.h +++ b/plugins/askrene/layer.h @@ -102,6 +102,10 @@ size_t layer_trim_constraints(struct layer *layer, u64 cutoff); /* Add a disabled node to a layer. */ void layer_add_disabled_node(struct layer *layer, const struct node_id *node); +/* Add a disabled channel to a layer. */ +void layer_add_disabled_channel(struct layer *layer, + const struct short_channel_id_dir *scidd); + /* Print out a json object per layer, or all if layer is NULL */ void json_add_layers(struct json_stream *js, struct askrene *askrene, From f46219b5058b2ee838e4d90f44e163357b8b661a Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 08:50:53 +0930 Subject: [PATCH 23/51] common: round out the short_channel_id_dir JSON routines. Signed-off-by: Rusty Russell --- common/json_param.c | 13 +++++++++++++ common/json_param.h | 6 ++++++ common/json_parse.c | 15 ++++++++++++--- common/json_parse.h | 7 +++++++ common/test/run-json_filter.c | 4 ++++ common/test/run-json_remove.c | 4 ++++ plugins/askrene/askrene.c | 11 ----------- 7 files changed, 46 insertions(+), 14 deletions(-) diff --git a/common/json_param.c b/common/json_param.c index 3a25e1684b2f..216451271803 100644 --- a/common/json_param.c +++ b/common/json_param.c @@ -642,6 +642,19 @@ struct command_result *param_short_channel_id(struct command *cmd, "should be a short_channel_id of form NxNxN"); } +struct command_result *param_short_channel_id_dir(struct command *cmd, + const char *name, + const char *buffer, + const jsmntok_t *tok, + struct short_channel_id_dir **scidd) +{ + *scidd = tal(cmd, struct short_channel_id_dir); + if (!json_to_short_channel_id_dir(buffer, tok, *scidd)) + return command_fail_badparam(cmd, name, buffer, tok, + "should be a short_channel_id_dir of form NxNxN/N"); + return NULL; +} + struct command_result *param_secret(struct command *cmd, const char *name, const char *buffer, const jsmntok_t *tok, struct secret **secret) diff --git a/common/json_param.h b/common/json_param.h index 83e4f3b3a70a..07db22f3d2cf 100644 --- a/common/json_param.h +++ b/common/json_param.h @@ -275,6 +275,12 @@ struct command_result *param_short_channel_id(struct command *cmd, const jsmntok_t *tok, struct short_channel_id **scid); +struct command_result *param_short_channel_id_dir(struct command *cmd, + const char *name, + const char *buffer, + const jsmntok_t *tok, + struct short_channel_id_dir **scidd); + /* Ignore the token. Not usually used. */ struct command_result *param_ignore(struct command *cmd, const char *name, const char *buffer, const jsmntok_t *tok, diff --git a/common/json_parse.c b/common/json_parse.c index 639c35b2e70b..1d272b1f0c6c 100644 --- a/common/json_parse.c +++ b/common/json_parse.c @@ -109,6 +109,17 @@ bool json_to_int(const char *buffer, const jsmntok_t *tok, int *num) return true; } +bool json_to_zero_or_one(const char *buffer, const jsmntok_t *tok, int *num) +{ + u32 v32; + if (!json_to_u32(buffer, tok, &v32)) + return false; + if (v32 != 0 && v32 != 1) + return false; + *num = v32; + return true; +} + bool json_to_jsonrpc_errcode(const char *buffer, const jsmntok_t *tok, enum jsonrpc_errcode *errcode) { @@ -577,7 +588,6 @@ bool json_to_short_channel_id_dir(const char *buffer, const jsmntok_t *tok, struct short_channel_id_dir *scidd) { jsmntok_t scidtok, numtok; - u32 dir; if (!split_tok(buffer, tok, '/', &scidtok, &numtok)) return false; @@ -585,10 +595,9 @@ bool json_to_short_channel_id_dir(const char *buffer, const jsmntok_t *tok, if (!json_to_short_channel_id(buffer, &scidtok, &scidd->scid)) return false; - if (!json_to_u32(buffer, &numtok, &dir) || (dir > 1)) + if (!json_to_zero_or_one(buffer, &numtok, &scidd->dir)) return false; - scidd->dir = dir; return true; } diff --git a/common/json_parse.h b/common/json_parse.h index 7eca7284c2d6..4bd23cbddcd7 100644 --- a/common/json_parse.h +++ b/common/json_parse.h @@ -31,6 +31,9 @@ u8 *json_tok_bin_from_hex(const tal_t *ctx, const char *buffer, const jsmntok_t bool json_to_number(const char *buffer, const jsmntok_t *tok, unsigned int *num); +/* Extract 0/1 from this */ +bool json_to_zero_or_one(const char *buffer, const jsmntok_t *tok, int *num); + /* Extract signed 64 bit integer from this (may be a string, or a number literal) */ bool json_to_s64(const char *buffer, const jsmntok_t *tok, s64 *num); @@ -86,6 +89,10 @@ bool json_to_bitcoin_amount(const char *buffer, const jsmntok_t *tok, bool json_to_short_channel_id(const char *buffer, const jsmntok_t *tok, struct short_channel_id *scid); +/* Extract a short_channel_id_dir from this */ +bool json_to_short_channel_id_dir(const char *buffer, const jsmntok_t *tok, + struct short_channel_id_dir *scidd); + /* Extract a satoshis amount from this */ bool json_to_sat(const char *buffer, const jsmntok_t *tok, struct amount_sat *sat); diff --git a/common/test/run-json_filter.c b/common/test/run-json_filter.c index d4e68801a637..54138cbe6999 100644 --- a/common/test/run-json_filter.c +++ b/common/test/run-json_filter.c @@ -120,6 +120,10 @@ bool json_to_pubkey(const char *buffer UNNEEDED, const jsmntok_t *tok UNNEEDED, bool json_to_short_channel_id(const char *buffer UNNEEDED, const jsmntok_t *tok UNNEEDED, struct short_channel_id *scid UNNEEDED) { fprintf(stderr, "json_to_short_channel_id called!\n"); abort(); } +/* Generated stub for json_to_short_channel_id_dir */ +bool json_to_short_channel_id_dir(const char *buffer UNNEEDED, const jsmntok_t *tok UNNEEDED, + struct short_channel_id_dir *scidd UNNEEDED) +{ fprintf(stderr, "json_to_short_channel_id_dir called!\n"); abort(); } /* Generated stub for json_to_txid */ bool json_to_txid(const char *buffer UNNEEDED, const jsmntok_t *tok UNNEEDED, struct bitcoin_txid *txid UNNEEDED) diff --git a/common/test/run-json_remove.c b/common/test/run-json_remove.c index 93c844143415..f1c16a28cbe4 100644 --- a/common/test/run-json_remove.c +++ b/common/test/run-json_remove.c @@ -146,6 +146,10 @@ bool json_to_pubkey(const char *buffer UNNEEDED, const jsmntok_t *tok UNNEEDED, bool json_to_short_channel_id(const char *buffer UNNEEDED, const jsmntok_t *tok UNNEEDED, struct short_channel_id *scid UNNEEDED) { fprintf(stderr, "json_to_short_channel_id called!\n"); abort(); } +/* Generated stub for json_to_short_channel_id_dir */ +bool json_to_short_channel_id_dir(const char *buffer UNNEEDED, const jsmntok_t *tok UNNEEDED, + struct short_channel_id_dir *scidd UNNEEDED) +{ fprintf(stderr, "json_to_short_channel_id_dir called!\n"); abort(); } /* Generated stub for json_to_txid */ bool json_to_txid(const char *buffer UNNEEDED, const jsmntok_t *tok UNNEEDED, struct bitcoin_txid *txid UNNEEDED) diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 751b687416ef..3b79da24c943 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -102,17 +102,6 @@ static struct command_result *param_known_layer(struct command *cmd, return NULL; } -static bool json_to_zero_or_one(const char *buffer, const jsmntok_t *tok, int *num) -{ - u32 v32; - if (!json_to_u32(buffer, tok, &v32)) - return false; - if (v32 != 0 && v32 != 1) - return false; - *num = v32; - return true; -} - static struct command_result *param_zero_or_one(struct command *cmd, const char *name, const char *buffer, From 33404b03a0337da8d855f228f04f2d97336e4626 Mon Sep 17 00:00:00 2001 From: Lagrang3 Date: Fri, 4 Oct 2024 08:51:53 +0930 Subject: [PATCH 24/51] add askrene-disable-channel Changelog-EXPERIMENTAL: askrene: add askrene-disable-channel RPC Signed-off-by: Lagrang3 --- contrib/msggen/msggen/schema.json | 50 +++++++++++++++++++ .../lightning-askrene-disable-channel.json | 50 +++++++++++++++++++ plugins/askrene/askrene.c | 30 +++++++++++ tests/test_askrene.py | 19 +++++++ 4 files changed, 149 insertions(+) create mode 100644 doc/schemas/lightning-askrene-disable-channel.json diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index 1dead107c5c6..08f23654c7c7 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -361,6 +361,56 @@ "Main web site: " ] }, + "lightning-askrene-disable-channel.json": { + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "askrene-disable-channel", + "title": "Command to disable a channel in a layer (EXPERIMENTAL)", + "description": [ + "WARNING: experimental, so API may change.", + "", + "The **askrene-disable-channel** RPC command tells askrene to disable a channel whenever the given layer is used. This is mainly useful to force the use of alternate paths." + ], + "request": { + "required": [ + "layer", + "short_channel_id_dir" + ], + "properties": { + "layer": { + "type": "string", + "description": [ + "The name of the layer to apply this change to." + ] + }, + "short_channel_id_dir": { + "type": "short_channel_id_dir", + "description": [ + "The channel and direction to disable." + ] + } + } + }, + "response": { + "required": [], + "properties": {} + }, + "see_also": [ + "lightning-getroutes(7)", + "lightning-askrene-create-channel(7)", + "lightning-askrene-inform-channel(7)", + "lightning-askrene-disable-node(7)", + "lightning-askrene-listlayers(7)", + "lightning-askrene-age(7)" + ], + "author": [ + "Rusty Russell <> is mainly responsible." + ], + "resources": [ + "Main web site: " + ] + }, "lightning-askrene-disable-node.json": { "$schema": "../rpc-schema-draft.json", "type": "object", diff --git a/doc/schemas/lightning-askrene-disable-channel.json b/doc/schemas/lightning-askrene-disable-channel.json new file mode 100644 index 000000000000..09d5b2c4fd0b --- /dev/null +++ b/doc/schemas/lightning-askrene-disable-channel.json @@ -0,0 +1,50 @@ +{ + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "askrene-disable-channel", + "title": "Command to disable a channel in a layer (EXPERIMENTAL)", + "description": [ + "WARNING: experimental, so API may change.", + "", + "The **askrene-disable-channel** RPC command tells askrene to disable a channel whenever the given layer is used. This is mainly useful to force the use of alternate paths." + ], + "request": { + "required": [ + "layer", + "short_channel_id_dir" + ], + "properties": { + "layer": { + "type": "string", + "description": [ + "The name of the layer to apply this change to." + ] + }, + "short_channel_id_dir": { + "type": "short_channel_id_dir", + "description": [ + "The channel and direction to disable." + ] + } + } + }, + "response": { + "required": [], + "properties": {} + }, + "see_also": [ + "lightning-getroutes(7)", + "lightning-askrene-create-channel(7)", + "lightning-askrene-inform-channel(7)", + "lightning-askrene-disable-node(7)", + "lightning-askrene-listlayers(7)", + "lightning-askrene-age(7)" + ], + "author": [ + "Rusty Russell <> is mainly responsible." + ], + "resources": [ + "Main web site: " + ] +} diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 3b79da24c943..ade22c2f6aed 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -870,6 +870,32 @@ static struct command_result *json_askrene_inform_channel(struct command *cmd, return command_finished(cmd, response); } +static struct command_result *json_askrene_disable_channel(struct command *cmd, + const char *buffer, + const jsmntok_t *params) +{ + struct short_channel_id_dir *scidd; + const char *layername; + struct layer *layer; + struct json_stream *response; + struct askrene *askrene = get_askrene(cmd->plugin); + + if (!param(cmd, buffer, params, + p_req("layer", param_layername, &layername), + p_req("short_channel_id_dir", param_short_channel_id_dir, &scidd), + NULL)) + return command_param_failed(); + + layer = find_layer(askrene, layername); + if (!layer) + layer = new_layer(askrene, layername); + + layer_add_disabled_channel(layer, scidd); + + response = jsonrpc_stream_success(cmd); + return command_finished(cmd, response); +} + static struct command_result *json_askrene_disable_node(struct command *cmd, const char *buffer, const jsmntok_t *params) @@ -972,6 +998,10 @@ static const struct plugin_command commands[] = { "askrene-age", json_askrene_age, }, + { + "askrene-disable-channel", + json_askrene_disable_channel, + }, }; static void askrene_markmem(struct plugin *plugin, struct htable *memtable) diff --git a/tests/test_askrene.py b/tests/test_askrene.py index a87ae3c6ec53..2af1834f437b 100644 --- a/tests/test_askrene.py +++ b/tests/test_askrene.py @@ -17,6 +17,7 @@ def test_layers(node_factory): expect = {'layer': 'test_layers', 'disabled_nodes': [], + 'disabled_channels': [], 'created_channels': [], 'constraints': []} l2.rpc.askrene_disable_node('test_layers', l1.info['id']) @@ -25,6 +26,10 @@ def test_layers(node_factory): assert l2.rpc.askrene_listlayers() == {'layers': [expect]} assert l2.rpc.askrene_listlayers('test_layers2') == {'layers': []} + l2.rpc.askrene_disable_channel('test_layers', "1x2x3/0") + expect['disabled_channels'].append("1x2x3/0") + assert l2.rpc.askrene_listlayers('test_layers') == {'layers': [expect]} + # Tell it l3 connects to l1! l2.rpc.askrene_create_channel('test_layers', l3.info['id'], @@ -164,6 +169,20 @@ def test_getroutes(node_factory): # Set up l1 with this as the gossip_store l1 = node_factory.get_node(gossip_store_file=gsfile.name) + def direction(nodemap, src, dst): + if nodemap[src] < nodemap[dst]: + return 0 + return 1 + + # Disabling channels makes getroutes fail + l1.rpc.askrene_disable_channel("chans_disabled", f"0x1x0/{direction(nodemap, 0, 1)}") + with pytest.raises(RpcError, match="Could not find route"): + l1.rpc.getroutes(source=nodemap[0], + destination=nodemap[1], + amount_msat=1000, + layers=["chans_disabled"], + maxfee_msat=1000, + final_cltv=99) # Start easy assert l1.rpc.getroutes(source=nodemap[0], destination=nodemap[1], From 29cc227a5381046656d5b82d985e42cffb40cdf3 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 08:52:53 +0930 Subject: [PATCH 25/51] askrene: use short_channel_id_dir in API. It's generally much more convenient, and it's already present in other APIs. Signed-off-by: Rusty Russell --- contrib/msggen/msggen/schema.json | 90 ++++---------- .../lightning-askrene-inform-channel.json | 30 ++--- doc/schemas/lightning-askrene-listlayers.json | 15 +-- doc/schemas/lightning-askrene-reserve.json | 15 +-- doc/schemas/lightning-askrene-unreserve.json | 15 +-- doc/schemas/lightning-getroutes.json | 15 +-- plugins/askrene/askrene.c | 40 ++---- plugins/askrene/layer.c | 3 +- tests/test_askrene.py | 114 ++++++++---------- 9 files changed, 109 insertions(+), 228 deletions(-) diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index 08f23654c7c7..6caadaf47cb7 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -474,8 +474,7 @@ "request": { "required": [ "layer", - "short_channel_id", - "direction" + "short_channel_id_dir" ], "properties": { "layer": { @@ -484,16 +483,10 @@ "The name of the layer to apply this change to." ] }, - "short_channel_id": { - "type": "short_channel_id", - "description": [ - "The short channel id to apply this change to." - ] - }, - "direction": { - "type": "u32", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "The direction to apply this change to." + "The short channel id and direction to apply this change to." ] }, "minimum_msat": { @@ -518,21 +511,14 @@ "constraint": { "type": "object", "required": [ - "short_channel_id", - "direction", + "short_channel_id_dir", "timestamp" ], "properties": { - "short_channel_id": { - "type": "short_channel_id", - "description": [ - "The *short_channel_id* specified." - ] - }, - "direction": { - "type": "u32", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "The *direction* specified." + "The *short_channel_id* and *direction* specified." ] }, "timestamp": { @@ -713,20 +699,13 @@ "items": { "type": "object", "required": [ - "short_channel_id", - "direction" + "short_channel_id_dir" ], "properties": { - "short_channel_id": { - "type": "short_channel_id", - "description": [ - "The short channel id." - ] - }, - "direction": { - "type": "u32", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "The direction." + "The short channel id and direction" ] }, "maximum_msat": { @@ -787,21 +766,14 @@ "type": "object", "additionalProperties": true, "required": [ - "short_channel_id", - "direction", + "short_channel_id_dir", "amount_msat" ], "properties": { - "short_channel_id": { - "type": "short_channel_id", - "description": [ - "The channel joining these nodes." - ] - }, - "direction": { - "type": "u32", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "0 if this channel is traversed from lesser to greater **id**, otherwise 1." + "The channel and direction joining these nodes." ] }, "amount_msat": { @@ -859,21 +831,14 @@ "type": "object", "additionalProperties": true, "required": [ - "short_channel_id", - "direction", + "short_channel_id_dir", "amount_msat" ], "properties": { - "short_channel_id": { - "type": "short_channel_id", - "description": [ - "The channel joining these nodes." - ] - }, - "direction": { - "type": "u32", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "0 if this channel is traversed from lesser to greater **id**, otherwise 1." + "The channel and direction joining these nodes." ] }, "amount_msat": { @@ -14435,23 +14400,16 @@ "type": "object", "additionalProperties": false, "required": [ - "short_channel_id", - "direction", + "short_channel_id_dir", "next_node_id", "amount_msat", "delay" ], "properties": { - "short_channel_id": { - "type": "short_channel_id", - "description": [ - "The channel joining these nodes." - ] - }, - "direction": { - "type": "u32", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "0 if this channel is traversed from lesser to greater **id**, otherwise 1." + "The channel and direction joining these nodes." ] }, "amount_msat": { diff --git a/doc/schemas/lightning-askrene-inform-channel.json b/doc/schemas/lightning-askrene-inform-channel.json index 8ba0f90f62e3..7deb95b77785 100644 --- a/doc/schemas/lightning-askrene-inform-channel.json +++ b/doc/schemas/lightning-askrene-inform-channel.json @@ -12,8 +12,7 @@ "request": { "required": [ "layer", - "short_channel_id", - "direction" + "short_channel_id_dir" ], "properties": { "layer": { @@ -22,16 +21,10 @@ "The name of the layer to apply this change to." ] }, - "short_channel_id": { - "type": "short_channel_id", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "The short channel id to apply this change to." - ] - }, - "direction": { - "type": "u32", - "description": [ - "The direction to apply this change to." + "The short channel id and direction to apply this change to." ] }, "minimum_msat": { @@ -56,21 +49,14 @@ "constraint": { "type": "object", "required": [ - "short_channel_id", - "direction", + "short_channel_id_dir", "timestamp" ], "properties": { - "short_channel_id": { - "type": "short_channel_id", - "description": [ - "The *short_channel_id* specified." - ] - }, - "direction": { - "type": "u32", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "The *direction* specified." + "The *short_channel_id* and *direction* specified." ] }, "timestamp": { diff --git a/doc/schemas/lightning-askrene-listlayers.json b/doc/schemas/lightning-askrene-listlayers.json index 20d579539e71..7b6eed74d029 100644 --- a/doc/schemas/lightning-askrene-listlayers.json +++ b/doc/schemas/lightning-askrene-listlayers.json @@ -140,20 +140,13 @@ "items": { "type": "object", "required": [ - "short_channel_id", - "direction" + "short_channel_id_dir" ], "properties": { - "short_channel_id": { - "type": "short_channel_id", - "description": [ - "The short channel id." - ] - }, - "direction": { - "type": "u32", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "The direction." + "The short channel id and direction" ] }, "maximum_msat": { diff --git a/doc/schemas/lightning-askrene-reserve.json b/doc/schemas/lightning-askrene-reserve.json index 7b91e3800998..070920021f20 100644 --- a/doc/schemas/lightning-askrene-reserve.json +++ b/doc/schemas/lightning-askrene-reserve.json @@ -22,21 +22,14 @@ "type": "object", "additionalProperties": true, "required": [ - "short_channel_id", - "direction", + "short_channel_id_dir", "amount_msat" ], "properties": { - "short_channel_id": { - "type": "short_channel_id", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "The channel joining these nodes." - ] - }, - "direction": { - "type": "u32", - "description": [ - "0 if this channel is traversed from lesser to greater **id**, otherwise 1." + "The channel and direction joining these nodes." ] }, "amount_msat": { diff --git a/doc/schemas/lightning-askrene-unreserve.json b/doc/schemas/lightning-askrene-unreserve.json index 377595a5caa5..eeadf8058fb3 100644 --- a/doc/schemas/lightning-askrene-unreserve.json +++ b/doc/schemas/lightning-askrene-unreserve.json @@ -22,21 +22,14 @@ "type": "object", "additionalProperties": true, "required": [ - "short_channel_id", - "direction", + "short_channel_id_dir", "amount_msat" ], "properties": { - "short_channel_id": { - "type": "short_channel_id", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "The channel joining these nodes." - ] - }, - "direction": { - "type": "u32", - "description": [ - "0 if this channel is traversed from lesser to greater **id**, otherwise 1." + "The channel and direction joining these nodes." ] }, "amount_msat": { diff --git a/doc/schemas/lightning-getroutes.json b/doc/schemas/lightning-getroutes.json index 5b09bda28c57..aeaeb2216b8a 100644 --- a/doc/schemas/lightning-getroutes.json +++ b/doc/schemas/lightning-getroutes.json @@ -121,23 +121,16 @@ "type": "object", "additionalProperties": false, "required": [ - "short_channel_id", - "direction", + "short_channel_id_dir", "next_node_id", "amount_msat", "delay" ], "properties": { - "short_channel_id": { - "type": "short_channel_id", + "short_channel_id_dir": { + "type": "short_channel_id_dir", "description": [ - "The channel joining these nodes." - ] - }, - "direction": { - "type": "u32", - "description": [ - "0 if this channel is traversed from lesser to greater **id**, otherwise 1." + "The channel and direction joining these nodes." ] }, "amount_msat": { diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index ade22c2f6aed..97d1060d0978 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -102,20 +102,6 @@ static struct command_result *param_known_layer(struct command *cmd, return NULL; } -static struct command_result *param_zero_or_one(struct command *cmd, - const char *name, - const char *buffer, - const jsmntok_t *tok, - int **num) -{ - *num = tal(cmd, int); - if (json_to_zero_or_one(buffer, tok, *num)) - return NULL; - - return command_fail_badparam(cmd, name, buffer, tok, - "should be 0 or 1"); -} - struct reserve_path { struct short_channel_id_dir *scidds; struct amount_msat *amounts; @@ -130,9 +116,8 @@ static struct command_result *parse_reserve_path(struct command *cmd, { const char *err; - err = json_scan(tmpctx, buffer, tok, "{short_channel_id:%,direction:%,amount_msat:%}", - JSON_SCAN(json_to_short_channel_id, &scidd->scid), - JSON_SCAN(json_to_zero_or_one, &scidd->dir), + err = json_scan(tmpctx, buffer, tok, "{short_channel_id_dir:%,amount_msat:%}", + JSON_SCAN(json_to_short_channel_id_dir, scidd), JSON_SCAN(json_to_msat, amount)); if (err) return command_fail_badparam(cmd, name, buffer, tok, err); @@ -553,10 +538,12 @@ static struct command_result *do_getroutes(struct command *cmd, json_add_u32(response, "final_cltv", *info->finalcltv); json_array_start(response, "path"); for (size_t j = 0; j < tal_count(routes[i]->hops); j++) { + struct short_channel_id_dir scidd; const struct route_hop *r = &routes[i]->hops[j]; json_object_start(response, NULL); - json_add_short_channel_id(response, "short_channel_id", r->scid); - json_add_u32(response, "direction", r->direction); + scidd.scid = r->scid; + scidd.dir = r->direction; + json_add_short_channel_id_dir(response, "short_channel_id_dir", scidd); json_add_node_id(response, "next_node_id", &r->node_id); json_add_amount_msat(response, "amount_msat", r->amount); json_add_u32(response, "delay", r->delay); @@ -825,18 +812,15 @@ static struct command_result *json_askrene_inform_channel(struct command *cmd, { struct layer *layer; const char *layername; - struct short_channel_id *scid; - int *direction; + struct short_channel_id_dir *scidd; struct json_stream *response; struct amount_msat *max, *min; const struct constraint *c; - struct short_channel_id_dir scidd; struct askrene *askrene = get_askrene(cmd->plugin); if (!param_check(cmd, buffer, params, p_req("layer", param_layername, &layername), - p_req("short_channel_id", param_short_channel_id, &scid), - p_req("direction", param_zero_or_one, &direction), + p_req("short_channel_id_dir", param_short_channel_id_dir, &scidd), p_opt("minimum_msat", param_msat, &min), p_opt("maximum_msat", param_msat, &max), NULL)) @@ -854,15 +838,11 @@ static struct command_result *json_askrene_inform_channel(struct command *cmd, if (!layer) layer = new_layer(askrene, layername); - /* Calls expect a convenient short_channel_id_dir struct */ - scidd.scid = *scid; - scidd.dir = *direction; - if (min) { - c = layer_update_constraint(layer, &scidd, CONSTRAINT_MIN, + c = layer_update_constraint(layer, scidd, CONSTRAINT_MIN, time_now().ts.tv_sec, *min); } else { - c = layer_update_constraint(layer, &scidd, CONSTRAINT_MAX, + c = layer_update_constraint(layer, scidd, CONSTRAINT_MAX, time_now().ts.tv_sec, *max); } response = jsonrpc_stream_success(cmd); diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index 9e8efe54cea4..b2dd00bead5b 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -419,8 +419,7 @@ void json_add_constraint(struct json_stream *js, json_object_start(js, fieldname); if (layer) json_add_string(js, "layer", layer->name); - json_add_short_channel_id(js, "short_channel_id", c->key.scidd.scid); - json_add_u32(js, "direction", c->key.scidd.dir); + json_add_short_channel_id_dir(js, "short_channel_id_dir", c->key.scidd); json_add_u64(js, "timestamp", c->timestamp); switch (c->key.type) { case CONSTRAINT_MIN: diff --git a/tests/test_askrene.py b/tests/test_askrene.py index 2af1834f437b..e7380fe046e8 100644 --- a/tests/test_askrene.py +++ b/tests/test_askrene.py @@ -8,6 +8,13 @@ import time +def direction(src, dst): + """BOLT 7 direction: 0 means from lesser encoded id""" + if src < dst: + return 0 + return 1 + + def test_layers(node_factory): """Test manipulating information in layers""" l1, l2, l3 = node_factory.line_graph(3, wait_for_announce=True) @@ -52,12 +59,10 @@ def test_layers(node_factory): # We can tell it about made up channels... first_timestamp = int(time.time()) l2.rpc.askrene_inform_channel('test_layers', - '0x0x1', - 1, + '0x0x1/1', 100000) last_timestamp = int(time.time()) + 1 - expect['constraints'].append({'short_channel_id': '0x0x1', - 'direction': 1, + expect['constraints'].append({'short_channel_id_dir': '0x0x1/1', 'minimum_msat': 100000}) # Check timestamp first. listlayers = l2.rpc.askrene_listlayers('test_layers') @@ -72,25 +77,23 @@ def test_layers(node_factory): # We can tell it about existing channels... scid12 = first_scid(l1, l2) first_timestamp = int(time.time()) + scid12dir = f"{scid12}/{direction(l2.info['id'], l1.info['id'])}" l2.rpc.askrene_inform_channel(layer='test_layers', - short_channel_id=scid12, - # This is l2 -> l1 - direction=0, + short_channel_id_dir=scid12dir, maximum_msat=12341234) last_timestamp = int(time.time()) + 1 - expect['constraints'].append({'short_channel_id': scid12, - 'direction': 0, + expect['constraints'].append({'short_channel_id_dir': scid12dir, 'timestamp': first_timestamp, 'maximum_msat': 12341234}) # Check timestamp first. listlayers = l2.rpc.askrene_listlayers('test_layers') - ts2 = only_one([c['timestamp'] for c in only_one(listlayers['layers'])['constraints'] if c['short_channel_id'] == scid12]) + ts2 = only_one([c['timestamp'] for c in only_one(listlayers['layers'])['constraints'] if c['short_channel_id_dir'] == scid12dir]) assert first_timestamp <= ts2 <= last_timestamp expect['constraints'][1]['timestamp'] = ts2 # Could be either order! actual = expect.copy() - if only_one(listlayers['layers'])['constraints'][0]['short_channel_id'] == scid12: + if only_one(listlayers['layers'])['constraints'][0]['short_channel_id_dir'] == scid12dir: actual['constraints'] = [expect['constraints'][1], expect['constraints'][0]] assert listlayers == {'layers': [actual]} @@ -169,13 +172,8 @@ def test_getroutes(node_factory): # Set up l1 with this as the gossip_store l1 = node_factory.get_node(gossip_store_file=gsfile.name) - def direction(nodemap, src, dst): - if nodemap[src] < nodemap[dst]: - return 0 - return 1 - # Disabling channels makes getroutes fail - l1.rpc.askrene_disable_channel("chans_disabled", f"0x1x0/{direction(nodemap, 0, 1)}") + l1.rpc.askrene_disable_channel("chans_disabled", '0x1x0/1') with pytest.raises(RpcError, match="Could not find route"): l1.rpc.getroutes(source=nodemap[0], destination=nodemap[1], @@ -193,8 +191,7 @@ def direction(nodemap, src, dst): 'routes': [{'probability_ppm': 999999, 'final_cltv': 99, 'amount_msat': 1000, - 'path': [{'short_channel_id': '0x1x0', - 'direction': 1, + 'path': [{'short_channel_id_dir': '0x1x0/1', 'next_node_id': nodemap[1], 'amount_msat': 1010, 'delay': 99 + 6}]}]} @@ -208,13 +205,11 @@ def direction(nodemap, src, dst): 'routes': [{'probability_ppm': 999798, 'final_cltv': 99, 'amount_msat': 100000, - 'path': [{'short_channel_id': '0x1x0', - 'direction': 1, + 'path': [{'short_channel_id_dir': '0x1x0/1', 'next_node_id': nodemap[1], 'amount_msat': 103020, 'delay': 99 + 6 + 6}, - {'short_channel_id': '1x3x2', - 'direction': 1, + {'short_channel_id_dir': '1x3x2/1', 'next_node_id': nodemap[3], 'amount_msat': 102000, 'delay': 99 + 6} @@ -254,8 +249,7 @@ def direction(nodemap, src, dst): 'routes': [{'probability_ppm': 900000, 'final_cltv': 99, 'amount_msat': 1000000, - 'path': [{'short_channel_id': '0x2x3', - 'direction': 1, + 'path': [{'short_channel_id_dir': '0x2x3/1', 'next_node_id': nodemap[2], 'amount_msat': 1000001, 'delay': 99 + 6}]}]} @@ -265,11 +259,11 @@ def direction(nodemap, src, dst): nodemap[0], nodemap[2], 10000000, - [[{'short_channel_id': '0x2x1', + [[{'short_channel_id_dir': '0x2x1/1', 'next_node_id': nodemap[2], 'amount_msat': 500000, 'delay': 99 + 6}], - [{'short_channel_id': '0x2x3', + [{'short_channel_id_dir': '0x2x3/1', 'next_node_id': nodemap[2], 'amount_msat': 9500009, 'delay': 99 + 6}]]) @@ -299,8 +293,8 @@ def test_getroutes_fee_fallback(node_factory): nodemap[3], 10000, maxfee_msat=201, - paths=[[{'short_channel_id': '0x1x0'}, - {'short_channel_id': '1x3x2'}]]) + paths=[[{'short_channel_id_dir': '0x1x0/1'}, + {'short_channel_id_dir': '1x3x2/1'}]]) # maxfee exceeded? lower prob path. check_getroute_paths(l1, @@ -308,8 +302,8 @@ def test_getroutes_fee_fallback(node_factory): nodemap[3], 10000, maxfee_msat=200, - paths=[[{'short_channel_id': '0x2x1'}, - {'short_channel_id': '2x3x3'}]]) + paths=[[{'short_channel_id_dir': '0x2x1/1'}, + {'short_channel_id_dir': '2x3x3/0'}]]) def test_getroutes_auto_sourcefree(node_factory): @@ -333,8 +327,7 @@ def test_getroutes_auto_sourcefree(node_factory): 'routes': [{'probability_ppm': 999999, 'final_cltv': 99, 'amount_msat': 1000, - 'path': [{'short_channel_id': '0x1x0', - 'direction': 1, + 'path': [{'short_channel_id_dir': '0x1x0/1', 'next_node_id': nodemap[1], 'amount_msat': 1000, 'delay': 99}]}]} @@ -348,13 +341,11 @@ def test_getroutes_auto_sourcefree(node_factory): 'routes': [{'probability_ppm': 999798, 'final_cltv': 99, 'amount_msat': 100000, - 'path': [{'short_channel_id': '0x1x0', - 'direction': 1, + 'path': [{'short_channel_id_dir': '0x1x0/1', 'next_node_id': nodemap[1], 'amount_msat': 102000, 'delay': 99 + 6}, - {'short_channel_id': '1x3x2', - 'direction': 1, + {'short_channel_id_dir': '1x3x2/1', 'next_node_id': nodemap[3], 'amount_msat': 102000, 'delay': 99 + 6} @@ -408,15 +399,16 @@ def test_getroutes_auto_localchans(node_factory): final_cltv=99) # This should work + scid21dir = f"{scid12}/{direction(l2.info['id'], l1.info['id'])}" check_getroute_paths(l2, l2.info['id'], nodemap[2], 100000, maxfee_msat=100000, layers=['auto.localchans'], - paths=[[{'short_channel_id': scid12, 'amount_msat': 102012, 'delay': 99 + 6 + 6 + 6}, - {'short_channel_id': '0x1x0', 'amount_msat': 102010, 'delay': 99 + 6 + 6}, - {'short_channel_id': '1x2x1', 'amount_msat': 101000, 'delay': 99 + 6}]]) + paths=[[{'short_channel_id_dir': scid21dir, 'amount_msat': 102012, 'delay': 99 + 6 + 6 + 6}, + {'short_channel_id_dir': '0x1x0/0', 'amount_msat': 102010, 'delay': 99 + 6 + 6}, + {'short_channel_id_dir': '1x2x1/1', 'amount_msat': 101000, 'delay': 99 + 6}]]) # This should get self-discount correct check_getroute_paths(l2, @@ -425,9 +417,9 @@ def test_getroutes_auto_localchans(node_factory): 100000, maxfee_msat=100000, layers=['auto.localchans', 'auto.sourcefree'], - paths=[[{'short_channel_id': scid12, 'amount_msat': 102010, 'delay': 99 + 6 + 6}, - {'short_channel_id': '0x1x0', 'amount_msat': 102010, 'delay': 99 + 6 + 6}, - {'short_channel_id': '1x2x1', 'amount_msat': 101000, 'delay': 99 + 6}]]) + paths=[[{'short_channel_id_dir': scid21dir, 'amount_msat': 102010, 'delay': 99 + 6 + 6}, + {'short_channel_id_dir': '0x1x0/0', 'amount_msat': 102010, 'delay': 99 + 6 + 6}, + {'short_channel_id_dir': '1x2x1/1', 'amount_msat': 101000, 'delay': 99 + 6}]]) def test_fees_dont_exceed_constraints(node_factory): @@ -444,8 +436,7 @@ def test_fees_dont_exceed_constraints(node_factory): chan = only_one([c for c in l1.rpc.listchannels(source=nodemap[0])['channels'] if c['destination'] == nodemap[1]]) l1.rpc.askrene_inform_channel(layer='test_layers', - short_channel_id=chan['short_channel_id'], - direction=chan['direction'], + short_channel_id_dir=f"{chan['short_channel_id']}/{chan['direction']}", maximum_msat=max_msat) routes = l1.rpc.getroutes(source=nodemap[0], @@ -456,7 +447,7 @@ def test_fees_dont_exceed_constraints(node_factory): final_cltv=99)['routes'] assert len(routes) == 2 for hop in routes[0]['path'] + routes[1]['path']: - if hop['short_channel_id'] == chan['short_channel_id']: + if hop['short_channel_id_dir'] == f"{chan['short_channel_id']}/{chan['direction']}": amount = hop['amount_msat'] assert amount <= max_msat @@ -483,7 +474,7 @@ def test_sourcefree_on_mods(node_factory, bitcoind): maxfee_msat=100000, final_cltv=99)['routes'] # Expect no fee. - check_route_as_expected(routes, [[{'short_channel_id': '0x3x3', + check_route_as_expected(routes, [[{'short_channel_id_dir': '0x3x3/1', 'amount_msat': 1000000, 'delay': 99}]]) # Same if we specify layers in the other order! @@ -494,7 +485,7 @@ def test_sourcefree_on_mods(node_factory, bitcoind): maxfee_msat=100000, final_cltv=99)['routes'] # Expect no fee. - check_route_as_expected(routes, [[{'short_channel_id': '0x3x3', + check_route_as_expected(routes, [[{'short_channel_id_dir': '0x3x3/1', 'amount_msat': 1000000, 'delay': 99}]]) @@ -536,9 +527,7 @@ def test_live_spendable(node_factory, bitcoind): path_total = {} num_htlcs = {} for r in routes["routes"]: - key = "{}/{}".format( - r["path"][0]["short_channel_id"], r["path"][0]["direction"] - ) + key = r["path"][0]["short_channel_id_dir"] path_total[key] = path_total.get(key, 0) + r["path"][0]["amount_msat"] num_htlcs[key] = num_htlcs.get(key, 0) + 1 @@ -557,9 +546,9 @@ def test_live_spendable(node_factory, bitcoind): # No duplicate paths! for i in range(0, len(routes["routes"])): - path_i = [(p['short_channel_id'], p['direction']) for p in routes["routes"][i]['path']] + path_i = [p['short_channel_id_dir'] for p in routes["routes"][i]['path']] for j in range(i + 1, len(routes["routes"])): - path_j = [(p['short_channel_id'], p['direction']) for p in routes["routes"][j]['path']] + path_j = [p['short_channel_id_dir'] for p in routes["routes"][j]['path']] assert path_i != path_j # Must deliver exact amount. @@ -592,12 +581,11 @@ def test_limits_fake_gossmap(node_factory, bitcoind): assert scidd in [f"{c['short_channel_id']}/{c['direction']}" for c in l1.rpc.listchannels(source=nodemap[0])['channels']] for scidd, amount in spendable.items(): - chan, direction = scidd.split('/') l1.rpc.askrene_inform_channel(layer='localchans', - short_channel_id=chan, direction=int(direction), + short_channel_id_dir=scidd, minimum_msat=amount) l1.rpc.askrene_inform_channel(layer='localchans', - short_channel_id=chan, direction=int(direction), + short_channel_id_dir=scidd, maximum_msat=amount) routes = l1.rpc.getroutes( @@ -611,9 +599,7 @@ def test_limits_fake_gossmap(node_factory, bitcoind): path_total = {} for r in routes["routes"]: - key = "{}/{}".format( - r["path"][0]["short_channel_id"], r["path"][0]["direction"] - ) + key = r["path"][0]["short_channel_id_dir"] path_total[key] = path_total.get(key, 0) + r["path"][0]["amount_msat"] exceeded = {} @@ -626,9 +612,9 @@ def test_limits_fake_gossmap(node_factory, bitcoind): # No duplicate paths! for i in range(0, len(routes["routes"])): - path_i = [(p['short_channel_id'], p['direction']) for p in routes["routes"][i]['path']] + path_i = [p['short_channel_id_dir'] for p in routes["routes"][i]['path']] for j in range(i + 1, len(routes["routes"])): - path_j = [(p['short_channel_id'], p['direction']) for p in routes["routes"][j]['path']] + path_j = [p['short_channel_id_dir'] for p in routes["routes"][j]['path']] assert path_i != path_j # Must deliver exact amount. @@ -650,12 +636,12 @@ def test_max_htlc(node_factory, bitcoind): final_cltv=10) check_route_as_expected(routes['routes'], - [[{'short_channel_id': '0x1x0', 'amount_msat': 1_000_001, 'delay': 10 + 6}], - [{'short_channel_id': '0x1x1', 'amount_msat': 19_000_019, 'delay': 10 + 6}]]) + [[{'short_channel_id_dir': '0x1x0/1', 'amount_msat': 1_000_001, 'delay': 10 + 6}], + [{'short_channel_id_dir': '0x1x1/1', 'amount_msat': 19_000_019, 'delay': 10 + 6}]]) # If we can't use channel 2, we fail. l1.rpc.askrene_inform_channel(layer='removechan2', - short_channel_id='0x1x1', direction=1, + short_channel_id_dir='0x1x1/1', maximum_msat=0) # FIXME: Better diag! From b88f4cb854741a2cd686e972ce91da8b71662173 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 08:53:53 +0930 Subject: [PATCH 26/51] askrene: askrene-create-layer and askrene-remove-layer. It's generally better to be explicit with these things: currently typos would be ignored. But it's also much easier to clean up entire layers as we use them for temporary (per-payment) effects. Signed-off-by: Rusty Russell --- contrib/msggen/msggen/schema.json | 238 +++++++++++++++++- doc/Makefile | 2 + doc/index.rst | 2 + .../lightning-askrene-create-channel.json | 2 +- .../lightning-askrene-create-layer.json | 195 ++++++++++++++ .../lightning-askrene-inform-channel.json | 2 +- .../lightning-askrene-remove-layer.json | 39 +++ plugins/askrene/askrene.c | 159 +++++++----- plugins/askrene/layer.c | 10 +- plugins/askrene/layer.h | 4 +- tests/test_askrene.py | 20 +- 11 files changed, 599 insertions(+), 74 deletions(-) create mode 100644 doc/schemas/lightning-askrene-create-layer.json create mode 100644 doc/schemas/lightning-askrene-remove-layer.json diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index 6caadaf47cb7..c04ab364fb46 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -265,7 +265,7 @@ "description": [ "WARNING: experimental, so API may change.", "", - "The **askrene-create-channel** RPC command tells askrene to populate one direction of a channel in the given layer. If the channel already exists, it will be overridden. If the layer does not exist, it will be created." + "The **askrene-create-channel** RPC command tells askrene to populate one direction of a channel in the given layer. If the channel already exists, it will be overridden." ], "request": { "required": [ @@ -361,6 +361,201 @@ "Main web site: " ] }, + "lightning-askrene-create-layer.json": { + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "askrene-create-layer", + "title": "Command to create a new layer (EXPERIMENTAL)", + "description": [ + "WARNING: experimental, so API may change.", + "", + "The **askrene-create-layer** RPC command tells askrene to create a new, empty layer. This layer can then be populated with `askrene-create-channel` and `askrene-inform-channel`, and be used in `getroutes`." + ], + "request": { + "required": [ + "layer" + ], + "properties": { + "layer": { + "type": "string", + "description": [ + "The name of the layer to create." + ] + } + } + }, + "response": { + "required": [ + "layers" + ], + "properties": { + "layers": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "layer", + "disabled_nodes", + "disabled_channels", + "created_channels", + "constraints" + ], + "properties": { + "layer": { + "type": "string", + "description": [ + "The name of the layer." + ] + }, + "disabled_nodes": { + "type": "array", + "items": { + "type": "pubkey", + "description": [ + "The id of the disabled node." + ] + } + }, + "disabled_channels": { + "type": "array", + "items": { + "type": "short_channel_id_dir", + "description": [ + "The channel and direction which is disabled." + ] + } + }, + "created_channels": { + "type": "array", + "items": { + "type": "object", + "required": [ + "source", + "destination", + "short_channel_id", + "capacity_msat", + "htlc_minimum_msat", + "htlc_maximum_msat", + "fee_base_msat", + "fee_proportional_millionths", + "delay" + ], + "properties": { + "source": { + "type": "pubkey", + "description": [ + "The source node id for the channel." + ] + }, + "destination": { + "type": "pubkey", + "description": [ + "The destination node id for the channel." + ] + }, + "short_channel_id": { + "type": "short_channel_id", + "description": [ + "The short channel id for the channel." + ] + }, + "capacity_msat": { + "type": "msat", + "description": [ + "The capacity (onchain size) of the channel." + ] + }, + "htlc_minimum_msat": { + "type": "msat", + "description": [ + "The minimum value allowed in this direction." + ] + }, + "htlc_maximum_msat": { + "type": "msat", + "description": [ + "The maximum value allowed in this direction." + ] + }, + "fee_base_msat": { + "type": "msat", + "description": [ + "The base fee to apply to use the channel in this direction." + ] + }, + "fee_proportional_millionths": { + "type": "u32", + "description": [ + "The proportional fee (in parts per million) to apply to use the channel in this direction." + ] + }, + "delay": { + "type": "u16", + "description": [ + "The CLTV delay required for this direction." + ] + } + } + } + }, + "constraints": { + "type": "array", + "items": { + "type": "object", + "required": [ + "short_channel_id", + "direction" + ], + "properties": { + "short_channel_id": { + "type": "short_channel_id", + "description": [ + "The short channel id." + ] + }, + "direction": { + "type": "u32", + "description": [ + "The direction." + ] + }, + "maximum_msat": { + "type": "msat", + "description": [ + "The maximum value which this channel could pass. This or *minimum_msat* will be present, but not both." + ] + }, + "minimum_msat": { + "type": "msat", + "description": [ + "The minimum value which this channel could pass. This or *minimum_msat* will be present, but not both." + ] + } + } + } + } + } + } + } + } + }, + "see_also": [ + "lightning-askrene-remove-layer(7)", + "lightning-getroutes(7)", + "lightning-askrene-create-channel(7)", + "lightning-askrene-inform-channel(7)", + "lightning-askrene-listlayers(7)", + "lightning-askrene-age(7)" + ], + "author": [ + "Rusty Russell <> is mainly responsible." + ], + "resources": [ + "Main web site: " + ] + }, "lightning-askrene-disable-channel.json": { "$schema": "../rpc-schema-draft.json", "type": "object", @@ -469,7 +664,7 @@ "description": [ "WARNING: experimental, so API may change.", "", - "The **askrene-inform-channel** RPC command tells askrene about the minimum or maximum current capacity of a given channel. It can be applied whether the curren channel exists or not. If the layer does not exist, it will be created." + "The **askrene-inform-channel** RPC command tells askrene about the minimum or maximum current capacity of a given channel. It can be applied whether the current channel exists or not." ], "request": { "required": [ @@ -742,6 +937,45 @@ "Main web site: " ] }, + "lightning-askrene-remove-layer.json": { + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "askrene-remove-layer", + "title": "Command to destroy a layer (EXPERIMENTAL)", + "description": [ + "WARNING: experimental, so API may change.", + "", + "The **askrene-remove-layer** RPC command tells askrene to forget a layer." + ], + "request": { + "required": [ + "layer" + ], + "properties": { + "layer": { + "type": "string", + "description": [ + "The name of the layer to remove." + ] + } + } + }, + "response": { + "required": [], + "properties": {} + }, + "see_also": [ + "lightning-askrene-create-layer(7)", + "lightning-askrene-listlayers(7)" + ], + "author": [ + "Rusty Russell <> is mainly responsible." + ], + "resources": [ + "Main web site: " + ] + }, "lightning-askrene-reserve.json": { "$schema": "../rpc-schema-draft.json", "type": "object", diff --git a/doc/Makefile b/doc/Makefile index fd59c4182646..9e01a4382ac0 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -6,6 +6,8 @@ doc-wrongdir: GENERATE_MARKDOWN := doc/lightning-addgossip.7 \ doc/lightning-addpsbtoutput.7 \ + doc/lightning-askrene-create-layer.7 \ + doc/lightning-askrene-remove-layer.7 \ doc/lightning-askrene-create-channel.7 \ doc/lightning-askrene-disable-node.7 \ doc/lightning-askrene-inform-channel.7 \ diff --git a/doc/index.rst b/doc/index.rst index 5515229db141..682dee3e909c 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -15,9 +15,11 @@ Core Lightning Documentation lightning-addgossip lightning-addpsbtoutput lightning-askrene-create-channel + lightning-askrene-create-layer lightning-askrene-disable-node lightning-askrene-inform-channel lightning-askrene-listlayers + lightning-askrene-remove-layer lightning-askrene-reserve lightning-askrene-unreserve lightning-autoclean-once diff --git a/doc/schemas/lightning-askrene-create-channel.json b/doc/schemas/lightning-askrene-create-channel.json index ff43fdf7eb99..3e76313aaf58 100644 --- a/doc/schemas/lightning-askrene-create-channel.json +++ b/doc/schemas/lightning-askrene-create-channel.json @@ -7,7 +7,7 @@ "description": [ "WARNING: experimental, so API may change.", "", - "The **askrene-create-channel** RPC command tells askrene to populate one direction of a channel in the given layer. If the channel already exists, it will be overridden. If the layer does not exist, it will be created." + "The **askrene-create-channel** RPC command tells askrene to populate one direction of a channel in the given layer. If the channel already exists, it will be overridden." ], "request": { "required": [ diff --git a/doc/schemas/lightning-askrene-create-layer.json b/doc/schemas/lightning-askrene-create-layer.json new file mode 100644 index 000000000000..00518b4e4bb6 --- /dev/null +++ b/doc/schemas/lightning-askrene-create-layer.json @@ -0,0 +1,195 @@ +{ + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "askrene-create-layer", + "title": "Command to create a new layer (EXPERIMENTAL)", + "description": [ + "WARNING: experimental, so API may change.", + "", + "The **askrene-create-layer** RPC command tells askrene to create a new, empty layer. This layer can then be populated with `askrene-create-channel` and `askrene-inform-channel`, and be used in `getroutes`." + ], + "request": { + "required": [ + "layer" + ], + "properties": { + "layer": { + "type": "string", + "description": [ + "The name of the layer to create." + ] + } + } + }, + "response": { + "required": [ + "layers" + ], + "properties": { + "layers": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "layer", + "disabled_nodes", + "disabled_channels", + "created_channels", + "constraints" + ], + "properties": { + "layer": { + "type": "string", + "description": [ + "The name of the layer." + ] + }, + "disabled_nodes": { + "type": "array", + "items": { + "type": "pubkey", + "description": [ + "The id of the disabled node." + ] + } + }, + "disabled_channels": { + "type": "array", + "items": { + "type": "short_channel_id_dir", + "description": [ + "The channel and direction which is disabled." + ] + } + }, + "created_channels": { + "type": "array", + "items": { + "type": "object", + "required": [ + "source", + "destination", + "short_channel_id", + "capacity_msat", + "htlc_minimum_msat", + "htlc_maximum_msat", + "fee_base_msat", + "fee_proportional_millionths", + "delay" + ], + "properties": { + "source": { + "type": "pubkey", + "description": [ + "The source node id for the channel." + ] + }, + "destination": { + "type": "pubkey", + "description": [ + "The destination node id for the channel." + ] + }, + "short_channel_id": { + "type": "short_channel_id", + "description": [ + "The short channel id for the channel." + ] + }, + "capacity_msat": { + "type": "msat", + "description": [ + "The capacity (onchain size) of the channel." + ] + }, + "htlc_minimum_msat": { + "type": "msat", + "description": [ + "The minimum value allowed in this direction." + ] + }, + "htlc_maximum_msat": { + "type": "msat", + "description": [ + "The maximum value allowed in this direction." + ] + }, + "fee_base_msat": { + "type": "msat", + "description": [ + "The base fee to apply to use the channel in this direction." + ] + }, + "fee_proportional_millionths": { + "type": "u32", + "description": [ + "The proportional fee (in parts per million) to apply to use the channel in this direction." + ] + }, + "delay": { + "type": "u16", + "description": [ + "The CLTV delay required for this direction." + ] + } + } + } + }, + "constraints": { + "type": "array", + "items": { + "type": "object", + "required": [ + "short_channel_id", + "direction" + ], + "properties": { + "short_channel_id": { + "type": "short_channel_id", + "description": [ + "The short channel id." + ] + }, + "direction": { + "type": "u32", + "description": [ + "The direction." + ] + }, + "maximum_msat": { + "type": "msat", + "description": [ + "The maximum value which this channel could pass. This or *minimum_msat* will be present, but not both." + ] + }, + "minimum_msat": { + "type": "msat", + "description": [ + "The minimum value which this channel could pass. This or *minimum_msat* will be present, but not both." + ] + } + } + } + } + } + } + } + } + }, + "see_also": [ + "lightning-askrene-remove-layer(7)", + "lightning-getroutes(7)", + "lightning-askrene-create-channel(7)", + "lightning-askrene-inform-channel(7)", + "lightning-askrene-listlayers(7)", + "lightning-askrene-age(7)" + ], + "author": [ + "Rusty Russell <> is mainly responsible." + ], + "resources": [ + "Main web site: " + ] +} diff --git a/doc/schemas/lightning-askrene-inform-channel.json b/doc/schemas/lightning-askrene-inform-channel.json index 7deb95b77785..9d63efe60ce1 100644 --- a/doc/schemas/lightning-askrene-inform-channel.json +++ b/doc/schemas/lightning-askrene-inform-channel.json @@ -7,7 +7,7 @@ "description": [ "WARNING: experimental, so API may change.", "", - "The **askrene-inform-channel** RPC command tells askrene about the minimum or maximum current capacity of a given channel. It can be applied whether the curren channel exists or not. If the layer does not exist, it will be created." + "The **askrene-inform-channel** RPC command tells askrene about the minimum or maximum current capacity of a given channel. It can be applied whether the current channel exists or not." ], "request": { "required": [ diff --git a/doc/schemas/lightning-askrene-remove-layer.json b/doc/schemas/lightning-askrene-remove-layer.json new file mode 100644 index 000000000000..541cf9529002 --- /dev/null +++ b/doc/schemas/lightning-askrene-remove-layer.json @@ -0,0 +1,39 @@ +{ + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "askrene-remove-layer", + "title": "Command to destroy a layer (EXPERIMENTAL)", + "description": [ + "WARNING: experimental, so API may change.", + "", + "The **askrene-remove-layer** RPC command tells askrene to forget a layer." + ], + "request": { + "required": [ + "layer" + ], + "properties": { + "layer": { + "type": "string", + "description": [ + "The name of the layer to remove." + ] + } + } + }, + "response": { + "required": [], + "properties": {} + }, + "see_also": [ + "lightning-askrene-create-layer(7)", + "lightning-askrene-listlayers(7)" + ], + "author": [ + "Rusty Russell <> is mainly responsible." + ], + "resources": [ + "Main web site: " + ] +} diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 97d1060d0978..289430118519 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -62,24 +62,35 @@ static bool have_layer(const char **layers, const char *name) return false; } -/* JSON helpers */ -static struct command_result *param_string_array(struct command *cmd, - const char *name, - const char *buffer, - const jsmntok_t *tok, - const char ***arr) +/* Valid, known layers */ +static struct command_result *param_layer_names(struct command *cmd, + const char *name, + const char *buffer, + const jsmntok_t *tok, + const char ***arr) { size_t i; const jsmntok_t *t; if (tok->type != JSMN_ARRAY) - return command_fail_badparam(cmd, name, buffer, tok, "should be an array"); + return command_fail_badparam(cmd, name, buffer, tok, + "should be an array"); *arr = tal_arr(cmd, const char *, tok->size); json_for_each_arr(i, t, tok) { if (t->type != JSMN_STRING) - return command_fail_badparam(cmd, name, buffer, t, "should be a string"); + return command_fail_badparam(cmd, name, buffer, t, + "should be a string"); (*arr)[i] = json_strdup(*arr, buffer, t); + + /* Must be a known layer name */ + if (streq((*arr)[i], "auto.localchans") + || streq((*arr)[i], "auto.sourcefree")) + continue; + if (!find_layer(get_askrene(cmd->plugin), (*arr)[i])) { + return command_fail_badparam(cmd, name, buffer, t, + "unknown layer"); + } } return NULL; } @@ -285,11 +296,14 @@ static const char *get_routes(const tal_t *ctx, for (size_t i = 0; i < tal_count(layers); i++) { const struct layer *l = find_layer(askrene, layers[i]); if (!l) { - if (local_layer && streq(layers[i], "auto.localchans")) { + if (streq(layers[i], "auto.localchans")) { plugin_log(plugin, LOG_DBG, "Adding auto.localchans"); l = local_layer; - } else + } else { + /* Handled below, after other layers */ + assert(streq(layers[i], "auto.sourcefree")); continue; + } } tal_arr_expand(&rq->layers, l); @@ -652,7 +666,7 @@ static struct command_result *json_getroutes(struct command *cmd, p_req("source", param_node_id, &info->source), p_req("destination", param_node_id, &info->dest), p_req("amount_msat", param_msat, &info->amount), - p_req("layers", param_string_array, &info->layers), + p_req("layers", param_layer_names, &info->layers), p_req("maxfee_msat", param_msat, &info->maxfee), p_req("final_cltv", param_u32, &info->finalcltv), NULL)) @@ -737,25 +751,10 @@ static struct command_result *json_askrene_unreserve(struct command *cmd, return command_finished(cmd, response); } -static struct command_result *param_layername(struct command *cmd, - const char *name, - const char *buffer, - const jsmntok_t *tok, - const char **str) -{ - *str = tal_strndup(cmd, buffer + tok->start, - tok->end - tok->start); - if (strstarts(*str, "auto.")) - return command_fail_badparam(cmd, name, buffer, tok, - "New layers cannot start with auto."); - return NULL; -} - static struct command_result *json_askrene_create_channel(struct command *cmd, const char *buffer, const jsmntok_t *params) { - const char *layername; struct layer *layer; const struct local_channel *lc; struct node_id *src, *dst; @@ -765,10 +764,9 @@ static struct command_result *json_askrene_create_channel(struct command *cmd, struct amount_msat *htlc_min, *htlc_max, *base_fee; u32 *proportional_fee; u16 *delay; - struct askrene *askrene = get_askrene(cmd->plugin); if (!param_check(cmd, buffer, params, - p_req("layer", param_layername, &layername), + p_req("layer", param_known_layer, &layer), p_req("source", param_node_id, &src), p_req("destination", param_node_id, &dst), p_req("short_channel_id", param_short_channel_id, &scid), @@ -782,22 +780,15 @@ static struct command_result *json_askrene_create_channel(struct command *cmd, return command_param_failed(); /* If it exists, it must match */ - layer = find_layer(askrene, layername); - if (layer) { - lc = layer_find_local_channel(layer, *scid); - if (lc && !layer_check_local_channel(lc, src, dst, *capacity)) { - return command_fail(cmd, JSONRPC2_INVALID_PARAMS, - "channel already exists with different values!"); - } - } else - lc = NULL; + lc = layer_find_local_channel(layer, *scid); + if (lc && !layer_check_local_channel(lc, src, dst, *capacity)) { + return command_fail(cmd, JSONRPC2_INVALID_PARAMS, + "channel already exists with different values!"); + } if (command_check_only(cmd)) return command_check_done(cmd); - if (!layer) - layer = new_layer(askrene, layername); - layer_update_local_channel(layer, src, dst, *scid, *capacity, *base_fee, *proportional_fee, *delay, *htlc_min, *htlc_max); @@ -811,15 +802,13 @@ static struct command_result *json_askrene_inform_channel(struct command *cmd, const jsmntok_t *params) { struct layer *layer; - const char *layername; struct short_channel_id_dir *scidd; struct json_stream *response; struct amount_msat *max, *min; const struct constraint *c; - struct askrene *askrene = get_askrene(cmd->plugin); if (!param_check(cmd, buffer, params, - p_req("layer", param_layername, &layername), + p_req("layer", param_known_layer, &layer), p_req("short_channel_id_dir", param_short_channel_id_dir, &scidd), p_opt("minimum_msat", param_msat, &min), p_opt("maximum_msat", param_msat, &max), @@ -834,10 +823,6 @@ static struct command_result *json_askrene_inform_channel(struct command *cmd, if (command_check_only(cmd)) return command_check_done(cmd); - layer = find_layer(askrene, layername); - if (!layer) - layer = new_layer(askrene, layername); - if (min) { c = layer_update_constraint(layer, scidd, CONSTRAINT_MIN, time_now().ts.tv_sec, *min); @@ -855,21 +840,15 @@ static struct command_result *json_askrene_disable_channel(struct command *cmd, const jsmntok_t *params) { struct short_channel_id_dir *scidd; - const char *layername; struct layer *layer; struct json_stream *response; - struct askrene *askrene = get_askrene(cmd->plugin); if (!param(cmd, buffer, params, - p_req("layer", param_layername, &layername), + p_req("layer", param_known_layer, &layer), p_req("short_channel_id_dir", param_short_channel_id_dir, &scidd), NULL)) return command_param_failed(); - layer = find_layer(askrene, layername); - if (!layer) - layer = new_layer(askrene, layername); - layer_add_disabled_channel(layer, scidd); response = jsonrpc_stream_success(cmd); @@ -881,21 +860,15 @@ static struct command_result *json_askrene_disable_node(struct command *cmd, const jsmntok_t *params) { struct node_id *node; - const char *layername; struct layer *layer; struct json_stream *response; - struct askrene *askrene = get_askrene(cmd->plugin); if (!param(cmd, buffer, params, - p_req("layer", param_layername, &layername), + p_req("layer", param_known_layer, &layer), p_req("node", param_node_id, &node), NULL)) return command_param_failed(); - layer = find_layer(askrene, layername); - if (!layer) - layer = new_layer(askrene, layername); - /* We save this in the layer, because they want us to disable all the channels * to the node at *use* time (a new channel might be gossiped!). */ layer_add_disabled_node(layer, node); @@ -904,21 +877,71 @@ static struct command_result *json_askrene_disable_node(struct command *cmd, return command_finished(cmd, response); } +static struct command_result *json_askrene_create_layer(struct command *cmd, + const char *buffer, + const jsmntok_t *params) +{ + struct askrene *askrene = get_askrene(cmd->plugin); + struct layer *layer; + const char *layername; + struct json_stream *response; + + if (!param_check(cmd, buffer, params, + p_req("layer", param_string, &layername), + NULL)) + return command_param_failed(); + + if (find_layer(askrene, layername)) + return command_fail(cmd, JSONRPC2_INVALID_PARAMS, + "Layer already exists"); + + if (strstarts(layername, "auto.")) + return command_fail(cmd, JSONRPC2_INVALID_PARAMS, + "Cannot create auto layer"); + + if (command_check_only(cmd)) + return command_check_done(cmd); + + layer = new_layer(askrene, layername); + + response = jsonrpc_stream_success(cmd); + json_add_layers(response, askrene, "layers", layer); + return command_finished(cmd, response); +} + +static struct command_result *json_askrene_remove_layer(struct command *cmd, + const char *buffer, + const jsmntok_t *params) +{ + struct layer *layer; + struct json_stream *response; + + if (!param(cmd, buffer, params, + p_req("layer", param_known_layer, &layer), + NULL)) + return command_param_failed(); + + tal_free(layer); + + response = jsonrpc_stream_success(cmd); + return command_finished(cmd, response); +} + static struct command_result *json_askrene_listlayers(struct command *cmd, const char *buffer, const jsmntok_t *params) { struct askrene *askrene = get_askrene(cmd->plugin); - const char *layername; + struct layer *layer; struct json_stream *response; if (!param(cmd, buffer, params, - p_opt("layer", param_string, &layername), + p_opt("layer", param_known_layer, &layer), NULL)) return command_param_failed(); response = jsonrpc_stream_success(cmd); - json_add_layers(response, askrene, "layers", layername); + json_add_layers(response, askrene, "layers", layer); return command_finished(cmd, response); } @@ -970,6 +993,14 @@ static const struct plugin_command commands[] = { "askrene-inform-channel", json_askrene_inform_channel, }, + { + "askrene-create-layer", + json_askrene_create_layer, + }, + { + "askrene-remove-layer", + json_askrene_remove_layer, + }, { "askrene-listlayers", json_askrene_listlayers, diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index b2dd00bead5b..2ae5b59c1276 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -103,10 +103,16 @@ struct layer *new_temp_layer(const tal_t *ctx, const char *name) return l; } +static void destroy_layer(struct layer *l, struct askrene *askrene) +{ + list_del_from(&askrene->layers, &l->list); +} + struct layer *new_layer(struct askrene *askrene, const char *name) { struct layer *l = new_temp_layer(askrene, name); list_add(&askrene->layers, &l->list); + tal_add_destructor2(l, destroy_layer, askrene); return l; } @@ -477,13 +483,13 @@ static void json_add_layer(struct json_stream *js, void json_add_layers(struct json_stream *js, struct askrene *askrene, const char *fieldname, - const char *layername) + const struct layer *layer) { struct layer *l; json_array_start(js, fieldname); list_for_each(&askrene->layers, l, list) { - if (layername && !streq(l->name, layername)) + if (layer && l != layer) continue; json_add_layer(js, NULL, l); } diff --git a/plugins/askrene/layer.h b/plugins/askrene/layer.h index 5503644ae0c7..8867ba701138 100644 --- a/plugins/askrene/layer.h +++ b/plugins/askrene/layer.h @@ -106,11 +106,11 @@ void layer_add_disabled_node(struct layer *layer, const struct node_id *node); void layer_add_disabled_channel(struct layer *layer, const struct short_channel_id_dir *scidd); -/* Print out a json object per layer, or all if layer is NULL */ +/* Print out a json object for this layer, or all if layer is NULL */ void json_add_layers(struct json_stream *js, struct askrene *askrene, const char *fieldname, - const char *layername); + const struct layer *layer); /* Print a single constraint */ void json_add_constraint(struct json_stream *js, diff --git a/tests/test_askrene.py b/tests/test_askrene.py index e7380fe046e8..b71d37af0c0e 100644 --- a/tests/test_askrene.py +++ b/tests/test_askrene.py @@ -20,22 +20,27 @@ def test_layers(node_factory): l1, l2, l3 = node_factory.line_graph(3, wait_for_announce=True) assert l2.rpc.askrene_listlayers() == {'layers': []} - assert l2.rpc.askrene_listlayers('test_layers') == {'layers': []} + with pytest.raises(RpcError, match="Unknown layer"): + l2.rpc.askrene_listlayers('test_layers') expect = {'layer': 'test_layers', 'disabled_nodes': [], 'disabled_channels': [], 'created_channels': [], 'constraints': []} + l2.rpc.askrene_create_layer('test_layers') l2.rpc.askrene_disable_node('test_layers', l1.info['id']) expect['disabled_nodes'].append(l1.info['id']) assert l2.rpc.askrene_listlayers('test_layers') == {'layers': [expect]} assert l2.rpc.askrene_listlayers() == {'layers': [expect]} - assert l2.rpc.askrene_listlayers('test_layers2') == {'layers': []} + with pytest.raises(RpcError, match="Unknown layer"): + l2.rpc.askrene_listlayers('test_layers2') l2.rpc.askrene_disable_channel('test_layers', "1x2x3/0") expect['disabled_channels'].append("1x2x3/0") assert l2.rpc.askrene_listlayers('test_layers') == {'layers': [expect]} + with pytest.raises(RpcError, match="Layer already exists"): + l2.rpc.askrene_create_layer('test_layers') # Tell it l3 connects to l1! l2.rpc.askrene_create_channel('test_layers', @@ -114,6 +119,12 @@ def test_layers(node_factory): listlayers = l2.rpc.askrene_listlayers('test_layers') assert listlayers == {'layers': [expect]} + with pytest.raises(RpcError, match="Unknown layer"): + l2.rpc.askrene_remove_layer('test_layers_unknown') + + assert l2.rpc.askrene_remove_layer('test_layers') == {} + assert l2.rpc.askrene_listlayers() == {'layers': []} + def check_route_as_expected(routes, paths): """Make sure all fields in paths are match those in routes""" @@ -173,6 +184,7 @@ def test_getroutes(node_factory): l1 = node_factory.get_node(gossip_store_file=gsfile.name) # Disabling channels makes getroutes fail + l1.rpc.askrene_create_layer('chans_disabled') l1.rpc.askrene_disable_channel("chans_disabled", '0x1x0/1') with pytest.raises(RpcError, match="Could not find route"): l1.rpc.getroutes(source=nodemap[0], @@ -435,6 +447,7 @@ def test_fees_dont_exceed_constraints(node_factory): l1 = node_factory.get_node(gossip_store_file=gsfile.name) chan = only_one([c for c in l1.rpc.listchannels(source=nodemap[0])['channels'] if c['destination'] == nodemap[1]]) + l1.rpc.askrene_create_layer('test_layers') l1.rpc.askrene_inform_channel(layer='test_layers', short_channel_id_dir=f"{chan['short_channel_id']}/{chan['direction']}", maximum_msat=max_msat) @@ -460,6 +473,7 @@ def test_sourcefree_on_mods(node_factory, bitcoind): l1 = node_factory.get_node(gossip_store_file=gsfile.name) # Add a local channel from 0->l1 (we just needed a nodeid). + l1.rpc.askrene_create_layer('test_layers') l1.rpc.askrene_create_channel('test_layers', nodemap[0], l1.info['id'], @@ -580,6 +594,7 @@ def test_limits_fake_gossmap(node_factory, bitcoind): for scidd in spendable: assert scidd in [f"{c['short_channel_id']}/{c['direction']}" for c in l1.rpc.listchannels(source=nodemap[0])['channels']] + l1.rpc.askrene_create_layer('localchans') for scidd, amount in spendable.items(): l1.rpc.askrene_inform_channel(layer='localchans', short_channel_id_dir=scidd, @@ -640,6 +655,7 @@ def test_max_htlc(node_factory, bitcoind): [{'short_channel_id_dir': '0x1x1/1', 'amount_msat': 19_000_019, 'delay': 10 + 6}]]) # If we can't use channel 2, we fail. + l1.rpc.askrene_create_layer('removechan2') l1.rpc.askrene_inform_channel(layer='removechan2', short_channel_id_dir='0x1x1/1', maximum_msat=0) From 2df53c32c29c865163d1a42c798bd3c30bec37dc Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 08:54:53 +0930 Subject: [PATCH 27/51] askrene: make `route_query` contain pointer to the command. This is important for errors and feedback. Signed-off-by: Rusty Russell --- plugins/askrene/askrene.c | 17 +++++++++-------- plugins/askrene/askrene.h | 3 +++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 289430118519..4115675c3d5a 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -256,7 +256,7 @@ struct amount_msat get_additional_per_htlc_cost(const struct route_query *rq, /* Returns an error message, or sets *routes */ static const char *get_routes(const tal_t *ctx, - struct plugin *plugin, + struct command *cmd, const struct node_id *source, const struct node_id *dest, struct amount_msat amount, @@ -270,7 +270,7 @@ static const char *get_routes(const tal_t *ctx, const struct additional_cost_htable *additional_costs, double *probability) { - struct askrene *askrene = get_askrene(plugin); + struct askrene *askrene = get_askrene(cmd->plugin); struct route_query *rq = tal(ctx, struct route_query); struct flow **flows; const struct gossmap_node *srcnode, *dstnode; @@ -285,7 +285,8 @@ static const char *get_routes(const tal_t *ctx, askrene->capacities = get_capacities(askrene, askrene->plugin, askrene->gossmap); } - rq->plugin = plugin; + rq->cmd = cmd; + rq->plugin = cmd->plugin; rq->gossmap = askrene->gossmap; rq->reserved = askrene->reserved; rq->layers = tal_arr(rq, const struct layer *, 0); @@ -297,7 +298,7 @@ static const char *get_routes(const tal_t *ctx, const struct layer *l = find_layer(askrene, layers[i]); if (!l) { if (streq(layers[i], "auto.localchans")) { - plugin_log(plugin, LOG_DBG, "Adding auto.localchans"); + plugin_log(rq->plugin, LOG_DBG, "Adding auto.localchans"); l = local_layer; } else { /* Handled below, after other layers */ @@ -317,7 +318,7 @@ static const char *get_routes(const tal_t *ctx, /* This also looks into localmods, to zero them */ if (have_layer(layers, "auto.sourcefree")) - add_free_source(plugin, askrene->gossmap, localmods, source); + add_free_source(rq->plugin, askrene->gossmap, localmods, source); /* Clear scids with reservations, too, so we don't have to look up * all the time! */ @@ -383,7 +384,7 @@ static const char *get_routes(const tal_t *ctx, } /* Too expensive? */ - while (amount_msat_greater(flowset_fee(plugin, flows), maxfee)) { + while (amount_msat_greater(flowset_fee(rq->plugin, flows), maxfee)) { mu += 10; flows = minflow(rq, rq, srcnode, dstnode, amount, mu, delay_feefactor, base_fee_penalty, prob_cost_factor); @@ -428,7 +429,7 @@ static const char *get_routes(const tal_t *ctx, const struct half_chan *h = flow_edge(flows[i], j); if (!amount_msat_add_fee(&msat, h->base_fee, h->proportional_fee)) - plugin_err(plugin, "Adding fee to amount"); + plugin_err(rq->plugin, "Adding fee to amount"); delay += h->delay; rh->scid = gossmap_chan_scid(rq->gossmap, flows[i]->path[j]); @@ -534,7 +535,7 @@ static struct command_result *do_getroutes(struct command *cmd, struct route **routes; struct json_stream *response; - err = get_routes(cmd, cmd->plugin, + err = get_routes(cmd, cmd, info->source, info->dest, *info->amount, *info->maxfee, *info->finalcltv, info->layers, localmods, info->local_layer, diff --git a/plugins/askrene/askrene.h b/plugins/askrene/askrene.h index 7fb432838c8f..29c2271242fd 100644 --- a/plugins/askrene/askrene.h +++ b/plugins/askrene/askrene.h @@ -35,6 +35,9 @@ struct askrene { /* Information for a single route query. */ struct route_query { + /* Command pointer, mainly for command id. */ + struct command *cmd; + /* Plugin pointer, for logging mainly */ struct plugin *plugin; From 10dc40a895b840686f259238aabd8adaa890a7fe Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 08:55:53 +0930 Subject: [PATCH 28/51] askrene: clean up reserve array handling. I got confused, as we had a struct containing two arrays. Simply expose the reserve_hop struct and use arrays directly. Signed-off-by: Rusty Russell --- plugins/askrene/askrene.c | 56 +++++++++++++++------------------------ plugins/askrene/refine.c | 48 ++++++++++++++------------------- plugins/askrene/reserve.c | 20 +++++++------- plugins/askrene/reserve.h | 12 ++++++--- 4 files changed, 59 insertions(+), 77 deletions(-) diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 4115675c3d5a..9b319a88c7e7 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -113,23 +113,17 @@ static struct command_result *param_known_layer(struct command *cmd, return NULL; } -struct reserve_path { - struct short_channel_id_dir *scidds; - struct amount_msat *amounts; -}; - -static struct command_result *parse_reserve_path(struct command *cmd, - const char *name, - const char *buffer, - const jsmntok_t *tok, - struct short_channel_id_dir *scidd, - struct amount_msat *amount) +static struct command_result *parse_reserve_hop(struct command *cmd, + const char *name, + const char *buffer, + const jsmntok_t *tok, + struct reserve_hop *rhop) { const char *err; err = json_scan(tmpctx, buffer, tok, "{short_channel_id_dir:%,amount_msat:%}", - JSON_SCAN(json_to_short_channel_id_dir, scidd), - JSON_SCAN(json_to_msat, amount)); + JSON_SCAN(json_to_short_channel_id_dir, &rhop->scidd), + JSON_SCAN(json_to_msat, &rhop->amount)); if (err) return command_fail_badparam(cmd, name, buffer, tok, err); return NULL; @@ -139,7 +133,7 @@ static struct command_result *param_reserve_path(struct command *cmd, const char *name, const char *buffer, const jsmntok_t *tok, - struct reserve_path **path) + struct reserve_hop **path) { size_t i; const jsmntok_t *t; @@ -147,15 +141,11 @@ static struct command_result *param_reserve_path(struct command *cmd, if (tok->type != JSMN_ARRAY) return command_fail_badparam(cmd, name, buffer, tok, "should be an array"); - *path = tal(cmd, struct reserve_path); - (*path)->scidds = tal_arr(cmd, struct short_channel_id_dir, tok->size); - (*path)->amounts = tal_arr(cmd, struct amount_msat, tok->size); + *path = tal_arr(cmd, struct reserve_hop, tok->size); json_for_each_arr(i, t, tok) { struct command_result *ret; - ret = parse_reserve_path(cmd, name, buffer, t, - &(*path)->scidds[i], - &(*path)->amounts[i]); + ret = parse_reserve_hop(cmd, name, buffer, t, &(*path)[i]); if (ret) return ret; } @@ -695,7 +685,7 @@ static struct command_result *json_askrene_reserve(struct command *cmd, const char *buffer, const jsmntok_t *params) { - struct reserve_path *path; + struct reserve_hop *path; struct json_stream *response; size_t num; struct askrene *askrene = get_askrene(cmd->plugin); @@ -705,15 +695,14 @@ static struct command_result *json_askrene_reserve(struct command *cmd, NULL)) return command_param_failed(); - num = reserves_add(askrene->reserved, path->scidds, path->amounts, - tal_count(path->scidds)); - if (num != tal_count(path->scidds)) { - const struct reserve *r = find_reserve(askrene->reserved, &path->scidds[num]); + num = reserves_add(askrene->reserved, path, tal_count(path)); + if (num != tal_count(path)) { + const struct reserve *r = find_reserve(askrene->reserved, &path[num].scidd); return command_fail(cmd, JSONRPC2_INVALID_PARAMS, "Overflow reserving %zu: %s amount %s (%s reserved already)", num, - fmt_short_channel_id_dir(tmpctx, &path->scidds[num]), - fmt_amount_msat(tmpctx, path->amounts[num]), + fmt_short_channel_id_dir(tmpctx, &path[num].scidd), + fmt_amount_msat(tmpctx, path[num].amount), r ? fmt_amount_msat(tmpctx, r->amount) : "none"); } @@ -725,7 +714,7 @@ static struct command_result *json_askrene_unreserve(struct command *cmd, const char *buffer, const jsmntok_t *params) { - struct reserve_path *path; + struct reserve_hop *path; struct json_stream *response; size_t num; struct askrene *askrene = get_askrene(cmd->plugin); @@ -735,15 +724,14 @@ static struct command_result *json_askrene_unreserve(struct command *cmd, NULL)) return command_param_failed(); - num = reserves_remove(askrene->reserved, path->scidds, path->amounts, - tal_count(path->scidds)); - if (num != tal_count(path->scidds)) { - const struct reserve *r = find_reserve(askrene->reserved, &path->scidds[num]); + num = reserves_remove(askrene->reserved, path, tal_count(path)); + if (num != tal_count(path)) { + const struct reserve *r = find_reserve(askrene->reserved, &path[num].scidd); return command_fail(cmd, JSONRPC2_INVALID_PARAMS, "Underflow unreserving %zu: %s amount %s (%zu reserved, amount %s)", num, - fmt_short_channel_id_dir(tmpctx, &path->scidds[num]), - fmt_amount_msat(tmpctx, path->amounts[num]), + fmt_short_channel_id_dir(tmpctx, &path[num].scidd), + fmt_amount_msat(tmpctx, path[num].amount), r ? r->num_htlcs : 0, r ? fmt_amount_msat(tmpctx, r->amount) : "none"); } diff --git a/plugins/askrene/refine.c b/plugins/askrene/refine.c index e78eebf7e571..317832dcfbb0 100644 --- a/plugins/askrene/refine.c +++ b/plugins/askrene/refine.c @@ -9,10 +9,6 @@ /* We (ab)use the reservation system to place temporary reservations * on channels while we are refining each flow. This has the effect * of making flows aware of each other. */ -struct reservations { - struct short_channel_id_dir *scidds; - struct amount_msat *amounts; -}; /* Get the scidd for the i'th hop in flow */ static void get_scidd(const struct gossmap *gossmap, @@ -24,48 +20,45 @@ static void get_scidd(const struct gossmap *gossmap, scidd->dir = flow->dirs[i]; } -static void destroy_reservations(struct reservations *r, struct askrene *askrene) +static void destroy_reservations(struct reserve_hop *rhops, struct askrene *askrene) { - assert(tal_count(r->scidds) == tal_count(r->amounts)); - if (reserves_remove(askrene->reserved, - r->scidds, r->amounts, - tal_count(r->scidds)) != tal_count(r->scidds)) { + if (reserves_remove(askrene->reserved, rhops, tal_count(rhops)) + != tal_count(rhops)) { plugin_err(askrene->plugin, "Failed to remove reservations?"); } } -static struct reservations *new_reservations(const tal_t *ctx, - struct route_query *rq) +static struct reserve_hop *new_reservations(const tal_t *ctx, + const struct route_query *rq) { - struct reservations *r = tal(ctx, struct reservations); - r->scidds = tal_arr(r, struct short_channel_id_dir, 0); - r->amounts = tal_arr(r, struct amount_msat, 0); + struct reserve_hop *rhops = tal_arr(ctx, struct reserve_hop, 0); /* Unreserve on free */ - tal_add_destructor2(r, destroy_reservations, get_askrene(rq->plugin)); - return r; + tal_add_destructor2(rhops, destroy_reservations, get_askrene(rq->plugin)); + return rhops; } /* Add reservation: we (ab)use this to temporarily avoid over-usage as * we refine. */ -static void add_reservation(struct reservations *r, +static void add_reservation(struct reserve_hop **reservations, struct route_query *rq, const struct flow *flow, size_t i, struct amount_msat amt) { - struct short_channel_id_dir scidd; + struct reserve_hop rhop; struct askrene *askrene = get_askrene(rq->plugin); size_t idx; - get_scidd(rq->gossmap, flow, i, &scidd); + get_scidd(rq->gossmap, flow, i, &rhop.scidd); + rhop.amount = amt; /* This should not happen, but simply don't reserve if it does */ - if (!reserves_add(askrene->reserved, &scidd, &amt, 1)) { + if (!reserves_add(askrene->reserved, &rhop, 1)) { plugin_log(rq->plugin, LOG_BROKEN, "Failed to reserve %s in %s", fmt_amount_msat(tmpctx, amt), - fmt_short_channel_id_dir(tmpctx, &scidd)); + fmt_short_channel_id_dir(tmpctx, &rhop.scidd)); return; } @@ -75,8 +68,7 @@ static void add_reservation(struct reservations *r, rq->capacities[idx] = 0; /* Record so destructor will unreserve */ - tal_arr_expand(&r->scidds, scidd); - tal_arr_expand(&r->amounts, amt); + tal_arr_expand(reservations, rhop); } /* We have a basic set of flows, but we need to add fees, and take into @@ -93,7 +85,7 @@ static void add_reservation(struct reservations *r, static const char *constrain_flow(const tal_t *ctx, struct route_query *rq, struct flow *flow, - struct reservations *reservations) + struct reserve_hop **reservations) { struct amount_msat msat; int decreased = -1; @@ -187,7 +179,7 @@ static const char *constrain_flow(const tal_t *ctx, /* Flow is now delivering `extra` additional msat, so modify reservations */ static void add_to_flow(struct flow *flow, struct route_query *rq, - struct reservations *reservations, + struct reserve_hop **reservations, struct amount_msat extra) { struct amount_msat orig, updated; @@ -299,7 +291,7 @@ refine_with_fees_and_limits(const tal_t *ctx, struct amount_msat deliver, struct flow ***flows) { - struct reservations *reservations = new_reservations(NULL, rq); + struct reserve_hop *reservations = new_reservations(NULL, rq); struct amount_msat more_to_deliver; const char *flow_constraint_error = NULL; const char *ret; @@ -317,7 +309,7 @@ refine_with_fees_and_limits(const tal_t *ctx, fmt_amount_msat(tmpctx, max)); } - flow_constraint_error = constrain_flow(tmpctx, rq, flow, reservations); + flow_constraint_error = constrain_flow(tmpctx, rq, flow, &reservations); if (!flow_constraint_error) { i++; continue; @@ -398,7 +390,7 @@ refine_with_fees_and_limits(const tal_t *ctx, } /* Make this flow deliver +extra, and modify reservations */ - add_to_flow(f, rq, reservations, extra); + add_to_flow(f, rq, &reservations, extra); /* Should not happen, since extra comes from div... */ if (!amount_msat_sub(&more_to_deliver, more_to_deliver, extra)) diff --git a/plugins/askrene/reserve.c b/plugins/askrene/reserve.c index fb822143c068..1ae96b5fe1b7 100644 --- a/plugins/askrene/reserve.c +++ b/plugins/askrene/reserve.c @@ -86,16 +86,15 @@ static bool remove(struct reserve *r, struct amount_msat amount) /* Atomically add to reserves, or fail. * Returns offset of failure, or num on success */ size_t reserves_add(struct reserve_htable *reserved, - const struct short_channel_id_dir *scidds, - const struct amount_msat *amounts, + const struct reserve_hop *hops, size_t num) { for (size_t i = 0; i < num; i++) { - struct reserve *r = reserve_htable_get(reserved, &scidds[i]); + struct reserve *r = reserve_htable_get(reserved, &hops[i].scidd); if (!r) - r = new_reserve(reserved, &scidds[i]); - if (!add(r, amounts[i])) { - reserves_remove(reserved, scidds, amounts, i); + r = new_reserve(reserved, &hops[i].scidd); + if (!add(r, hops[i].amount)) { + reserves_remove(reserved, hops, i); return i; } } @@ -105,14 +104,13 @@ size_t reserves_add(struct reserve_htable *reserved, /* Atomically remove from reserves, to fail. * Returns offset of failure or tal_count(scidds) */ size_t reserves_remove(struct reserve_htable *reserved, - const struct short_channel_id_dir *scidds, - const struct amount_msat *amounts, + const struct reserve_hop *hops, size_t num) { for (size_t i = 0; i < num; i++) { - struct reserve *r = reserve_htable_get(reserved, &scidds[i]); - if (!r || !remove(r, amounts[i])) { - reserves_add(reserved, scidds, amounts, i); + struct reserve *r = reserve_htable_get(reserved, &hops[i].scidd); + if (!r || !remove(r, hops[i].amount)) { + reserves_add(reserved, hops, i); return i; } if (r->num_htlcs == 0) diff --git a/plugins/askrene/reserve.h b/plugins/askrene/reserve.h index 7da617229c56..67fc805c885f 100644 --- a/plugins/askrene/reserve.h +++ b/plugins/askrene/reserve.h @@ -22,18 +22,22 @@ struct reserve_htable *new_reserve_htable(const tal_t *ctx); const struct reserve *find_reserve(const struct reserve_htable *reserved, const struct short_channel_id_dir *scidd); + +struct reserve_hop { + struct short_channel_id_dir scidd; + struct amount_msat amount; +}; + /* Atomically add to reserves, or fail. * Returns offset of failure, or num on success */ size_t reserves_add(struct reserve_htable *reserved, - const struct short_channel_id_dir *scidds, - const struct amount_msat *amounts, + const struct reserve_hop *hops, size_t num); /* Atomically remove from reserves, to fail. * Returns offset of failure or tal_count(scidds) */ size_t reserves_remove(struct reserve_htable *reserved, - const struct short_channel_id_dir *scidds, - const struct amount_msat *amounts, + const struct reserve_hop *hops, size_t num); /* Clear capacities array where we have reserves */ From 0398d2ff73d3226b58dbe78cece54c71ef7dde49 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 08:56:53 +0930 Subject: [PATCH 29/51] askrene: remember individual reservations, for better debugging. Suggested-by: Lagrang3 Signed-off-by: Rusty Russell --- plugins/askrene/askrene.c | 44 ++++---------- plugins/askrene/refine.c | 15 +---- plugins/askrene/reserve.c | 125 +++++++++++++++----------------------- plugins/askrene/reserve.h | 34 ++++------- 4 files changed, 77 insertions(+), 141 deletions(-) diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 9b319a88c7e7..da68997c6127 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -447,7 +447,6 @@ void get_constraints(const struct route_query *rq, struct amount_msat *max) { struct short_channel_id_dir scidd; - const struct reserve *reserve; size_t idx = gossmap_chan_idx(rq->gossmap, chan); *min = AMOUNT_MSAT(0); @@ -494,14 +493,8 @@ void get_constraints(const struct route_query *rq, } /* Finally, if any is in use, subtract that! */ - reserve = find_reserve(rq->reserved, &scidd); - if (reserve) { - /* They can definitely *try* to push too much through a channel! */ - if (!amount_msat_sub(min, *min, reserve->amount)) - *min = AMOUNT_MSAT(0); - if (!amount_msat_sub(max, *max, reserve->amount)) - *max = AMOUNT_MSAT(0); - } + reserve_sub(rq->reserved, &scidd, min); + reserve_sub(rq->reserved, &scidd, max); } struct getroutes_info { @@ -687,7 +680,6 @@ static struct command_result *json_askrene_reserve(struct command *cmd, { struct reserve_hop *path; struct json_stream *response; - size_t num; struct askrene *askrene = get_askrene(cmd->plugin); if (!param(cmd, buffer, params, @@ -695,16 +687,8 @@ static struct command_result *json_askrene_reserve(struct command *cmd, NULL)) return command_param_failed(); - num = reserves_add(askrene->reserved, path, tal_count(path)); - if (num != tal_count(path)) { - const struct reserve *r = find_reserve(askrene->reserved, &path[num].scidd); - return command_fail(cmd, JSONRPC2_INVALID_PARAMS, - "Overflow reserving %zu: %s amount %s (%s reserved already)", - num, - fmt_short_channel_id_dir(tmpctx, &path[num].scidd), - fmt_amount_msat(tmpctx, path[num].amount), - r ? fmt_amount_msat(tmpctx, r->amount) : "none"); - } + for (size_t i = 0; i < tal_count(path); i++) + reserve_add(askrene->reserved, &path[i], cmd->id); response = jsonrpc_stream_success(cmd); return command_finished(cmd, response); @@ -716,7 +700,6 @@ static struct command_result *json_askrene_unreserve(struct command *cmd, { struct reserve_hop *path; struct json_stream *response; - size_t num; struct askrene *askrene = get_askrene(cmd->plugin); if (!param(cmd, buffer, params, @@ -724,17 +707,14 @@ static struct command_result *json_askrene_unreserve(struct command *cmd, NULL)) return command_param_failed(); - num = reserves_remove(askrene->reserved, path, tal_count(path)); - if (num != tal_count(path)) { - const struct reserve *r = find_reserve(askrene->reserved, &path[num].scidd); - return command_fail(cmd, JSONRPC2_INVALID_PARAMS, - "Underflow unreserving %zu: %s amount %s (%zu reserved, amount %s)", - num, - fmt_short_channel_id_dir(tmpctx, &path[num].scidd), - fmt_amount_msat(tmpctx, path[num].amount), - r ? r->num_htlcs : 0, - r ? fmt_amount_msat(tmpctx, r->amount) : "none"); - } + for (size_t i = 0; i < tal_count(path); i++) { + if (!reserve_remove(askrene->reserved, &path[i])) { + return command_fail(cmd, JSONRPC2_INVALID_PARAMS, + "Unknown reservation for %s", + fmt_short_channel_id_dir(tmpctx, + &path[i].scidd)); + } + } response = jsonrpc_stream_success(cmd); return command_finished(cmd, response); diff --git a/plugins/askrene/refine.c b/plugins/askrene/refine.c index 317832dcfbb0..18596281594f 100644 --- a/plugins/askrene/refine.c +++ b/plugins/askrene/refine.c @@ -22,10 +22,8 @@ static void get_scidd(const struct gossmap *gossmap, static void destroy_reservations(struct reserve_hop *rhops, struct askrene *askrene) { - if (reserves_remove(askrene->reserved, rhops, tal_count(rhops)) - != tal_count(rhops)) { - plugin_err(askrene->plugin, "Failed to remove reservations?"); - } + for (size_t i = 0; i < tal_count(rhops); i++) + reserve_remove(askrene->reserved, &rhops[i]); } static struct reserve_hop *new_reservations(const tal_t *ctx, @@ -53,14 +51,7 @@ static void add_reservation(struct reserve_hop **reservations, get_scidd(rq->gossmap, flow, i, &rhop.scidd); rhop.amount = amt; - /* This should not happen, but simply don't reserve if it does */ - if (!reserves_add(askrene->reserved, &rhop, 1)) { - plugin_log(rq->plugin, LOG_BROKEN, - "Failed to reserve %s in %s", - fmt_amount_msat(tmpctx, amt), - fmt_short_channel_id_dir(tmpctx, &rhop.scidd)); - return; - } + reserve_add(askrene->reserved, &rhop, rq->cmd->id); /* Set capacities entry to 0 so it get_constraints() looks in reserve. */ idx = gossmap_chan_idx(rq->gossmap, flow->path[i]); diff --git a/plugins/askrene/reserve.c b/plugins/askrene/reserve.c index 1ae96b5fe1b7..9b825fc8dc63 100644 --- a/plugins/askrene/reserve.c +++ b/plugins/askrene/reserve.c @@ -1,16 +1,27 @@ #include "config.h" #include #include +#include #include #include #include #include +/* Note! We can have multiple of these! */ +struct reserve { + /* What */ + struct reserve_hop rhop; + /* When */ + struct timemono timestamp; + /* ID of command which reserved it */ + const char *cmd_id; +}; + /* Hash table for reservations */ static const struct short_channel_id_dir * reserve_scidd(const struct reserve *r) { - return &r->scidd; + return &r->rhop.scidd; } static size_t hash_scidd(const struct short_channel_id_dir *scidd) @@ -22,7 +33,7 @@ static size_t hash_scidd(const struct short_channel_id_dir *scidd) static bool reserve_eq_scidd(const struct reserve *r, const struct short_channel_id_dir *scidd) { - return short_channel_id_dir_eq(scidd, &r->scidd); + return short_channel_id_dir_eq(scidd, &r->rhop.scidd); } HTABLE_DEFINE_TYPE(struct reserve, reserve_scidd, hash_scidd, @@ -35,88 +46,37 @@ struct reserve_htable *new_reserve_htable(const tal_t *ctx) return reserved; } -/* Find a reservation for this scidd (if any!) */ -const struct reserve *find_reserve(const struct reserve_htable *reserved, - const struct short_channel_id_dir *scidd) -{ - return reserve_htable_get(reserved, scidd); -} - -/* Create a new (empty) reservation */ -static struct reserve *new_reserve(struct reserve_htable *reserved, - const struct short_channel_id_dir *scidd) +void reserve_add(struct reserve_htable *reserved, + const struct reserve_hop *rhop, + const char *cmd_id TAKES) { struct reserve *r = tal(reserved, struct reserve); - - r->num_htlcs = 0; - r->amount = AMOUNT_MSAT(0); - r->scidd = *scidd; + r->rhop = *rhop; + r->timestamp = time_mono(); + r->cmd_id = tal_strdup(r, cmd_id); reserve_htable_add(reserved, r); - return r; } -static void del_reserve(struct reserve_htable *reserved, struct reserve *r) +bool reserve_remove(struct reserve_htable *reserved, + const struct reserve_hop *rhop) { - assert(r->num_htlcs == 0); - - reserve_htable_del(reserved, r); - tal_free(r); -} - -/* Add to existing reservation (false if would overflow). */ -static bool add(struct reserve *r, struct amount_msat amount) -{ - if (!amount_msat_accumulate(&r->amount, amount)) - return false; - r->num_htlcs++; - return true; -} - -static bool remove(struct reserve *r, struct amount_msat amount) -{ - if (r->num_htlcs == 0) - return false; - if (!amount_msat_sub(&r->amount, r->amount, amount)) - return false; - r->num_htlcs--; - return true; -} + struct reserve *r; + struct reserve_htable_iter rit; -/* Atomically add to reserves, or fail. - * Returns offset of failure, or num on success */ -size_t reserves_add(struct reserve_htable *reserved, - const struct reserve_hop *hops, - size_t num) -{ - for (size_t i = 0; i < num; i++) { - struct reserve *r = reserve_htable_get(reserved, &hops[i].scidd); - if (!r) - r = new_reserve(reserved, &hops[i].scidd); - if (!add(r, hops[i].amount)) { - reserves_remove(reserved, hops, i); - return i; - } - } - return num; -} + /* Note! This may remove the "wrong" one, but since they're only + * differentiated for debugging, that's OK */ + for (r = reserve_htable_getfirst(reserved, &rhop->scidd, &rit); + r; + r = reserve_htable_getnext(reserved, &rhop->scidd, &rit)) { + if (!amount_msat_eq(r->rhop.amount, rhop->amount)) + continue; -/* Atomically remove from reserves, to fail. - * Returns offset of failure or tal_count(scidds) */ -size_t reserves_remove(struct reserve_htable *reserved, - const struct reserve_hop *hops, - size_t num) -{ - for (size_t i = 0; i < num; i++) { - struct reserve *r = reserve_htable_get(reserved, &hops[i].scidd); - if (!r || !remove(r, hops[i].amount)) { - reserves_add(reserved, hops, i); - return i; - } - if (r->num_htlcs == 0) - del_reserve(reserved, r); + reserve_htable_del(reserved, r); + tal_free(r); + return true; } - return num; + return false; } void reserves_clear_capacities(struct reserve_htable *reserved, @@ -129,7 +89,7 @@ void reserves_clear_capacities(struct reserve_htable *reserved, for (r = reserve_htable_first(reserved, &rit); r; r = reserve_htable_next(reserved, &rit)) { - struct gossmap_chan *c = gossmap_find_chan(gossmap, &r->scidd.scid); + struct gossmap_chan *c = gossmap_find_chan(gossmap, &r->rhop.scidd.scid); size_t idx; if (!c) continue; @@ -139,6 +99,21 @@ void reserves_clear_capacities(struct reserve_htable *reserved, } } +void reserve_sub(const struct reserve_htable *reserved, + const struct short_channel_id_dir *scidd, + struct amount_msat *amount) +{ + struct reserve *r; + struct reserve_htable_iter rit; + + for (r = reserve_htable_getfirst(reserved, scidd, &rit); + r; + r = reserve_htable_getnext(reserved, scidd, &rit)) { + if (!amount_msat_sub(amount, *amount, r->rhop.amount)) + *amount = AMOUNT_MSAT(0); + } +} + void reserve_memleak_mark(struct askrene *askrene, struct htable *memtable) { memleak_scan_htable(memtable, &askrene->reserved->raw); diff --git a/plugins/askrene/reserve.h b/plugins/askrene/reserve.h index 67fc805c885f..cca4157364f0 100644 --- a/plugins/askrene/reserve.h +++ b/plugins/askrene/reserve.h @@ -8,43 +8,33 @@ #include #include -/* We reserve a path being used. This records how many and how much */ -struct reserve { - size_t num_htlcs; - struct short_channel_id_dir scidd; - struct amount_msat amount; -}; - /* Initialize hash table for reservations */ struct reserve_htable *new_reserve_htable(const tal_t *ctx); -/* Find a reservation for this scidd (if any!) */ -const struct reserve *find_reserve(const struct reserve_htable *reserved, - const struct short_channel_id_dir *scidd); - - struct reserve_hop { struct short_channel_id_dir scidd; struct amount_msat amount; }; -/* Atomically add to reserves, or fail. - * Returns offset of failure, or num on success */ -size_t reserves_add(struct reserve_htable *reserved, - const struct reserve_hop *hops, - size_t num); +/* Add a reservation */ +void reserve_add(struct reserve_htable *reserved, + const struct reserve_hop *rhop, + const char *cmd_id TAKES); -/* Atomically remove from reserves, to fail. - * Returns offset of failure or tal_count(scidds) */ -size_t reserves_remove(struct reserve_htable *reserved, - const struct reserve_hop *hops, - size_t num); +/* Try to remove a reservation, if it exists. */ +bool reserve_remove(struct reserve_htable *reserved, + const struct reserve_hop *rhop); /* Clear capacities array where we have reserves */ void reserves_clear_capacities(struct reserve_htable *reserved, const struct gossmap *gossmap, fp16_t *capacities); +/* Subtract any reserves for scidd from this amount */ +void reserve_sub(const struct reserve_htable *reserved, + const struct short_channel_id_dir *scidd, + struct amount_msat *amount); + /* Scan for memleaks */ void reserve_memleak_mark(struct askrene *askrene, struct htable *memtable); #endif /* LIGHTNING_PLUGINS_ASKRENE_RESERVE_H */ From d50838b60f32c00b703255b65d7bf987177b8224 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 08:57:53 +0930 Subject: [PATCH 30/51] askrene: implement listreservations And actually write tests! Suggested-by: Lagrang3 Signed-off-by: Rusty Russell --- contrib/msggen/msggen/schema.json | 84 +++++++++++++++-- doc/Makefile | 1 + doc/index.rst | 1 + .../lightning-askrene-listreservations.json | 72 ++++++++++++++ doc/schemas/lightning-askrene-reserve.json | 6 +- doc/schemas/lightning-askrene-unreserve.json | 6 +- plugins/askrene/askrene.c | 20 ++++ plugins/askrene/reserve.c | 27 ++++++ plugins/askrene/reserve.h | 5 + tests/test_askrene.py | 93 +++++++++++++++++++ 10 files changed, 295 insertions(+), 20 deletions(-) create mode 100644 doc/schemas/lightning-askrene-listreservations.json diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index c04ab364fb46..9dfcbc440f67 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -937,6 +937,78 @@ "Main web site: " ] }, + "lightning-askrene-listreservations.json": { + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "askrene-listreservations", + "title": "Command to display information about reservations (EXPERIMENTAL)", + "description": [ + "WARNING: experimental, so API may change.", + "", + "The **askrene-reservations** RPC command reports outstanding reservations made with `askrene-reserve`, mainly for debugging." + ], + "request": { + "required": [], + "properties": {} + }, + "response": { + "required": [ + "reservations" + ], + "properties": { + "layers": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "short_channel_id_dir", + "amount_msat", + "age_in_seconds", + "command_id" + ], + "properties": { + "short_channel_id_dir": { + "type": "short_channel_id_dir", + "description": [ + "The channel and direction that is reserved." + ] + }, + "amount_msat": { + "type": "msat", + "description": [ + "The amount reserved." + ] + }, + "age_in_seconds": { + "type": "u64", + "description": [ + "The age of this reservation." + ] + }, + "command_id": { + "type": "string", + "description": [ + "The JSON id of the command used to make the reservation." + ] + } + } + } + } + } + }, + "see_also": [ + "lightning-askrene-reserve(7)", + "lightning-askrene-unreserve(7)" + ], + "author": [ + "Rusty Russell <> is mainly responsible." + ], + "resources": [ + "Main web site: " + ] + }, "lightning-askrene-remove-layer.json": { "$schema": "../rpc-schema-draft.json", "type": "object", @@ -1028,11 +1100,7 @@ "see_also": [ "lightning-getroutes(7)", "lightning-askrene-unreserve(7)", - "lightning-askrene-disable-node(7)", - "lightning-askrene-create-channel(7)", - "lightning-askrene-inform-channel(7)", - "lightning-askrene-listlayers(7)", - "lightning-askrene-age(7)" + "lightning-askrene-listreservations(7)" ], "author": [ "Rusty Russell <> is mainly responsible." @@ -1093,11 +1161,7 @@ "see_also": [ "lightning-getroutes(7)", "lightning-askrene-reserve(7)", - "lightning-askrene-disable-node(7)", - "lightning-askrene-create-channel(7)", - "lightning-askrene-inform-channel(7)", - "lightning-askrene-listlayers(7)", - "lightning-askrene-age(7)" + "lightning-askrene-listreservations(7)" ], "author": [ "Rusty Russell <> is mainly responsible." diff --git a/doc/Makefile b/doc/Makefile index 9e01a4382ac0..afef62d8d0a5 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -12,6 +12,7 @@ GENERATE_MARKDOWN := doc/lightning-addgossip.7 \ doc/lightning-askrene-disable-node.7 \ doc/lightning-askrene-inform-channel.7 \ doc/lightning-askrene-listlayers.7 \ + doc/lightning-askrene-listreservations.7 \ doc/lightning-askrene-reserve.7 \ doc/lightning-askrene-unreserve.7 \ doc/lightning-autoclean-once.7 \ diff --git a/doc/index.rst b/doc/index.rst index 682dee3e909c..a28fc8f425a3 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -19,6 +19,7 @@ Core Lightning Documentation lightning-askrene-disable-node lightning-askrene-inform-channel lightning-askrene-listlayers + lightning-askrene-listreservations lightning-askrene-remove-layer lightning-askrene-reserve lightning-askrene-unreserve diff --git a/doc/schemas/lightning-askrene-listreservations.json b/doc/schemas/lightning-askrene-listreservations.json new file mode 100644 index 000000000000..1886d9e1c19e --- /dev/null +++ b/doc/schemas/lightning-askrene-listreservations.json @@ -0,0 +1,72 @@ +{ + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "askrene-listreservations", + "title": "Command to display information about reservations (EXPERIMENTAL)", + "description": [ + "WARNING: experimental, so API may change.", + "", + "The **askrene-reservations** RPC command reports outstanding reservations made with `askrene-reserve`, mainly for debugging." + ], + "request": { + "required": [], + "properties": {} + }, + "response": { + "required": [ + "reservations" + ], + "properties": { + "layers": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "short_channel_id_dir", + "amount_msat", + "age_in_seconds", + "command_id" + ], + "properties": { + "short_channel_id_dir": { + "type": "short_channel_id_dir", + "description": [ + "The channel and direction that is reserved." + ] + }, + "amount_msat": { + "type": "msat", + "description": [ + "The amount reserved." + ] + }, + "age_in_seconds": { + "type": "u64", + "description": [ + "The age of this reservation." + ] + }, + "command_id": { + "type": "string", + "description": [ + "The JSON id of the command used to make the reservation." + ] + } + } + } + } + } + }, + "see_also": [ + "lightning-askrene-reserve(7)", + "lightning-askrene-unreserve(7)" + ], + "author": [ + "Rusty Russell <> is mainly responsible." + ], + "resources": [ + "Main web site: " + ] +} diff --git a/doc/schemas/lightning-askrene-reserve.json b/doc/schemas/lightning-askrene-reserve.json index 070920021f20..d2790ba5a41a 100644 --- a/doc/schemas/lightning-askrene-reserve.json +++ b/doc/schemas/lightning-askrene-reserve.json @@ -50,11 +50,7 @@ "see_also": [ "lightning-getroutes(7)", "lightning-askrene-unreserve(7)", - "lightning-askrene-disable-node(7)", - "lightning-askrene-create-channel(7)", - "lightning-askrene-inform-channel(7)", - "lightning-askrene-listlayers(7)", - "lightning-askrene-age(7)" + "lightning-askrene-listreservations(7)" ], "author": [ "Rusty Russell <> is mainly responsible." diff --git a/doc/schemas/lightning-askrene-unreserve.json b/doc/schemas/lightning-askrene-unreserve.json index eeadf8058fb3..c214e56ddc75 100644 --- a/doc/schemas/lightning-askrene-unreserve.json +++ b/doc/schemas/lightning-askrene-unreserve.json @@ -50,11 +50,7 @@ "see_also": [ "lightning-getroutes(7)", "lightning-askrene-reserve(7)", - "lightning-askrene-disable-node(7)", - "lightning-askrene-create-channel(7)", - "lightning-askrene-inform-channel(7)", - "lightning-askrene-listlayers(7)", - "lightning-askrene-age(7)" + "lightning-askrene-listreservations(7)" ], "author": [ "Rusty Russell <> is mainly responsible." diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index da68997c6127..d0c0913b6e57 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -720,6 +720,22 @@ static struct command_result *json_askrene_unreserve(struct command *cmd, return command_finished(cmd, response); } +static struct command_result *json_askrene_listreservations(struct command *cmd, + const char *buffer, + const jsmntok_t *params) +{ + struct askrene *askrene = get_askrene(cmd->plugin); + struct json_stream *response; + + if (!param(cmd, buffer, params, + NULL)) + return command_param_failed(); + + response = jsonrpc_stream_success(cmd); + json_add_reservations(response, askrene->reserved, "reservations"); + return command_finished(cmd, response); +} + static struct command_result *json_askrene_create_channel(struct command *cmd, const char *buffer, const jsmntok_t *params) @@ -942,6 +958,10 @@ static const struct plugin_command commands[] = { "getroutes", json_getroutes, }, + { + "askrene-listreservations", + json_askrene_listreservations, + }, { "askrene-reserve", json_askrene_reserve, diff --git a/plugins/askrene/reserve.c b/plugins/askrene/reserve.c index 9b825fc8dc63..56bac106e3be 100644 --- a/plugins/askrene/reserve.c +++ b/plugins/askrene/reserve.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -114,6 +115,32 @@ void reserve_sub(const struct reserve_htable *reserved, } } +void json_add_reservations(struct json_stream *js, + const struct reserve_htable *reserved, + const char *fieldname) +{ + struct reserve *r; + struct reserve_htable_iter rit; + + json_array_start(js, fieldname); + for (r = reserve_htable_first(reserved, &rit); + r; + r = reserve_htable_next(reserved, &rit)) { + json_object_start(js, NULL); + json_add_short_channel_id_dir(js, + "short_channel_id_dir", + r->rhop.scidd); + json_add_amount_msat(js, + "amount_msat", + r->rhop.amount); + json_add_u64(js, "age_in_seconds", + timemono_between(time_mono(), r->timestamp).ts.tv_sec); + json_add_string(js, "command_id", r->cmd_id); + json_object_end(js); + } + json_array_end(js); +} + void reserve_memleak_mark(struct askrene *askrene, struct htable *memtable) { memleak_scan_htable(memtable, &askrene->reserved->raw); diff --git a/plugins/askrene/reserve.h b/plugins/askrene/reserve.h index cca4157364f0..ffffe91c2cb0 100644 --- a/plugins/askrene/reserve.h +++ b/plugins/askrene/reserve.h @@ -35,6 +35,11 @@ void reserve_sub(const struct reserve_htable *reserved, const struct short_channel_id_dir *scidd, struct amount_msat *amount); +/* Print out a json object for all reservations */ +void json_add_reservations(struct json_stream *js, + const struct reserve_htable *reserved, + const char *fieldname); + /* Scan for memleaks */ void reserve_memleak_mark(struct askrene *askrene, struct htable *memtable); #endif /* LIGHTNING_PLUGINS_ASKRENE_RESERVE_H */ diff --git a/tests/test_askrene.py b/tests/test_askrene.py index b71d37af0c0e..683f548b146a 100644 --- a/tests/test_askrene.py +++ b/tests/test_askrene.py @@ -15,6 +15,99 @@ def direction(src, dst): return 1 +def test_reserve(node_factory): + """Test reserving channels""" + l1, l2, l3 = node_factory.line_graph(3, wait_for_announce=True) + + assert l1.rpc.askrene_listreservations() == {'reservations': []} + scid12dir = f"{first_scid(l1, l2)}/{direction(l1.info['id'], l2.info['id'])}" + scid23dir = f"{first_scid(l2, l3)}/{direction(l2.info['id'], l3.info['id'])}" + + initial_prob = l1.rpc.getroutes(source=l1.info['id'], + destination=l3.info['id'], + amount_msat=1000000, + layers=[], + maxfee_msat=100000, + final_cltv=0)['probability_ppm'] + + # Reserve 1000 sats on path. This should reduce probability! + l1.rpc.askrene_reserve(path=[{'short_channel_id_dir': scid12dir, + 'amount_msat': 1000_000}, + {'short_channel_id_dir': scid23dir, + 'amount_msat': 1000_001}]) + listres = l1.rpc.askrene_listreservations()['reservations'] + if listres[0]['short_channel_id_dir'] == scid12dir: + assert listres[0]['amount_msat'] == 1000_000 + assert listres[1]['short_channel_id_dir'] == scid23dir + assert listres[1]['amount_msat'] == 1000_001 + else: + assert listres[0]['short_channel_id_dir'] == scid23dir + assert listres[0]['amount_msat'] == 1000_001 + assert listres[1]['short_channel_id_dir'] == scid12dir + assert listres[1]['amount_msat'] == 1000_000 + assert len(listres) == 2 + + assert l1.rpc.getroutes(source=l1.info['id'], + destination=l3.info['id'], + amount_msat=1000000, + layers=[], + maxfee_msat=100000, + final_cltv=0)['probability_ppm'] < initial_prob + + # Now reserve so much there's nothing left. + l1.rpc.askrene_reserve(path=[{'short_channel_id_dir': scid12dir, + 'amount_msat': 1000_000_000_000}, + {'short_channel_id_dir': scid23dir, + 'amount_msat': 1000_000_000_000}]) + + # FIXME: better error! + with pytest.raises(RpcError, match="Could not find route"): + l1.rpc.getroutes(source=l1.info['id'], + destination=l3.info['id'], + amount_msat=1000000, + layers=[], + maxfee_msat=100000, + final_cltv=0)['probability_ppm'] + + # Can't remove wrong amounts: that's user error + with pytest.raises(RpcError, match="Unknown reservation"): + l1.rpc.askrene_unreserve(path=[{'short_channel_id_dir': scid12dir, + 'amount_msat': 1000_001}, + {'short_channel_id_dir': scid23dir, + 'amount_msat': 1000_000}]) + + # Remove, it's all ok. + l1.rpc.askrene_unreserve(path=[{'short_channel_id_dir': scid12dir, + 'amount_msat': 1000_000}, + {'short_channel_id_dir': scid23dir, + 'amount_msat': 1000_001}]) + l1.rpc.askrene_unreserve(path=[{'short_channel_id_dir': scid12dir, + 'amount_msat': 1000_000_000_000}, + {'short_channel_id_dir': scid23dir, + 'amount_msat': 1000_000_000_000}]) + assert l1.rpc.askrene_listreservations() == {'reservations': []} + assert l1.rpc.getroutes(source=l1.info['id'], + destination=l3.info['id'], + amount_msat=1000000, + layers=[], + maxfee_msat=100000, + final_cltv=0)['probability_ppm'] == initial_prob + + # Reserving in reverse makes no difference! + scid12rev = f"{first_scid(l1, l2)}/{direction(l2.info['id'], l1.info['id'])}" + scid23rev = f"{first_scid(l2, l3)}/{direction(l3.info['id'], l2.info['id'])}" + l1.rpc.askrene_reserve(path=[{'short_channel_id_dir': scid12rev, + 'amount_msat': 1000_000_000_000}, + {'short_channel_id_dir': scid23rev, + 'amount_msat': 1000_000_000_000}]) + assert l1.rpc.getroutes(source=l1.info['id'], + destination=l3.info['id'], + amount_msat=1000000, + layers=[], + maxfee_msat=100000, + final_cltv=0)['probability_ppm'] == initial_prob + + def test_layers(node_factory): """Test manipulating information in layers""" l1, l2, l3 = node_factory.line_graph(3, wait_for_announce=True) From 3c5c22b17af224726f2f262fa505b1a069b77532 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 08:58:53 +0930 Subject: [PATCH 31/51] askrene: change inform interface, take into account reserve. Lagrang3 points out that if we hit a maximum, we should take into account the reserve. This is true, but it's hard for the caller to do, so change the API to be slightly higher level. Tell "inform" what happened, and it adjust the constraints appropriately. This makes the least assumptions possible (a reserve does *not* mean that the capacity was actually used at that time). We also add a mode to say "this succeeded": for now this does nothing, but it could reduce both min/max capacities, and add capacity in the other direction. This is useful for future payments, but not as useful for the current one. Signed-off-by: Rusty Russell --- contrib/msggen/msggen/schema.json | 81 ++++++++++--------- .../lightning-askrene-inform-channel.json | 79 +++++++++--------- doc/schemas/lightning-askrene-reserve.json | 2 +- plugins/askrene/askrene.c | 79 ++++++++++++++---- plugins/askrene/reserve.c | 16 ++++ plugins/askrene/reserve.h | 5 ++ tests/test_askrene.py | 20 +++-- 7 files changed, 181 insertions(+), 101 deletions(-) diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index 9dfcbc440f67..95db709fad26 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -664,12 +664,14 @@ "description": [ "WARNING: experimental, so API may change.", "", - "The **askrene-inform-channel** RPC command tells askrene about the minimum or maximum current capacity of a given channel. It can be applied whether the current channel exists or not." + "The **askrene-inform-channel** RPC command tells askrene about channels we used so it can update its capacity estimates. For most accuracy, you should remove your own reservations before calling this. It can be applied whether the current channel exists or not." ], "request": { "required": [ "layer", - "short_channel_id_dir" + "short_channel_id_dir", + "amount_msat", + "inform" ], "properties": { "layer": { @@ -684,55 +686,56 @@ "The short channel id and direction to apply this change to." ] }, - "minimum_msat": { + "amount_msat": { "type": "msat", "description": [ - "The minumum value which this channel could pass. This or *minimum_msat* must be specified, but not both." + "The amount we used on the channel" ] }, - "maximum_msat": { - "type": "msat", + "inform": { + "type": "string", + "enum": [ + "constrained", + "unconstrained", + "succeeded" + ], "description": [ - "The maximum value which this channel could pass. This or *minimum_msat* must be specified, but not both." + "Whether this payment passed (implying capacity of at least that amount), failed (implying maximum capacity of one msat less), or succeeded (implying capacity has been reduced in this direction)" ] } } }, "response": { "required": [ - "constraint" + "constraints" ], "properties": { - "constraint": { - "type": "object", - "required": [ - "short_channel_id_dir", - "timestamp" - ], - "properties": { - "short_channel_id_dir": { - "type": "short_channel_id_dir", - "description": [ - "The *short_channel_id* and *direction* specified." - ] - }, - "timestamp": { - "type": "u64", - "description": [ - "The UNIX time (seconds since 1970) this was created." - ] - }, - "maximum_msat": { - "type": "msat", - "description": [ - "The *minimum_msat* (if specified)" - ] - }, - "minimum_msat": { - "type": "msat", - "description": [ - "The *maximum_msat* (if specified)" - ] + "constraints": { + "type": "array", + "items": { + "type": "object", + "required": [ + "short_channel_id_dir" + ], + "properties": { + "short_channel_id_dir": { + "type": "short_channel_id_dir", + "description": [ + "The short channel id and direction" + ] + }, + "maximum_msat": { + "type": "msat", + "description": [ + "The maximum value which this channel could pass. This or *minimum_msat* will be present, but not both." + ] + }, + "minimum_msat": { + "type": "msat", + "description": [ + "The minimum value which this channel could pass. This or *minimum_msat* will be present, but not both." + ] + } } } } @@ -1057,7 +1060,7 @@ "description": [ "WARNING: experimental, so API may change.", "", - "The **askrene-reserve** RPC command tells askrene that a path is being attempted. This allows it to take that into account when other *getroutes* calls are made. You should call **askrene-unreserve** after the attempt has completed.", + "The **askrene-reserve** RPC command tells askrene that a path is being attempted. This allows it to take that into account when other *getroutes* calls are made. You should call *askrene-unreserve* after the attempt has completed (and before calling *askrene-inform*).", "", "Note that additional properties inside the *path* elements are ignored, which is useful when used with the result of *getroutes*." ], diff --git a/doc/schemas/lightning-askrene-inform-channel.json b/doc/schemas/lightning-askrene-inform-channel.json index 9d63efe60ce1..3a07bb74f7c7 100644 --- a/doc/schemas/lightning-askrene-inform-channel.json +++ b/doc/schemas/lightning-askrene-inform-channel.json @@ -7,12 +7,14 @@ "description": [ "WARNING: experimental, so API may change.", "", - "The **askrene-inform-channel** RPC command tells askrene about the minimum or maximum current capacity of a given channel. It can be applied whether the current channel exists or not." + "The **askrene-inform-channel** RPC command tells askrene about channels we used so it can update its capacity estimates. For most accuracy, you should remove your own reservations before calling this. It can be applied whether the current channel exists or not." ], "request": { "required": [ "layer", - "short_channel_id_dir" + "short_channel_id_dir", + "amount_msat", + "inform" ], "properties": { "layer": { @@ -27,55 +29,56 @@ "The short channel id and direction to apply this change to." ] }, - "minimum_msat": { + "amount_msat": { "type": "msat", "description": [ - "The minumum value which this channel could pass. This or *minimum_msat* must be specified, but not both." + "The amount we used on the channel" ] }, - "maximum_msat": { - "type": "msat", + "inform": { + "type": "string", + "enum": [ + "constrained", + "unconstrained", + "succeeded" + ], "description": [ - "The maximum value which this channel could pass. This or *minimum_msat* must be specified, but not both." + "Whether this payment passed (implying capacity of at least that amount), failed (implying maximum capacity of one msat less), or succeeded (implying capacity has been reduced in this direction)" ] } } }, "response": { "required": [ - "constraint" + "constraints" ], "properties": { - "constraint": { - "type": "object", - "required": [ - "short_channel_id_dir", - "timestamp" - ], - "properties": { - "short_channel_id_dir": { - "type": "short_channel_id_dir", - "description": [ - "The *short_channel_id* and *direction* specified." - ] - }, - "timestamp": { - "type": "u64", - "description": [ - "The UNIX time (seconds since 1970) this was created." - ] - }, - "maximum_msat": { - "type": "msat", - "description": [ - "The *minimum_msat* (if specified)" - ] - }, - "minimum_msat": { - "type": "msat", - "description": [ - "The *maximum_msat* (if specified)" - ] + "constraints": { + "type": "array", + "items": { + "type": "object", + "required": [ + "short_channel_id_dir" + ], + "properties": { + "short_channel_id_dir": { + "type": "short_channel_id_dir", + "description": [ + "The short channel id and direction" + ] + }, + "maximum_msat": { + "type": "msat", + "description": [ + "The maximum value which this channel could pass. This or *minimum_msat* will be present, but not both." + ] + }, + "minimum_msat": { + "type": "msat", + "description": [ + "The minimum value which this channel could pass. This or *minimum_msat* will be present, but not both." + ] + } } } } diff --git a/doc/schemas/lightning-askrene-reserve.json b/doc/schemas/lightning-askrene-reserve.json index d2790ba5a41a..880eff109dfd 100644 --- a/doc/schemas/lightning-askrene-reserve.json +++ b/doc/schemas/lightning-askrene-reserve.json @@ -7,7 +7,7 @@ "description": [ "WARNING: experimental, so API may change.", "", - "The **askrene-reserve** RPC command tells askrene that a path is being attempted. This allows it to take that into account when other *getroutes* calls are made. You should call **askrene-unreserve** after the attempt has completed.", + "The **askrene-reserve** RPC command tells askrene that a path is being attempted. This allows it to take that into account when other *getroutes* calls are made. You should call *askrene-unreserve* after the attempt has completed (and before calling *askrene-inform*).", "", "Note that additional properties inside the *path* elements are ignored, which is useful when used with the result of *getroutes*." ], diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index d0c0913b6e57..e8629f5351e5 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -782,41 +782,86 @@ static struct command_result *json_askrene_create_channel(struct command *cmd, return command_finished(cmd, response); } +enum inform { + INFORM_CONSTRAINED, + INFORM_UNCONSTRAINED, + INFORM_SUCCEEDED, +}; + +static struct command_result *param_inform(struct command *cmd, + const char *name, + const char *buffer, + const jsmntok_t *tok, + enum inform **inform) +{ + *inform = tal(cmd, enum inform); + if (json_tok_streq(buffer, tok, "constrained")) + **inform = INFORM_CONSTRAINED; + else if (json_tok_streq(buffer, tok, "unconstrained")) + **inform = INFORM_UNCONSTRAINED; + else if (json_tok_streq(buffer, tok, "succeeded")) + **inform = INFORM_SUCCEEDED; + else + command_fail_badparam(cmd, name, buffer, tok, + "must be constrained/unconstrained/succeeded"); + return NULL; +} + static struct command_result *json_askrene_inform_channel(struct command *cmd, const char *buffer, const jsmntok_t *params) { + struct askrene *askrene = get_askrene(cmd->plugin); struct layer *layer; struct short_channel_id_dir *scidd; struct json_stream *response; - struct amount_msat *max, *min; + struct amount_msat *amount; + enum inform *inform; const struct constraint *c; if (!param_check(cmd, buffer, params, p_req("layer", param_known_layer, &layer), p_req("short_channel_id_dir", param_short_channel_id_dir, &scidd), - p_opt("minimum_msat", param_msat, &min), - p_opt("maximum_msat", param_msat, &max), + p_req("amount_msat", param_msat, &amount), + p_req("inform", param_inform, &inform), NULL)) return command_param_failed(); - if ((!min && !max) || (min && max)) { - return command_fail(cmd, JSONRPC2_INVALID_PARAMS, - "Must specify exactly one of maximum_msat/minimum_msat"); - } - - if (command_check_only(cmd)) - return command_check_done(cmd); - - if (min) { - c = layer_update_constraint(layer, scidd, CONSTRAINT_MIN, - time_now().ts.tv_sec, *min); - } else { + switch (*inform) { + case INFORM_CONSTRAINED: + /* It didn't pass, so minimal assumption is that reserve was all used + * then there we were one msat short. */ + if (!amount_msat_sub(amount, *amount, AMOUNT_MSAT(1))) + *amount = AMOUNT_MSAT(0); + if (!reserve_accumulate(askrene->reserved, scidd, amount)) + return command_fail(cmd, JSONRPC2_INVALID_PARAMS, + "Amount overflow with reserves"); + if (command_check_only(cmd)) + return command_check_done(cmd); c = layer_update_constraint(layer, scidd, CONSTRAINT_MAX, - time_now().ts.tv_sec, *max); + time_now().ts.tv_sec, *amount); + goto output; + case INFORM_UNCONSTRAINED: + /* It passed, so the capacity is at least this much (minimal assumption is + * that no reserves were used) */ + if (command_check_only(cmd)) + return command_check_done(cmd); + c = layer_update_constraint(layer, scidd, CONSTRAINT_MIN, + time_now().ts.tv_sec, *amount); + goto output; + case INFORM_SUCCEEDED: + /* FIXME: We could do something useful here! */ + c = NULL; + goto output; } + abort(); + +output: response = jsonrpc_stream_success(cmd); - json_add_constraint(response, "constraint", c, layer); + json_array_start(response, "constraints"); + if (c) + json_add_constraint(response, NULL, c, layer); + json_array_end(response); return command_finished(cmd, response); } diff --git a/plugins/askrene/reserve.c b/plugins/askrene/reserve.c index 56bac106e3be..7c8e49395529 100644 --- a/plugins/askrene/reserve.c +++ b/plugins/askrene/reserve.c @@ -115,6 +115,22 @@ void reserve_sub(const struct reserve_htable *reserved, } } +bool reserve_accumulate(const struct reserve_htable *reserved, + const struct short_channel_id_dir *scidd, + struct amount_msat *amount) +{ + struct reserve *r; + struct reserve_htable_iter rit; + + for (r = reserve_htable_getfirst(reserved, scidd, &rit); + r; + r = reserve_htable_getnext(reserved, scidd, &rit)) { + if (!amount_msat_add(amount, *amount, r->rhop.amount)) + return false; + } + return true; +} + void json_add_reservations(struct json_stream *js, const struct reserve_htable *reserved, const char *fieldname) diff --git a/plugins/askrene/reserve.h b/plugins/askrene/reserve.h index ffffe91c2cb0..103ed11083cd 100644 --- a/plugins/askrene/reserve.h +++ b/plugins/askrene/reserve.h @@ -35,6 +35,11 @@ void reserve_sub(const struct reserve_htable *reserved, const struct short_channel_id_dir *scidd, struct amount_msat *amount); +/* Add any reserves for scidd to this amount */ +bool reserve_accumulate(const struct reserve_htable *reserved, + const struct short_channel_id_dir *scidd, + struct amount_msat *amount); + /* Print out a json object for all reservations */ void json_add_reservations(struct json_stream *js, const struct reserve_htable *reserved, diff --git a/tests/test_askrene.py b/tests/test_askrene.py index 683f548b146a..0b8bbab10074 100644 --- a/tests/test_askrene.py +++ b/tests/test_askrene.py @@ -158,7 +158,8 @@ def test_layers(node_factory): first_timestamp = int(time.time()) l2.rpc.askrene_inform_channel('test_layers', '0x0x1/1', - 100000) + 100000, + 'unconstrained') last_timestamp = int(time.time()) + 1 expect['constraints'].append({'short_channel_id_dir': '0x0x1/1', 'minimum_msat': 100000}) @@ -178,7 +179,8 @@ def test_layers(node_factory): scid12dir = f"{scid12}/{direction(l2.info['id'], l1.info['id'])}" l2.rpc.askrene_inform_channel(layer='test_layers', short_channel_id_dir=scid12dir, - maximum_msat=12341234) + amount_msat=12341235, + inform='constrained') last_timestamp = int(time.time()) + 1 expect['constraints'].append({'short_channel_id_dir': scid12dir, 'timestamp': first_timestamp, @@ -543,7 +545,8 @@ def test_fees_dont_exceed_constraints(node_factory): l1.rpc.askrene_create_layer('test_layers') l1.rpc.askrene_inform_channel(layer='test_layers', short_channel_id_dir=f"{chan['short_channel_id']}/{chan['direction']}", - maximum_msat=max_msat) + amount_msat=max_msat + 1, + inform='constrained') routes = l1.rpc.getroutes(source=nodemap[0], destination=nodemap[3], @@ -687,14 +690,18 @@ def test_limits_fake_gossmap(node_factory, bitcoind): for scidd in spendable: assert scidd in [f"{c['short_channel_id']}/{c['direction']}" for c in l1.rpc.listchannels(source=nodemap[0])['channels']] + # We tell it we could get through amount, but not amount + 1. + # This makes min == max, just like we do for auto.localchans spendable. l1.rpc.askrene_create_layer('localchans') for scidd, amount in spendable.items(): l1.rpc.askrene_inform_channel(layer='localchans', short_channel_id_dir=scidd, - minimum_msat=amount) + amount_msat=amount, + inform='unconstrained') l1.rpc.askrene_inform_channel(layer='localchans', short_channel_id_dir=scidd, - maximum_msat=amount) + amount_msat=amount + 1, + inform='constrained') routes = l1.rpc.getroutes( source=nodemap[0], @@ -751,7 +758,8 @@ def test_max_htlc(node_factory, bitcoind): l1.rpc.askrene_create_layer('removechan2') l1.rpc.askrene_inform_channel(layer='removechan2', short_channel_id_dir='0x1x1/1', - maximum_msat=0) + amount_msat=1, + inform='constrained') # FIXME: Better diag! with pytest.raises(RpcError, match="Could not find route"): From 321ec0875f756c527670ef4ed92cd8403284a2f6 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 08:59:53 +0930 Subject: [PATCH 32/51] askrene: rework constraints to exist in pairs. This is a bit more efficient, but moreover the JSONRPC API is more logical this way. Signed-off-by: Rusty Russell --- contrib/msggen/msggen/schema.json | 8 +- .../lightning-askrene-inform-channel.json | 4 +- doc/schemas/lightning-askrene-listlayers.json | 4 +- plugins/askrene/askrene.c | 35 ++++---- plugins/askrene/askrene.h | 7 ++ plugins/askrene/layer.c | 86 ++++++++----------- plugins/askrene/layer.h | 26 ++---- plugins/askrene/reserve.c | 6 -- tests/test_askrene.py | 2 + 9 files changed, 75 insertions(+), 103 deletions(-) diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index 95db709fad26..900e785fb140 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -727,13 +727,13 @@ "maximum_msat": { "type": "msat", "description": [ - "The maximum value which this channel could pass. This or *minimum_msat* will be present, but not both." + "The maximum value which this channel could pass." ] }, "minimum_msat": { "type": "msat", "description": [ - "The minimum value which this channel could pass. This or *minimum_msat* will be present, but not both." + "The minimum value which this channel could pass." ] } } @@ -909,13 +909,13 @@ "maximum_msat": { "type": "msat", "description": [ - "The maximum value which this channel could pass. This or *minimum_msat* will be present, but not both." + "The maximum value which this channel could pass." ] }, "minimum_msat": { "type": "msat", "description": [ - "The minimum value which this channel could pass. This or *minimum_msat* will be present, but not both." + "The minimum value which this channel could pass." ] } } diff --git a/doc/schemas/lightning-askrene-inform-channel.json b/doc/schemas/lightning-askrene-inform-channel.json index 3a07bb74f7c7..b12de57fef3a 100644 --- a/doc/schemas/lightning-askrene-inform-channel.json +++ b/doc/schemas/lightning-askrene-inform-channel.json @@ -70,13 +70,13 @@ "maximum_msat": { "type": "msat", "description": [ - "The maximum value which this channel could pass. This or *minimum_msat* will be present, but not both." + "The maximum value which this channel could pass." ] }, "minimum_msat": { "type": "msat", "description": [ - "The minimum value which this channel could pass. This or *minimum_msat* will be present, but not both." + "The minimum value which this channel could pass." ] } } diff --git a/doc/schemas/lightning-askrene-listlayers.json b/doc/schemas/lightning-askrene-listlayers.json index 7b6eed74d029..f3c3f6b89dd7 100644 --- a/doc/schemas/lightning-askrene-listlayers.json +++ b/doc/schemas/lightning-askrene-listlayers.json @@ -152,13 +152,13 @@ "maximum_msat": { "type": "msat", "description": [ - "The maximum value which this channel could pass. This or *minimum_msat* will be present, but not both." + "The maximum value which this channel could pass." ] }, "minimum_msat": { "type": "msat", "description": [ - "The minimum value which this channel could pass. This or *minimum_msat* will be present, but not both." + "The minimum value which this channel could pass." ] } } diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index e8629f5351e5..f3a0e5c8a4db 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -35,12 +35,6 @@ per_htlc_cost_key(const struct per_htlc_cost *phc) return &phc->scidd; } -static size_t hash_scidd(const struct short_channel_id_dir *scidd) -{ - /* scids cost money to generate, so simple hash works here */ - return (scidd->scid.u64 >> 32) ^ (scidd->scid.u64 << 1) ^ scidd->dir; -} - static inline bool per_htlc_cost_eq_key(const struct per_htlc_cost *phc, const struct short_channel_id_dir *scidd) { @@ -462,15 +456,17 @@ void get_constraints(const struct route_query *rq, scidd.dir = dir; *max = AMOUNT_MSAT(-1ULL); - /* Look through layers for any constraints */ + /* Look through layers for any constraints (might be dummy + * ones, for created channels!) */ for (size_t i = 0; i < tal_count(rq->layers); i++) { - const struct constraint *cmin, *cmax; - cmin = layer_find_constraint(rq->layers[i], &scidd, CONSTRAINT_MIN); - if (cmin && amount_msat_greater(cmin->limit, *min)) - *min = cmin->limit; - cmax = layer_find_constraint(rq->layers[i], &scidd, CONSTRAINT_MAX); - if (cmax && amount_msat_less(cmax->limit, *max)) - *max = cmax->limit; + const struct constraint *c; + c = layer_find_constraint(rq->layers[i], &scidd); + if (c) { + if (amount_msat_greater(c->min, *min)) + *min = c->min; + if (amount_msat_less(c->max, *max)) + *max = c->max; + } } /* Might be here because it's reserved, but capacity is normal. */ @@ -617,8 +613,7 @@ static void add_localchan(struct gossmap_localmods *mods, } /* Known capacity on local channels (ts = max) */ - layer_update_constraint(info->local_layer, scidd, CONSTRAINT_MIN, UINT64_MAX, spendable); - layer_update_constraint(info->local_layer, scidd, CONSTRAINT_MAX, UINT64_MAX, spendable); + layer_update_constraint(info->local_layer, scidd, UINT64_MAX, &spendable, &spendable); } static struct command_result * @@ -838,16 +833,16 @@ static struct command_result *json_askrene_inform_channel(struct command *cmd, "Amount overflow with reserves"); if (command_check_only(cmd)) return command_check_done(cmd); - c = layer_update_constraint(layer, scidd, CONSTRAINT_MAX, - time_now().ts.tv_sec, *amount); + c = layer_update_constraint(layer, scidd, time_now().ts.tv_sec, + NULL, amount); goto output; case INFORM_UNCONSTRAINED: /* It passed, so the capacity is at least this much (minimal assumption is * that no reserves were used) */ if (command_check_only(cmd)) return command_check_done(cmd); - c = layer_update_constraint(layer, scidd, CONSTRAINT_MIN, - time_now().ts.tv_sec, *amount); + c = layer_update_constraint(layer, scidd, time_now().ts.tv_sec, + amount, NULL); goto output; case INFORM_SUCCEEDED: /* FIXME: We could do something useful here! */ diff --git a/plugins/askrene/askrene.h b/plugins/askrene/askrene.h index 29c2271242fd..5ae9a4511ace 100644 --- a/plugins/askrene/askrene.h +++ b/plugins/askrene/askrene.h @@ -74,4 +74,11 @@ static inline struct askrene *get_askrene(struct plugin *plugin) return plugin_get_data(plugin, struct askrene); } +/* Convenience routine for hash tables */ +static inline size_t hash_scidd(const struct short_channel_id_dir *scidd) +{ + /* scids cost money to generate, so simple hash works here */ + return (scidd->scid.u64 >> 32) ^ (scidd->scid.u64 >> 16) ^ (scidd->scid.u64 << 1) ^ scidd->dir; +} + #endif /* LIGHTNING_PLUGINS_ASKRENE_ASKRENE_H */ diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index 2ae5b59c1276..2761694769ba 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -25,27 +25,20 @@ struct local_channel { } half[2]; }; -static const struct constraint_key * -constraint_key(const struct constraint *c) +static const struct short_channel_id_dir * +constraint_scidd(const struct constraint *c) { - return &c->key; + return &c->scidd; } -static size_t hash_constraint_key(const struct constraint_key *key) +static inline bool constraint_eq_scidd(const struct constraint *c, + const struct short_channel_id_dir *scidd) { - /* scids cost money to generate, so simple hash works here */ - return (key->scidd.scid.u64 >> 32) ^ (key->scidd.scid.u64) - ^ (key->scidd.dir << 1) ^ (key->type); + return short_channel_id_dir_eq(scidd, &c->scidd); } -static inline bool constraint_eq_key(const struct constraint *c, - const struct constraint_key *key) -{ - return short_channel_id_dir_eq(&key->scidd, &c->key.scidd) && key->type == c->key.type; -} - -HTABLE_DEFINE_TYPE(struct constraint, constraint_key, hash_constraint_key, - constraint_eq_key, constraint_hash); +HTABLE_DEFINE_TYPE(struct constraint, constraint_scidd, hash_scidd, + constraint_eq_scidd, constraint_hash); static struct short_channel_id local_channel_scid(const struct local_channel *lc) @@ -208,7 +201,7 @@ void layer_update_local_channel(struct layer *layer, * lookups. You can tell it's a fake one by the timestamp. */ scidd.scid = scid; scidd.dir = dir; - layer_update_constraint(layer, &scidd, CONSTRAINT_MAX, UINT64_MAX, capacity); + layer_update_constraint(layer, &scidd, UINT64_MAX, NULL, &capacity); } struct amount_msat local_channel_capacity(const struct local_channel *lc) @@ -223,48 +216,41 @@ const struct local_channel *layer_find_local_channel(const struct layer *layer, } static struct constraint *layer_find_constraint_nonconst(const struct layer *layer, - const struct short_channel_id_dir *scidd, - enum constraint_type type) + const struct short_channel_id_dir *scidd) { - struct constraint_key k = { *scidd, type }; - return constraint_hash_get(layer->constraints, &k); + return constraint_hash_get(layer->constraints, scidd); } /* Public one returns const */ const struct constraint *layer_find_constraint(const struct layer *layer, - const struct short_channel_id_dir *scidd, - enum constraint_type type) + const struct short_channel_id_dir *scidd) { - return layer_find_constraint_nonconst(layer, scidd, type); + return layer_find_constraint_nonconst(layer, scidd); } const struct constraint *layer_update_constraint(struct layer *layer, const struct short_channel_id_dir *scidd, - enum constraint_type type, u64 timestamp, - struct amount_msat limit) + const struct amount_msat *min, + const struct amount_msat *max) { - struct constraint *c = layer_find_constraint_nonconst(layer, scidd, type); + struct constraint *c = layer_find_constraint_nonconst(layer, scidd); if (!c) { c = tal(layer, struct constraint); - c->key.scidd = *scidd; - c->key.type = type; - c->limit = limit; + c->scidd = *scidd; + c->min = AMOUNT_MSAT(0); + c->max = AMOUNT_MSAT(UINT64_MAX); constraint_hash_add(layer->constraints, c); - } else { - switch (type) { - case CONSTRAINT_MIN: - /* Increase minimum? */ - if (amount_msat_greater(limit, c->limit)) - c->limit = limit; - break; - case CONSTRAINT_MAX: - /* Decrease maximum? */ - if (amount_msat_less(limit, c->limit)) - c->limit = limit; - break; - } } + + /* Increase minimum? */ + if (min && amount_msat_greater(*min, c->min)) + c->min = *min; + + /* Decrease maximum? */ + if (max && amount_msat_less(*max, c->max)) + c->max = *max; + c->timestamp = timestamp; return c; } @@ -279,7 +265,7 @@ void layer_clear_overridden_capacities(const struct layer *layer, for (con = constraint_hash_first(layer->constraints, &conit); con; con = constraint_hash_next(layer->constraints, &conit)) { - struct gossmap_chan *c = gossmap_find_chan(gossmap, &con->key.scidd.scid); + struct gossmap_chan *c = gossmap_find_chan(gossmap, &con->scidd.scid); size_t idx; if (!c) continue; @@ -425,16 +411,12 @@ void json_add_constraint(struct json_stream *js, json_object_start(js, fieldname); if (layer) json_add_string(js, "layer", layer->name); - json_add_short_channel_id_dir(js, "short_channel_id_dir", c->key.scidd); + json_add_short_channel_id_dir(js, "short_channel_id_dir", c->scidd); json_add_u64(js, "timestamp", c->timestamp); - switch (c->key.type) { - case CONSTRAINT_MIN: - json_add_amount_msat(js, "minimum_msat", c->limit); - break; - case CONSTRAINT_MAX: - json_add_amount_msat(js, "maximum_msat", c->limit); - break; - } + if (!amount_msat_is_zero(c->min)) + json_add_amount_msat(js, "minimum_msat", c->min); + if (!amount_msat_eq(c->max, AMOUNT_MSAT(UINT64_MAX))) + json_add_amount_msat(js, "maximum_msat", c->max); json_object_end(js); } diff --git a/plugins/askrene/layer.h b/plugins/askrene/layer.h index 8867ba701138..70fbbcf114c9 100644 --- a/plugins/askrene/layer.h +++ b/plugins/askrene/layer.h @@ -17,22 +17,15 @@ struct askrene; struct layer; struct json_stream; -enum constraint_type { - CONSTRAINT_MIN, - CONSTRAINT_MAX, -}; - -struct constraint_key { - struct short_channel_id_dir scidd; - enum constraint_type type; -}; - /* A constraint reflects something we learned about a channel */ struct constraint { - struct constraint_key key; + struct short_channel_id_dir scidd; /* Time this constraint was last updated */ u64 timestamp; - struct amount_msat limit; + /* Non-zero means set */ + struct amount_msat min; + /* Non-0xFFFFF.... means set */ + struct amount_msat max; }; /* Look up a layer by name. */ @@ -80,15 +73,14 @@ void layer_clear_overridden_capacities(const struct layer *layer, /* Find a constraint in a layer. */ const struct constraint *layer_find_constraint(const struct layer *layer, - const struct short_channel_id_dir *scidd, - enum constraint_type type); + const struct short_channel_id_dir *scidd); -/* Add/update a constraint on a layer. */ +/* Add/update one or more constraints on a layer. */ const struct constraint *layer_update_constraint(struct layer *layer, const struct short_channel_id_dir *scidd, - enum constraint_type type, u64 timestamp, - struct amount_msat limit); + const struct amount_msat *min, + const struct amount_msat *max); /* Add local channels from this layer. zero_cost means set fees and delay to 0. */ void layer_add_localmods(const struct layer *layer, diff --git a/plugins/askrene/reserve.c b/plugins/askrene/reserve.c index 7c8e49395529..a58bc6d5f24e 100644 --- a/plugins/askrene/reserve.c +++ b/plugins/askrene/reserve.c @@ -25,12 +25,6 @@ reserve_scidd(const struct reserve *r) return &r->rhop.scidd; } -static size_t hash_scidd(const struct short_channel_id_dir *scidd) -{ - /* scids cost money to generate, so simple hash works here */ - return (scidd->scid.u64 >> 32) ^ (scidd->scid.u64 >> 16) ^ (scidd->scid.u64 << 1) ^ scidd->dir; -} - static bool reserve_eq_scidd(const struct reserve *r, const struct short_channel_id_dir *scidd) { diff --git a/tests/test_askrene.py b/tests/test_askrene.py index 0b8bbab10074..7924c02e1b3f 100644 --- a/tests/test_askrene.py +++ b/tests/test_askrene.py @@ -161,7 +161,9 @@ def test_layers(node_factory): 100000, 'unconstrained') last_timestamp = int(time.time()) + 1 + # Maximum for created channels is the real capacity. expect['constraints'].append({'short_channel_id_dir': '0x0x1/1', + 'maximum_msat': 1000000000, 'minimum_msat': 100000}) # Check timestamp first. listlayers = l2.rpc.askrene_listlayers('test_layers') From fcc0d2bad82e9423f2a9ec6562a604c44c96f0d5 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:00:53 +0930 Subject: [PATCH 33/51] askrene: remove unused parameter in layer_add_localmods. Signed-off-by: Rusty Russell --- plugins/askrene/askrene.c | 2 +- plugins/askrene/layer.c | 13 +++---------- plugins/askrene/layer.h | 3 +-- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index f3a0e5c8a4db..f98c78d82632 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -293,7 +293,7 @@ static const char *get_routes(const tal_t *ctx, tal_arr_expand(&rq->layers, l); /* FIXME: Implement localmods_merge, and cache this in layer? */ - layer_add_localmods(l, rq->gossmap, false, localmods); + layer_add_localmods(l, rq->gossmap, localmods); /* Clear any entries in capacities array if we * override them (incl local channels) */ diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index 2761694769ba..fa7a372f62e3 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -305,7 +305,6 @@ void layer_add_disabled_channel(struct layer *layer, const struct short_channel_ void layer_add_localmods(const struct layer *layer, const struct gossmap *gossmap, - bool zero_cost, struct gossmap_localmods *localmods) { const struct local_channel *lc; @@ -345,20 +344,14 @@ void layer_add_localmods(const struct layer *layer, gossmap_local_addchan(localmods, &lc->n1, &lc->n2, lc->scid, NULL); for (size_t i = 0; i < ARRAY_SIZE(lc->half); i++) { - u64 base, propfee, delay; if (!lc->half[i].enabled) continue; - if (zero_cost) { - base = propfee = delay = 0; - } else { - base = lc->half[i].base_fee.millisatoshis; /* Raw: gossmap */ - propfee = lc->half[i].proportional_fee; - delay = lc->half[i].delay; - } gossmap_local_updatechan(localmods, lc->scid, lc->half[i].htlc_min, lc->half[i].htlc_max, - base, propfee, delay, + lc->half[i].base_fee.millisatoshis, /* Raw: gossmap */ + lc->half[i].proportional_fee, + lc->half[i].delay, true, i); } diff --git a/plugins/askrene/layer.h b/plugins/askrene/layer.h index 70fbbcf114c9..be5c4cddcfee 100644 --- a/plugins/askrene/layer.h +++ b/plugins/askrene/layer.h @@ -82,10 +82,9 @@ const struct constraint *layer_update_constraint(struct layer *layer, const struct amount_msat *min, const struct amount_msat *max); -/* Add local channels from this layer. zero_cost means set fees and delay to 0. */ +/* Add local channels from this layer. */ void layer_add_localmods(const struct layer *layer, const struct gossmap *gossmap, - bool zero_cost, struct gossmap_localmods *localmods); /* Remove constraints older then cutoff: returns num removed. */ From 3253623785195f99bd1241a152dc5e95cf52d89b Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:01:53 +0930 Subject: [PATCH 34/51] gossmods_from_listpeerchannels: use correct type for cltv_delta. Doesn't matter now, but will with the next change where we want to pass a pointer. Signed-off-by: Rusty Russell --- common/gossmods_listpeerchannels.c | 4 ++-- common/gossmods_listpeerchannels.h | 6 +++--- plugins/askrene/askrene.c | 2 +- plugins/renepay/mods.c | 2 +- plugins/test/run-route-calc.c | 4 ++-- plugins/test/run-route-overlong.c | 4 ++-- plugins/topology.c | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/common/gossmods_listpeerchannels.c b/common/gossmods_listpeerchannels.c index 73864241302e..52b30c8bc9f5 100644 --- a/common/gossmods_listpeerchannels.c +++ b/common/gossmods_listpeerchannels.c @@ -14,7 +14,7 @@ void gossmod_add_localchan(struct gossmap_localmods *mods, struct amount_msat spendable, struct amount_msat fee_base, u32 fee_proportional, - u32 cltv_delta, + u16 cltv_delta, bool enabled, const char *buf UNUSED, const jsmntok_t *chantok UNUSED, @@ -51,7 +51,7 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, struct amount_msat sr_able, struct amount_msat fee_base, u32 fee_proportional, - u32 cltv_delta, + u16 cltv_delta, bool enabled, const char *buf, const jsmntok_t *chantok, diff --git a/common/gossmods_listpeerchannels.h b/common/gossmods_listpeerchannels.h index a9847c882645..37272a43439c 100644 --- a/common/gossmods_listpeerchannels.h +++ b/common/gossmods_listpeerchannels.h @@ -35,7 +35,7 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx, struct amount_msat spendable, struct amount_msat fee_base, u32 fee_proportional, - u32 cltv_delta, + u16 cltv_delta, bool enabled, const char *buf_, const jsmntok_t *chantok, @@ -54,7 +54,7 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx, struct amount_msat, \ struct amount_msat, \ u32, \ - u32, \ + u16, \ bool, \ const char *, \ const jsmntok_t *), \ @@ -70,7 +70,7 @@ void gossmod_add_localchan(struct gossmap_localmods *mods, struct amount_msat spendable, struct amount_msat fee_base, u32 fee_proportional, - u32 cltv_delta, + u16 cltv_delta, bool enabled, const char *buf UNUSED, const jsmntok_t *chantok UNUSED, diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index f98c78d82632..2b34f1cf996a 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -559,7 +559,7 @@ static void add_localchan(struct gossmap_localmods *mods, struct amount_msat spendable, struct amount_msat fee_base, u32 fee_proportional, - u32 cltv_delta, + u16 cltv_delta, bool enabled, const char *buf, const jsmntok_t *chantok, diff --git a/plugins/renepay/mods.c b/plugins/renepay/mods.c index 49b420f66e9b..11dca910d5f7 100644 --- a/plugins/renepay/mods.c +++ b/plugins/renepay/mods.c @@ -389,7 +389,7 @@ static void gossmod_cb(struct gossmap_localmods *mods, struct amount_msat spendable, struct amount_msat fee_base, u32 fee_proportional, - u32 cltv_delta, + u16 cltv_delta, bool enabled, const char *buf, const jsmntok_t *chantok, diff --git a/plugins/test/run-route-calc.c b/plugins/test/run-route-calc.c index da73c25a9a8b..194984128a69 100644 --- a/plugins/test/run-route-calc.c +++ b/plugins/test/run-route-calc.c @@ -47,7 +47,7 @@ void gossmod_add_localchan(struct gossmap_localmods *mods UNNEEDED, struct amount_msat spendable UNNEEDED, struct amount_msat fee_base UNNEEDED, u32 fee_proportional UNNEEDED, - u32 cltv_delta UNNEEDED, + u16 cltv_delta UNNEEDED, bool enabled UNNEEDED, const char *buf UNUSED UNNEEDED, const jsmntok_t *chantok UNUSED UNNEEDED, @@ -68,7 +68,7 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx UNNEE struct amount_msat spendable UNNEEDED, struct amount_msat fee_base UNNEEDED, u32 fee_proportional UNNEEDED, - u32 cltv_delta UNNEEDED, + u16 cltv_delta UNNEEDED, bool enabled UNNEEDED, const char *buf_ UNNEEDED, const jsmntok_t *chantok UNNEEDED, diff --git a/plugins/test/run-route-overlong.c b/plugins/test/run-route-overlong.c index 4a7d94b3f7d2..ce9d7a3e1715 100644 --- a/plugins/test/run-route-overlong.c +++ b/plugins/test/run-route-overlong.c @@ -44,7 +44,7 @@ void gossmod_add_localchan(struct gossmap_localmods *mods UNNEEDED, struct amount_msat spendable UNNEEDED, struct amount_msat fee_base UNNEEDED, u32 fee_proportional UNNEEDED, - u32 cltv_delta UNNEEDED, + u16 cltv_delta UNNEEDED, bool enabled UNNEEDED, const char *buf UNUSED UNNEEDED, const jsmntok_t *chantok UNUSED UNNEEDED, @@ -65,7 +65,7 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx UNNEE struct amount_msat spendable UNNEEDED, struct amount_msat fee_base UNNEEDED, u32 fee_proportional UNNEEDED, - u32 cltv_delta UNNEEDED, + u16 cltv_delta UNNEEDED, bool enabled UNNEEDED, const char *buf_ UNNEEDED, const jsmntok_t *chantok UNNEEDED, diff --git a/plugins/topology.c b/plugins/topology.c index 972853e3826b..755fa84e3dd7 100644 --- a/plugins/topology.c +++ b/plugins/topology.c @@ -367,7 +367,7 @@ static void gossmod_add_unknown_localchan(struct gossmap_localmods *mods, struct amount_msat spendable, struct amount_msat fee_base, u32 fee_proportional, - u32 cltv_delta, + u16 cltv_delta, bool enabled, const char *buf UNUSED, const jsmntok_t *chantok UNUSED, From 154ad585ec7c60a10c214c675e633b057dbe2b0b Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:02:53 +0930 Subject: [PATCH 35/51] pytest: enhance test_getroutes_auto_sourcefree with same case *without* auto.sourcefree. Signed-off-by: Rusty Russell --- tests/test_askrene.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/test_askrene.py b/tests/test_askrene.py index 7924c02e1b3f..40edd3cced78 100644 --- a/tests/test_askrene.py +++ b/tests/test_askrene.py @@ -426,6 +426,21 @@ def test_getroutes_auto_sourcefree(node_factory): # Set up l1 with this as the gossip_store l1 = node_factory.get_node(gossip_store_file=gsfile.name) + # Without sourcefree: + assert l1.rpc.getroutes(source=nodemap[0], + destination=nodemap[1], + amount_msat=1000, + layers=[], + maxfee_msat=1000, + final_cltv=99) == {'probability_ppm': 999999, + 'routes': [{'probability_ppm': 999999, + 'final_cltv': 99, + 'amount_msat': 1000, + 'path': [{'short_channel_id_dir': '0x1x0/1', + 'next_node_id': nodemap[1], + 'amount_msat': 1010, + 'delay': 105}]}]} + # Start easy assert l1.rpc.getroutes(source=nodemap[0], destination=nodemap[1], From bb3663c4a0056d307c31d6cbf9c4d7cfc7069d38 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:03:53 +0930 Subject: [PATCH 36/51] askrene: ignore disabled channels for min-cost-flow. We also set htlc_max to 0 when disabling, so the tests worked, but this is correct. Signed-off-by: Rusty Russell --- plugins/askrene/mcf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/askrene/mcf.c b/plugins/askrene/mcf.c index 8a72c6a229fe..aaa914b03afe 100644 --- a/plugins/askrene/mcf.c +++ b/plugins/askrene/mcf.c @@ -626,7 +626,7 @@ init_linear_network(const tal_t *ctx, const struct pay_parameters *params) const struct gossmap_chan *c = gossmap_nth_chan(gossmap, node, j, &half); - if (!gossmap_chan_set(c, half)) + if (!gossmap_chan_set(c, half) || !c->half[half].enabled) continue; const u32 chan_id = gossmap_chan_idx(gossmap, c); From a65e325b136a5cb05ea82c10375f0f8e926ac28f Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:04:53 +0930 Subject: [PATCH 37/51] gossmap: implement partial updates. This is actually what we want in several places: to only override one or two fields in a channel_update. We add a gossmap_local_setchan() with a similar API to the old gossmap_local_updatechan(), for the case where we want to set every field. Signed-off-by: Rusty Russell --- common/gossmap.c | 189 ++++++++++++++++++------- common/gossmap.h | 30 ++-- common/gossmods_listpeerchannels.c | 12 +- common/test/run-gossmap_local.c | 24 ++-- common/test/run-route-infloop.c | 19 +-- plugins/askrene/askrene.c | 45 +++--- plugins/askrene/layer.c | 52 ++++--- plugins/establish_onion_path.c | 14 +- plugins/renepay/mods.c | 30 ++-- plugins/renepay/test/run-mcf-diamond.c | 52 +++---- plugins/renepay/test/run-mcf.c | 12 +- 11 files changed, 281 insertions(+), 198 deletions(-) diff --git a/common/gossmap.c b/common/gossmap.c index 5427c5e1cd4d..8b7e0de35370 100644 --- a/common/gossmap.c +++ b/common/gossmap.c @@ -760,24 +760,34 @@ static void destroy_map(struct gossmap *map) } /* Local modifications. We only expect a few, so we use a simple - * array. */ + * array. If this changes, use a hashtable and a storage area for all + * those pointers to avoid dynamic allocation overhead! */ struct localmod { struct short_channel_id scid; /* If this is an entirely-local channel, here's its offset. * Otherwise, 0xFFFFFFFF. */ u32 local_off; - /* Are updates in either direction set? */ - bool updates_set[2]; - /* hc[n] defined if updates_set[n]. */ - struct half_chan hc[2]; - /* orig[n] defined if updates_set[n] and local_off == 0xFFFFFFFF */ + /* Non-NULL values mean change existing ones */ + struct localmod_changes { + const bool *enabled; + const fp16_t *htlc_min, *htlc_max; + const u32 *base_fee, *proportional_fee; + const u16 *delay; + } changes[2]; + + /* orig[n] defined if local_off == 0xFFFFFFFF */ struct half_chan orig[2]; /* Original update offsets */ u32 orig_cupdate_off[2]; }; +static bool localmod_is_local_chan(const struct localmod *mod) +{ + return mod->local_off != 0xFFFFFFFF; +} + struct gossmap_localmods { struct localmod *mods; /* This is the local array to be used by the gossmap */ @@ -840,7 +850,7 @@ bool gossmap_local_addchan(struct gossmap_localmods *localmods, return gossmap_local_addchan(localmods, n2, n1, scid, features); mod.scid = scid; - mod.updates_set[0] = mod.updates_set[1] = false; + memset(&mod.changes, 0, sizeof(mod.changes)); /* We create fake local channel_announcement. */ off = insert_local_space(localmods, @@ -885,53 +895,100 @@ bool gossmap_local_addchan(struct gossmap_localmods *localmods, return true; }; -/* Insert a local-only channel_update. */ +/* Insert a local-only channel_update: false if can't represent. */ bool gossmap_local_updatechan(struct gossmap_localmods *localmods, - struct short_channel_id scid, - struct amount_msat htlc_min, - struct amount_msat htlc_max, - u32 base_fee, - u32 proportional_fee, - u16 delay, - bool enabled, - int dir) + const struct short_channel_id_dir *scidd, + const bool *enabled, + const struct amount_msat *htlc_min, + const struct amount_msat *htlc_max, + const struct amount_msat *base_fee, + const u32 *proportional_fee, + const u16 *delay) { struct localmod *mod; + struct localmod_changes *lc; + struct half_chan test; + + /* Check fit before making any changes. */ + if (base_fee) { + test.base_fee = base_fee->millisatoshis /* Raw: localmod */; + if (!amount_msat_eq(amount_msat(test.base_fee), *base_fee)) + return false; + } + if (proportional_fee) { + test.proportional_fee = *proportional_fee; + if (test.proportional_fee != *proportional_fee) + return false; + } + if (delay) { + test.delay = *delay; + if (test.delay != *delay) + return false; + } - mod = find_localmod(localmods, scid); + mod = find_localmod(localmods, scidd->scid); if (!mod) { /* Create new reference to (presumably) existing channel. */ size_t nmods = tal_count(localmods->mods); tal_resize(&localmods->mods, nmods + 1); mod = &localmods->mods[nmods]; - mod->scid = scid; - mod->updates_set[0] = mod->updates_set[1] = false; + mod->scid = scidd->scid; + memset(&mod->changes, 0, sizeof(mod->changes)); mod->local_off = 0xFFFFFFFF; } - assert(dir == 0 || dir == 1); - mod->updates_set[dir] = true; - mod->hc[dir].enabled = enabled; - /* node_idx needs to be set once we're in the gossmap. */ - mod->hc[dir].htlc_min - = u64_to_fp16(htlc_min.millisatoshis, /* Raw: to fp16 */ - false); - mod->hc[dir].htlc_max - = u64_to_fp16(htlc_max.millisatoshis, /* Raw: to fp16 */ - true); - mod->hc[dir].base_fee = base_fee; - mod->hc[dir].proportional_fee = proportional_fee; - mod->hc[dir].delay = delay; - - /* Check they fit */ - if (mod->hc[dir].base_fee != base_fee - || mod->hc[dir].proportional_fee != proportional_fee - || mod->hc[dir].delay != delay) - return false; + lc = &mod->changes[scidd->dir]; + if (enabled) { + tal_free(lc->enabled); + lc->enabled = tal_dup(localmods, bool, enabled); + } + if (htlc_min) { + fp16_t min = u64_to_fp16(htlc_min->millisatoshis, /* Raw: to fp16 */ + false); + tal_free(lc->htlc_min); + lc->htlc_min = tal_dup(localmods, fp16_t, &min); + } + if (htlc_max) { + fp16_t max = u64_to_fp16(htlc_max->millisatoshis, /* Raw: to fp16 */ + true); + tal_free(lc->htlc_max); + lc->htlc_max = tal_dup(localmods, fp16_t, &max); + } + if (base_fee) { + u32 base_as_u32 = base_fee->millisatoshis; /* Raw: localmod */ + tal_free(lc->base_fee); + lc->base_fee = tal_dup(localmods, u32, &base_as_u32); + } + if (proportional_fee) { + tal_free(lc->proportional_fee); + lc->proportional_fee = tal_dup(localmods, u32, proportional_fee); + } + if (delay) { + tal_free(lc->delay); + lc->delay = tal_dup(localmods, u16, delay); + } return true; } +bool gossmap_local_setchan(struct gossmap_localmods *localmods, + struct short_channel_id scid, + struct amount_msat htlc_min, + struct amount_msat htlc_max, + struct amount_msat base_fee, + u32 proportional_fee, + u16 delay, + bool enabled, + int dir) +{ + struct short_channel_id_dir scidd = {scid, dir}; + return gossmap_local_updatechan(localmods, &scidd, + &enabled, + &htlc_min, &htlc_max, + &base_fee, &proportional_fee, + &delay); +} + /* Apply localmods to this map */ void gossmap_apply_localmods(struct gossmap *map, struct gossmap_localmods *localmods) @@ -949,22 +1006,56 @@ void gossmap_apply_localmods(struct gossmap *map, chan = gossmap_find_chan(map, &mod->scid); /* If it doesn't exist, are we supposed to create a local one? */ if (!chan) { - if (mod->local_off == 0xFFFFFFFF) + if (!localmod_is_local_chan(mod)) continue; /* Create new channel, pointing into local. */ chan = add_channel(map, map->map_size + mod->local_off, 0); } - /* Save old, overwrite (keep nodeidx) */ + /* Save old, update any fields they wanted to change */ for (size_t h = 0; h < 2; h++) { - if (!mod->updates_set[h]) - continue; + bool was_set, all_changed; + const struct localmod_changes *c = &mod->changes[h]; + /* Save existing versions */ mod->orig[h] = chan->half[h]; mod->orig_cupdate_off[h] = chan->cupdate_off[h]; - chan->half[h] = mod->hc[h]; - chan->half[h].nodeidx = mod->orig[h].nodeidx; - chan->cupdate_off[h] = 0xFFFFFFFF; + + was_set = gossmap_chan_set(chan, h); + + /* Override specified fields. */ + all_changed = true; + if (c->enabled) + chan->half[h].enabled = *c->enabled; + else + all_changed = false; + if (c->htlc_min) + chan->half[h].htlc_min = *c->htlc_min; + else + all_changed = false; + if (c->htlc_max) + chan->half[h].htlc_max = *c->htlc_max; + else + all_changed = false; + if (c->base_fee) + chan->half[h].base_fee = *c->base_fee; + else + all_changed = false; + if (c->proportional_fee) + chan->half[h].proportional_fee = *c->proportional_fee; + else + all_changed = false; + if (c->delay) + chan->half[h].delay = *c->delay; + else + all_changed = false; + + /* Is it all defined? + * This controls gossmap_chan_set(chan, h); */ + if (was_set || all_changed) + chan->cupdate_off[h] = 0xFFFFFFFF; + else + chan->cupdate_off[h] = 0; } } } @@ -988,15 +1079,9 @@ void gossmap_remove_localmods(struct gossmap *map, if (chan->cann_off >= map->map_size) { gossmap_remove_chan(map, chan); } else { - /* Restore (keep nodeidx). */ + /* Restore. */ for (size_t h = 0; h < 2; h++) { - u32 nodeidx; - if (!mod->updates_set[h]) - continue; - - nodeidx = chan->half[h].nodeidx; chan->half[h] = mod->orig[h]; - chan->half[h].nodeidx = nodeidx; chan->cupdate_off[h] = mod->orig_cupdate_off[h]; } } diff --git a/common/gossmap.h b/common/gossmap.h index ade384f16465..ad45ec19ee5b 100644 --- a/common/gossmap.h +++ b/common/gossmap.h @@ -99,17 +99,27 @@ bool gossmap_local_addchan(struct gossmap_localmods *localmods, /* Create a local-only channel_update: can apply to lcoal-only or * normal channels. Returns false if amounts don't fit in our - * internal representation (implies channel unusable anyway). */ + * internal representation (implies channel unusable anyway). Any + * NULL arguments mean "leave as is". */ bool gossmap_local_updatechan(struct gossmap_localmods *localmods, - struct short_channel_id scid, - struct amount_msat htlc_min, - struct amount_msat htlc_max, - u32 base_fee, - u32 proportional_fee, - u16 delay, - bool enabled, - int dir) - NO_NULL_ARGS; + const struct short_channel_id_dir *scidd, + const bool *enabled, + const struct amount_msat *htlc_min, + const struct amount_msat *htlc_max, + const struct amount_msat *base_fee, + const u32 *proportional_fee, + const u16 *delay); + +/* Convenience version which sets everything (older API) */ +bool gossmap_local_setchan(struct gossmap_localmods *localmods, + struct short_channel_id scid, + struct amount_msat htlc_min, + struct amount_msat htlc_max, + struct amount_msat base_fee, + u32 proportional_fee, + u16 delay, + bool enabled, + int dir); /* Apply localmods to this map */ void gossmap_apply_localmods(struct gossmap *map, diff --git a/common/gossmods_listpeerchannels.c b/common/gossmods_listpeerchannels.c index 52b30c8bc9f5..d54d292d5dbe 100644 --- a/common/gossmods_listpeerchannels.c +++ b/common/gossmods_listpeerchannels.c @@ -28,12 +28,12 @@ void gossmod_add_localchan(struct gossmap_localmods *mods, /* FIXME: features? */ gossmap_local_addchan(mods, self, peer, scidd->scid, NULL); - gossmap_local_updatechan(mods, scidd->scid, min, max, - fee_base.millisatoshis, /* Raw: gossmap */ - fee_proportional, - cltv_delta, - enabled, - scidd->dir); + gossmap_local_updatechan(mods, scidd, + &enabled, + &min, &max, + &fee_base, + &fee_proportional, + &cltv_delta); } struct gossmap_localmods * diff --git a/common/test/run-gossmap_local.c b/common/test/run-gossmap_local.c index 376e4025e12f..5ae8d47d4fdb 100644 --- a/common/test/run-gossmap_local.c +++ b/common/test/run-gossmap_local.c @@ -485,25 +485,25 @@ int main(int argc, char *argv[]) assert(!gossmap_find_node(map, &l4)); /* Now update it both local, and an existing one. */ - gossmap_local_updatechan(mods, scid_local, - AMOUNT_MSAT(1), - AMOUNT_MSAT(100000), - 2, 3, 4, true, 0); + gossmap_local_setchan(mods, scid_local, + AMOUNT_MSAT(1), + AMOUNT_MSAT(100000), + AMOUNT_MSAT(2), 3, 4, true, 0); /* Adding an existing channel is a noop. */ assert(gossmap_local_addchan(mods, &l2, &l3, scid23, NULL)); - gossmap_local_updatechan(mods, scid23, - AMOUNT_MSAT(99), - AMOUNT_MSAT(100), - 101, 102, 103, true, 0); + gossmap_local_setchan(mods, scid23, + AMOUNT_MSAT(99), + AMOUNT_MSAT(100), + AMOUNT_MSAT(101), 102, 103, true, 0); /* We can "update" a channel which doesn't exist, and it's a noop */ scid_nonexisting.u64 = 1; - gossmap_local_updatechan(mods, scid_nonexisting, - AMOUNT_MSAT(1), - AMOUNT_MSAT(100000), - 2, 3, 4, false, 0); + gossmap_local_setchan(mods, scid_nonexisting, + AMOUNT_MSAT(1), + AMOUNT_MSAT(100000), + AMOUNT_MSAT(2), 3, 4, false, 0); gossmap_apply_localmods(map, mods); chan = gossmap_find_chan(map, &scid_local); diff --git a/common/test/run-route-infloop.c b/common/test/run-route-infloop.c index f4c3f9071f7a..0bd3cb04abc6 100644 --- a/common/test/run-route-infloop.c +++ b/common/test/run-route-infloop.c @@ -138,17 +138,18 @@ int main(int argc, char *argv[]) /* We overlay our own channels as zero fee & delay, since we don't pay fees */ struct gossmap_localmods *localmods = gossmap_localmods_new(gossmap); for (size_t i = 0; i < me->num_chans; i++) { - int dir; - struct short_channel_id scid; - struct gossmap_chan *c = gossmap_nth_chan(gossmap, me, i, &dir); + struct short_channel_id_dir scidd; + const struct amount_msat base_fee = AMOUNT_MSAT(0); + const u32 proportional_fee = 0; + struct gossmap_chan *c = gossmap_nth_chan(gossmap, me, i, &scidd.dir); - if (!c->half[dir].enabled) + if (!c->half[scidd.dir].enabled) continue; - scid = gossmap_chan_scid(gossmap, c); - assert(gossmap_local_updatechan(localmods, scid, - amount_msat(fp16_to_u64(c->half[dir].htlc_min)), - amount_msat(fp16_to_u64(c->half[dir].htlc_max)), - 0, 0, 0, true, dir)); + scidd.scid = gossmap_chan_scid(gossmap, c); + assert(gossmap_local_updatechan(localmods, &scidd, + NULL, NULL, NULL, + &base_fee, &proportional_fee, + NULL)); } gossmap_apply_localmods(gossmap, localmods); diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 2b34f1cf996a..c97586201994 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -183,11 +183,11 @@ static void add_free_source(struct plugin *plugin, /* We apply existing localmods, save up mods we want, then append * them: it's not safe to modify localmods while they are applied! */ const struct gossmap_node *srcnode; - struct mod { - struct short_channel_id_dir scidd; - fp16_t htlc_min, htlc_max; - bool enabled; - } *mods = tal_arr(tmpctx, struct mod, 0); + const struct amount_msat zero_base_fee = AMOUNT_MSAT(0); + const u16 zero_delay = 0; + const u32 zero_prop_fee = 0; + struct short_channel_id_dir *scidds + = tal_arr(tmpctx, struct short_channel_id_dir, 0); gossmap_apply_localmods(gossmap, localmods); @@ -195,35 +195,24 @@ static void add_free_source(struct plugin *plugin, srcnode = gossmap_find_node(gossmap, source); for (size_t i = 0; srcnode && i < srcnode->num_chans; i++) { + struct short_channel_id_dir scidd; const struct gossmap_chan *c; - const struct half_chan *h; - struct mod mod; - - c = gossmap_nth_chan(gossmap, srcnode, i, &mod.scidd.dir); - h = &c->half[mod.scidd.dir]; - mod.scidd.scid = gossmap_chan_scid(gossmap, c); - mod.htlc_min = h->htlc_min; - mod.htlc_max = h->htlc_max; - mod.enabled = h->enabled; - tal_arr_expand(&mods, mod); + c = gossmap_nth_chan(gossmap, srcnode, i, &scidd.dir); + scidd.scid = gossmap_chan_scid(gossmap, c); + tal_arr_expand(&scidds, scidd); } gossmap_remove_localmods(gossmap, localmods); - /* Now we can update localmods */ - for (size_t i = 0; i < tal_count(mods); i++) { + /* Now we can update localmods: we only change fee levels and delay */ + for (size_t i = 0; i < tal_count(scidds); i++) { if (!gossmap_local_updatechan(localmods, - mods[i].scidd.scid, - /* Keep min and max */ - /* FIXME: lossy conversion! */ - amount_msat(fp16_to_u64(mods[i].htlc_min)), - amount_msat(fp16_to_u64(mods[i].htlc_max)), - 0, 0, 0, - /* Keep enabled flag */ - mods[i].enabled, - mods[i].scidd.dir)) - plugin_err(plugin, "Could not zero fee on %s", - fmt_short_channel_id_dir(tmpctx, &mods[i].scidd)); + &scidds[i], + NULL, NULL, NULL, + &zero_base_fee, &zero_prop_fee, + &zero_delay)) + plugin_err(plugin, "Could not zero fee/delay on %s", + fmt_short_channel_id_dir(tmpctx, &scidds[i])); } } diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index fa7a372f62e3..1e21370c3c78 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -319,22 +319,19 @@ void layer_add_localmods(const struct layer *layer, if (!node) continue; for (size_t n = 0; n < node->num_chans; n++) { - struct short_channel_id scid; + struct short_channel_id_dir scidd; struct gossmap_chan *c; - int dir; - c = gossmap_nth_chan(gossmap, node, n, &dir); - scid = gossmap_chan_scid(gossmap, c); + bool enabled = false; + struct amount_msat zero = AMOUNT_MSAT(0); + c = gossmap_nth_chan(gossmap, node, n, &scidd.dir); + scidd.scid = gossmap_chan_scid(gossmap, c); /* Disabled zero-capacity on incoming */ gossmap_local_updatechan(localmods, - scid, - AMOUNT_MSAT(0), - AMOUNT_MSAT(0), - 0, - 0, - 0, - false, - !dir); + &scidd, + &enabled, + &zero, &zero, + NULL, NULL, NULL); } } @@ -344,30 +341,29 @@ void layer_add_localmods(const struct layer *layer, gossmap_local_addchan(localmods, &lc->n1, &lc->n2, lc->scid, NULL); for (size_t i = 0; i < ARRAY_SIZE(lc->half); i++) { + struct short_channel_id_dir scidd; + bool enabled = true; if (!lc->half[i].enabled) continue; - gossmap_local_updatechan(localmods, lc->scid, - lc->half[i].htlc_min, - lc->half[i].htlc_max, - lc->half[i].base_fee.millisatoshis, /* Raw: gossmap */ - lc->half[i].proportional_fee, - lc->half[i].delay, - true, - i); + scidd.scid = lc->scid; + scidd.dir = i; + gossmap_local_updatechan(localmods, &scidd, + &enabled, + &lc->half[i].htlc_min, + &lc->half[i].htlc_max, + &lc->half[i].base_fee, + &lc->half[i].proportional_fee, + &lc->half[i].delay); } } /* Now disable any channels they asked us to */ for (size_t i = 0; i < tal_count(layer->disabled_channels); i++) { + bool enabled = false; gossmap_local_updatechan(localmods, - layer->disabled_channels[i].scid, - AMOUNT_MSAT(0), - AMOUNT_MSAT(0), - 0, - 0, - 0, - false, - layer->disabled_channels[i].dir); + &layer->disabled_channels[i], + &enabled, + NULL, NULL, NULL, NULL, NULL); } } diff --git a/plugins/establish_onion_path.c b/plugins/establish_onion_path.c index 9906a55ea28f..1b5cb732076b 100644 --- a/plugins/establish_onion_path.c +++ b/plugins/establish_onion_path.c @@ -95,7 +95,8 @@ gossmods_from_listpeers(const tal_t *ctx, struct node_id peer_id; const char *err; u8 *features = NULL; - struct short_channel_id fake_scid; + struct short_channel_id_dir fake_scidd; + bool enabled = true; err = json_scan(tmpctx, buf, peer, "{connected:%," @@ -112,13 +113,12 @@ gossmods_from_listpeers(const tal_t *ctx, continue; /* Add a fake channel */ - fake_scid.u64 = i; + fake_scidd.scid.u64 = i; + fake_scidd.dir = node_id_idx(self, &peer_id); - gossmap_local_addchan(mods, self, &peer_id, fake_scid, NULL); - gossmap_local_updatechan(mods, fake_scid, - AMOUNT_MSAT(0), - AMOUNT_MSAT(0), - 0, 0, 0, true, node_id_idx(self, &peer_id)); + gossmap_local_addchan(mods, self, &peer_id, fake_scidd.scid, NULL); + gossmap_local_updatechan(mods, &fake_scidd, &enabled, + NULL, NULL, NULL, NULL, NULL); } return mods; } diff --git a/plugins/renepay/mods.c b/plugins/renepay/mods.c index 11dca910d5f7..b132d5231362 100644 --- a/plugins/renepay/mods.c +++ b/plugins/renepay/mods.c @@ -409,13 +409,10 @@ static void gossmod_cb(struct gossmap_localmods *mods, /* FIXME: features? */ gossmap_local_addchan(mods, self, peer, scidd->scid, NULL); - - gossmap_local_updatechan(mods, scidd->scid, min, max, - fee_base.millisatoshis, /* Raw: gossmap */ - fee_proportional, - cltv_delta, - enabled, - scidd->dir); + gossmap_local_updatechan(mods, scidd, + &enabled, + &min, &max, + &fee_base, &fee_proportional, &cltv_delta); /* Is it disabled? */ if (!enabled) @@ -516,13 +513,19 @@ static void add_hintchan(struct payment *payment, const struct node_id *src, assert(payment); assert(payment->local_gossmods); - int dir = node_id_idx(src, dst); - const char *errmsg; const struct chan_extra *ce = uncertainty_find_channel(pay_plugin->uncertainty, scid); if (!ce) { + struct short_channel_id_dir scidd; + /* We assume any HTLC is allowed */ + struct amount_msat htlc_min = AMOUNT_MSAT(0), htlc_max = MAX_CAPACITY; + struct amount_msat fee_base = amount_msat(fee_base_msat); + bool enabled = true; + scidd.scid = scid; + scidd.dir = node_id_idx(src, dst); + /* This channel is not public, we don't know his capacity One possible solution is set the capacity to MAX_CAP and the state to [0,MAX_CAP]. Alternatively we could @@ -542,11 +545,10 @@ static void add_hintchan(struct payment *payment, const struct node_id *src, if (!gossmap_local_addchan(payment->local_gossmods, src, dst, scid, NULL) || !gossmap_local_updatechan( - payment->local_gossmods, scid, - /* We assume any HTLC is allowed */ - AMOUNT_MSAT(0), MAX_CAPACITY, fee_base_msat, - fee_proportional_millionths, cltv_expiry_delta, true, - dir)) { + payment->local_gossmods, &scidd, + &enabled, &htlc_min, &htlc_max, + &fee_base, &fee_proportional_millionths, + &cltv_expiry_delta)) { errmsg = tal_fmt( tmpctx, "Failed to update scid=%s in the local_gossmods.", diff --git a/plugins/renepay/test/run-mcf-diamond.c b/plugins/renepay/test/run-mcf-diamond.c index 57e90db1dca2..85ceb6888346 100644 --- a/plugins/renepay/test/run-mcf-diamond.c +++ b/plugins/renepay/test/run-mcf-diamond.c @@ -134,35 +134,35 @@ int main(int argc, char *argv[]) /* 1->2->4 has capacity 10k sat, 1->3->4 has capacity 5k sat (lower fee!) */ assert(gossmap_local_addchan(mods, &l1, &l2, scid12, NULL)); - assert(gossmap_local_updatechan(mods, scid12, - /*htlc_min=*/ AMOUNT_MSAT(0), - /*htlc_max=*/ AMOUNT_MSAT(10000000), - /*base_fee=*/ 0, - /*ppm_fee =*/ 1001, - /* delay =*/ 5, - /* enabled=*/ true, - /* dir =*/ 0)); + assert(gossmap_local_setchan(mods, scid12, + /*htlc_min=*/ AMOUNT_MSAT(0), + /*htlc_max=*/ AMOUNT_MSAT(10000000), + /*base_fee=*/ AMOUNT_MSAT(0), + /*ppm_fee =*/ 1001, + /* delay =*/ 5, + /* enabled=*/ true, + /* dir =*/ 0)); assert(gossmap_local_addchan(mods, &l2, &l4, scid24, NULL)); - assert(gossmap_local_updatechan(mods, scid24, - AMOUNT_MSAT(0), - AMOUNT_MSAT(10000000), - 0, 1002, 5, - true, - 0)); + assert(gossmap_local_setchan(mods, scid24, + AMOUNT_MSAT(0), + AMOUNT_MSAT(10000000), + AMOUNT_MSAT(0), 1002, 5, + true, + 0)); assert(gossmap_local_addchan(mods, &l1, &l3, scid13, NULL)); - assert(gossmap_local_updatechan(mods, scid13, - AMOUNT_MSAT(0), - AMOUNT_MSAT(5000000), - 0, 503, 5, - true, - 0)); + assert(gossmap_local_setchan(mods, scid13, + AMOUNT_MSAT(0), + AMOUNT_MSAT(5000000), + AMOUNT_MSAT(0), 503, 5, + true, + 0)); assert(gossmap_local_addchan(mods, &l3, &l4, scid34, NULL)); - assert(gossmap_local_updatechan(mods, scid34, - AMOUNT_MSAT(0), - AMOUNT_MSAT(5000000), - 0, 504, 5, - true, - 0)); + assert(gossmap_local_setchan(mods, scid34, + AMOUNT_MSAT(0), + AMOUNT_MSAT(5000000), + AMOUNT_MSAT(0), 504, 5, + true, + 0)); gossmap_apply_localmods(gossmap, mods); chan_extra_map = tal(tmpctx, struct chan_extra_map); diff --git a/plugins/renepay/test/run-mcf.c b/plugins/renepay/test/run-mcf.c index 79c291fe92c4..510c12bf726b 100644 --- a/plugins/renepay/test/run-mcf.c +++ b/plugins/renepay/test/run-mcf.c @@ -481,12 +481,12 @@ int main(int argc, char *argv[]) /* 400,000sat channel from 1->3, basefee 0, ppm 1000, delay 5 */ assert(gossmap_local_addchan(mods, &l1, &l3, scid13, NULL)); - assert(gossmap_local_updatechan(mods, scid13, - AMOUNT_MSAT(0), - AMOUNT_MSAT(400000000), - 0, 1000, 5, - true, - 0)); + assert(gossmap_local_setchan(mods, scid13, + AMOUNT_MSAT(0), + AMOUNT_MSAT(400000000), + AMOUNT_MSAT(0), 1000, 5, + true, + 0)); /* Apply changes, check they work. */ gossmap_apply_localmods(gossmap, mods); From a60063e763661ab05a39932005308954ceb31ecc Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:05:53 +0930 Subject: [PATCH 38/51] common/gossmods_listpeerchannels: include channel capacity in callback. Signed-off-by: Rusty Russell --- common/gossmods_listpeerchannels.c | 12 +++++++++--- common/gossmods_listpeerchannels.h | 3 +++ plugins/askrene/askrene.c | 3 ++- plugins/renepay/mods.c | 1 + plugins/test/run-route-calc.c | 2 ++ plugins/test/run-route-overlong.c | 2 ++ plugins/topology.c | 4 +++- 7 files changed, 22 insertions(+), 5 deletions(-) diff --git a/common/gossmods_listpeerchannels.c b/common/gossmods_listpeerchannels.c index d54d292d5dbe..4ecbe536506e 100644 --- a/common/gossmods_listpeerchannels.c +++ b/common/gossmods_listpeerchannels.c @@ -9,6 +9,7 @@ void gossmod_add_localchan(struct gossmap_localmods *mods, const struct node_id *self, const struct node_id *peer, const struct short_channel_id_dir *scidd, + struct amount_msat capacity_msat, struct amount_msat htlcmin, struct amount_msat htlcmax, struct amount_msat spendable, @@ -46,6 +47,7 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, const struct node_id *self, const struct node_id *peer, const struct short_channel_id_dir *scidd, + struct amount_msat capacity_msat, struct amount_msat htlcmin, struct amount_msat htlcmax, struct amount_msat sr_able, @@ -68,7 +70,7 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, struct short_channel_id alias; bool enabled; struct node_id dst; - struct amount_msat spendable, receivable, fee_base[NUM_SIDES], htlc_min[NUM_SIDES], htlc_max[NUM_SIDES]; + struct amount_msat capacity_msat, spendable, receivable, fee_base[NUM_SIDES], htlc_min[NUM_SIDES], htlc_max[NUM_SIDES]; u32 fee_proportional[NUM_SIDES], cltv_delta[NUM_SIDES]; const char *state, *err; @@ -87,6 +89,7 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, "peer_connected:%," "state:%," "peer_id:%," + "total_msat?:%," "updates?:{" "local" ":{fee_base_msat:%," @@ -108,6 +111,7 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, JSON_SCAN(json_to_bool, &enabled), JSON_SCAN_TAL(tmpctx, json_strdup, &state), JSON_SCAN(json_to_node_id, &dst), + JSON_SCAN(json_to_msat, &capacity_msat), JSON_SCAN(json_to_msat, &fee_base[LOCAL]), JSON_SCAN(json_to_u32, &fee_proportional[LOCAL]), JSON_SCAN(json_to_msat, &htlc_min[LOCAL]), @@ -148,7 +152,8 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, } /* We add both directions */ - cb(mods, self, &dst, &scidd, htlc_min[LOCAL], htlc_max[LOCAL], + cb(mods, self, &dst, &scidd, capacity_msat, + htlc_min[LOCAL], htlc_max[LOCAL], spendable, fee_base[LOCAL], fee_proportional[LOCAL], cltv_delta[LOCAL], enabled, buf, channel, cbarg); @@ -158,7 +163,8 @@ gossmods_from_listpeerchannels_(const tal_t *ctx, scidd.dir = !scidd.dir; - cb(mods, self, &dst, &scidd, htlc_min[REMOTE], htlc_max[REMOTE], + cb(mods, self, &dst, &scidd, capacity_msat, + htlc_min[REMOTE], htlc_max[REMOTE], receivable, fee_base[REMOTE], fee_proportional[REMOTE], cltv_delta[REMOTE], enabled, buf, channel, cbarg); } diff --git a/common/gossmods_listpeerchannels.h b/common/gossmods_listpeerchannels.h index 37272a43439c..22eafdd3d143 100644 --- a/common/gossmods_listpeerchannels.h +++ b/common/gossmods_listpeerchannels.h @@ -30,6 +30,7 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx, const struct node_id *self_, const struct node_id *peer, const struct short_channel_id_dir *scidd, + struct amount_msat capacity_msat, struct amount_msat htlcmin, struct amount_msat htlcmax, struct amount_msat spendable, @@ -53,6 +54,7 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx, struct amount_msat, \ struct amount_msat, \ struct amount_msat, \ + struct amount_msat, \ u32, \ u16, \ bool, \ @@ -65,6 +67,7 @@ void gossmod_add_localchan(struct gossmap_localmods *mods, const struct node_id *self, const struct node_id *peer, const struct short_channel_id_dir *scidd, + struct amount_msat capacity_msat, struct amount_msat htlcmin, struct amount_msat htlcmax, struct amount_msat spendable, diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index c97586201994..3bb915ce063a 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -543,6 +543,7 @@ static void add_localchan(struct gossmap_localmods *mods, const struct node_id *self, const struct node_id *peer, const struct short_channel_id_dir *scidd, + struct amount_msat capacity_msat, struct amount_msat htlcmin, struct amount_msat htlcmax, struct amount_msat spendable, @@ -558,7 +559,7 @@ static void add_localchan(struct gossmap_localmods *mods, const char *opener; const char *err; - gossmod_add_localchan(mods, self, peer, scidd, htlcmin, htlcmax, + gossmod_add_localchan(mods, self, peer, scidd, capacity_msat, htlcmin, htlcmax, spendable, fee_base, fee_proportional, cltv_delta, enabled, buf, chantok, info->local_layer); diff --git a/plugins/renepay/mods.c b/plugins/renepay/mods.c index b132d5231362..91ac7adf6a30 100644 --- a/plugins/renepay/mods.c +++ b/plugins/renepay/mods.c @@ -384,6 +384,7 @@ static void gossmod_cb(struct gossmap_localmods *mods, const struct node_id *self, const struct node_id *peer, const struct short_channel_id_dir *scidd, + struct amount_msat capacity_msat, struct amount_msat htlcmin, struct amount_msat htlcmax, struct amount_msat spendable, diff --git a/plugins/test/run-route-calc.c b/plugins/test/run-route-calc.c index 194984128a69..7a8d23a18fbf 100644 --- a/plugins/test/run-route-calc.c +++ b/plugins/test/run-route-calc.c @@ -42,6 +42,7 @@ void gossmod_add_localchan(struct gossmap_localmods *mods UNNEEDED, const struct node_id *self UNNEEDED, const struct node_id *peer UNNEEDED, const struct short_channel_id_dir *scidd UNNEEDED, + struct amount_msat capacity_msat UNNEEDED, struct amount_msat htlcmin UNNEEDED, struct amount_msat htlcmax UNNEEDED, struct amount_msat spendable UNNEEDED, @@ -63,6 +64,7 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx UNNEE const struct node_id *self_ UNNEEDED, const struct node_id *peer UNNEEDED, const struct short_channel_id_dir *scidd UNNEEDED, + struct amount_msat capacity_msat UNNEEDED, struct amount_msat htlcmin UNNEEDED, struct amount_msat htlcmax UNNEEDED, struct amount_msat spendable UNNEEDED, diff --git a/plugins/test/run-route-overlong.c b/plugins/test/run-route-overlong.c index ce9d7a3e1715..5aa1bb093d77 100644 --- a/plugins/test/run-route-overlong.c +++ b/plugins/test/run-route-overlong.c @@ -39,6 +39,7 @@ void gossmod_add_localchan(struct gossmap_localmods *mods UNNEEDED, const struct node_id *self UNNEEDED, const struct node_id *peer UNNEEDED, const struct short_channel_id_dir *scidd UNNEEDED, + struct amount_msat capacity_msat UNNEEDED, struct amount_msat htlcmin UNNEEDED, struct amount_msat htlcmax UNNEEDED, struct amount_msat spendable UNNEEDED, @@ -60,6 +61,7 @@ struct gossmap_localmods *gossmods_from_listpeerchannels_(const tal_t *ctx UNNEE const struct node_id *self_ UNNEEDED, const struct node_id *peer UNNEEDED, const struct short_channel_id_dir *scidd UNNEEDED, + struct amount_msat capacity_msat UNNEEDED, struct amount_msat htlcmin UNNEEDED, struct amount_msat htlcmax UNNEEDED, struct amount_msat spendable UNNEEDED, diff --git a/plugins/topology.c b/plugins/topology.c index 755fa84e3dd7..b3da4c885e76 100644 --- a/plugins/topology.c +++ b/plugins/topology.c @@ -362,6 +362,7 @@ static void gossmod_add_unknown_localchan(struct gossmap_localmods *mods, const struct node_id *self, const struct node_id *peer, const struct short_channel_id_dir *scidd, + struct amount_msat capacity_msat, struct amount_msat min, struct amount_msat max, struct amount_msat spendable, @@ -376,7 +377,8 @@ static void gossmod_add_unknown_localchan(struct gossmap_localmods *mods, if (gossmap_find_chan(gossmap, &scidd->scid)) return; - gossmod_add_localchan(mods, self, peer, scidd, min, max, spendable, + gossmod_add_localchan(mods, self, peer, scidd, capacity_msat, + min, max, spendable, fee_base, fee_proportional, cltv_delta, enabled, buf, chantok, gossmap); } From 5052f0763f1d1121ba271b1738b705ca5e43ff2b Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:06:53 +0930 Subject: [PATCH 39/51] gossmap: keep capacity for locally-generated channels as well. It was weird not to have a capacity associated with localmods channels, and fixing it has some very nice side effects. Now the gossmap_chan_get_capacity() call never fails (we prevented reading of channels from gossmap in the partially-written case already), so we make it return the capacity. We do this in msat, because that's what all the callers want. Signed-off-by: Rusty Russell --- common/gossmap.c | 54 ++++--- common/gossmap.h | 8 +- common/gossmods_listpeerchannels.c | 3 +- common/test/run-gossmap_canned.c | 7 +- common/test/run-gossmap_local.c | 20 +-- common/test/run-route-infloop.c | 14 +- devtools/gossmap-compress.c | 15 +- plugins/askrene/askrene.c | 29 +--- plugins/askrene/layer.c | 3 +- plugins/establish_onion_path.c | 3 +- plugins/libplugin-pay.c | 5 +- plugins/renepay/chan_extra.c | 9 +- plugins/renepay/mods.c | 5 +- plugins/renepay/test/common.h | 9 +- plugins/renepay/test/run-bottleneck.c | 27 ++-- plugins/renepay/test/run-mcf-diamond.c | 8 +- plugins/renepay/test/run-mcf.c | 4 +- plugins/renepay/test/run-missingcapacity.c | 179 --------------------- plugins/renepay/test/run-testflow.c | 42 ++--- plugins/renepay/uncertainty.c | 6 +- plugins/test/Makefile | 3 +- plugins/test/run-route-overlong.c | 3 + plugins/topology.c | 8 +- 23 files changed, 132 insertions(+), 332 deletions(-) delete mode 100644 plugins/renepay/test/run-missingcapacity.c diff --git a/common/gossmap.c b/common/gossmap.c index 8b7e0de35370..990cb421cbca 100644 --- a/common/gossmap.c +++ b/common/gossmap.c @@ -474,8 +474,8 @@ static struct gossmap_chan *add_channel(struct gossmap *map, return NULL; } - /* gossipd writes WIRE_GOSSIP_STORE_CHANNEL_AMOUNT after this (not for - * local channels), so ignore channel_announcement until that appears */ + /* gossipd writes WIRE_GOSSIP_STORE_CHANNEL_AMOUNT after this, + * so ignore channel_announcement until that appears */ if (msglen && (map->map_size < cannounce_off + msglen + sizeof(struct gossip_hdr) + sizeof(u16) + sizeof(u64))) return NULL; @@ -828,6 +828,7 @@ bool gossmap_local_addchan(struct gossmap_localmods *localmods, const struct node_id *n1, const struct node_id *n2, struct short_channel_id scid, + struct amount_msat capacity, const u8 *features) { be16 be16; @@ -847,15 +848,23 @@ bool gossmap_local_addchan(struct gossmap_localmods *localmods, * compressed keys sorted in ascending lexicographic order. */ if (node_id_cmp(n1, n2) > 0) - return gossmap_local_addchan(localmods, n2, n1, scid, features); + return gossmap_local_addchan(localmods, n2, n1, scid, capacity, + features); mod.scid = scid; memset(&mod.changes, 0, sizeof(mod.changes)); - /* We create fake local channel_announcement. */ + /* We create amount, then fake local channel_announcement */ off = insert_local_space(localmods, - 2 + 64 * 4 + 2 + tal_bytelen(features) + 8 + 2 + 64 * 4 + 2 + tal_bytelen(features) + 32 + 8 + 33 + 33); + + /* Write amount */ + be64 = be64_to_cpu(capacity.millisatoshis / 1000 /* Raw: gossmap */); + memcpy(localmods->local + off, &be64, sizeof(be64)); + off += sizeof(be64); + + /* From here is a channel-announcment, with only the fields we use */ mod.local_off = off; /* Set type to be kosher. */ @@ -1224,34 +1233,39 @@ bool gossmap_chan_is_dying(const struct gossmap *map, return ghdr.flags & CPU_TO_BE16(GOSSIP_STORE_DYING_BIT); } -bool gossmap_chan_get_capacity(const struct gossmap *map, - const struct gossmap_chan *c, - struct amount_sat *amount) +struct amount_msat gossmap_chan_get_capacity(const struct gossmap *map, + const struct gossmap_chan *c) { struct gossip_hdr ghdr; size_t off; u16 type; + struct amount_sat sat; + struct amount_msat msat; - /* Fail for local channels */ - if (gossmap_chan_is_localmod(map, c)) - return false; + if (gossmap_chan_is_localmod(map, c)) { + /* Amount is *before* c->cann_off */ + off = c->cann_off - sizeof(u64); + goto get_amount; + } /* Skip over this record to next; expect a gossip_store_channel_amount */ off = c->cann_off - sizeof(ghdr); map_copy(map, off, &ghdr, sizeof(ghdr)); off += sizeof(ghdr) + be16_to_cpu(ghdr.len); - /* Partial write, this can happen. */ - if (off + sizeof(ghdr) + sizeof(u16) + sizeof(u64) > map->map_size) - return false; - - /* Get type of next field. */ + /* We don't allow loading a channel unless it has capacity field! */ type = map_be16(map, off + sizeof(ghdr)); - if (type != WIRE_GOSSIP_STORE_CHANNEL_AMOUNT) - return false; + assert(type == WIRE_GOSSIP_STORE_CHANNEL_AMOUNT); - *amount = amount_sat(map_be64(map, off + sizeof(ghdr) + sizeof(be16))); - return true; + off += sizeof(ghdr) + sizeof(be16); + +get_amount: + /* Shouldn't overflow */ + sat = amount_sat(map_be64(map, off)); + if (!amount_sat_to_msat(&msat, sat)) + errx(1, "invalid capacity %s", fmt_amount_sat(tmpctx, sat)); + + return msat; } struct gossmap_chan *gossmap_nth_chan(const struct gossmap *map, diff --git a/common/gossmap.h b/common/gossmap.h index ad45ec19ee5b..6a4a5308a924 100644 --- a/common/gossmap.h +++ b/common/gossmap.h @@ -94,6 +94,7 @@ bool gossmap_local_addchan(struct gossmap_localmods *localmods, const struct node_id *n1, const struct node_id *n2, struct short_channel_id scid, + struct amount_msat capacity, const u8 *features) NON_NULL_ARGS(1,2,3); @@ -171,10 +172,9 @@ static inline bool gossmap_chan_set(const struct gossmap_chan *chan, int dir) return chan->cupdate_off[dir] != 0; } -/* Return capacity if it's known (fails on a local mod) */ -bool gossmap_chan_get_capacity(const struct gossmap *map, - const struct gossmap_chan *c, - struct amount_sat *amount); +/* Return capacity (in msat). */ +struct amount_msat gossmap_chan_get_capacity(const struct gossmap *map, + const struct gossmap_chan *c); /* Get the announcement msg which created this chan (NULL for localmods) */ u8 *gossmap_chan_get_announce(const tal_t *ctx, diff --git a/common/gossmods_listpeerchannels.c b/common/gossmods_listpeerchannels.c index 4ecbe536506e..df0b97133132 100644 --- a/common/gossmods_listpeerchannels.c +++ b/common/gossmods_listpeerchannels.c @@ -27,7 +27,8 @@ void gossmod_add_localchan(struct gossmap_localmods *mods, max = spendable; /* FIXME: features? */ - gossmap_local_addchan(mods, self, peer, scidd->scid, NULL); + gossmap_local_addchan(mods, self, peer, scidd->scid, capacity_msat, + NULL); gossmap_local_updatechan(mods, scidd, &enabled, diff --git a/common/test/run-gossmap_canned.c b/common/test/run-gossmap_canned.c index 1b267f65737d..e7f0662284cd 100644 --- a/common/test/run-gossmap_canned.c +++ b/common/test/run-gossmap_canned.c @@ -314,7 +314,7 @@ int main(int argc, char *argv[]) struct gossmap *map; struct node_id l1, l2; struct short_channel_id scid12; - struct amount_sat capacity; + struct amount_msat capacity; u32 timestamp, fee_base_msat, fee_proportional_millionths; u8 message_flags, channel_flags; struct amount_msat htlc_minimum_msat, htlc_maximum_msat; @@ -337,9 +337,8 @@ int main(int argc, char *argv[]) assert(short_channel_id_from_str("110x1x0", 7, &scid12)); assert(gossmap_find_chan(map, &scid12)); assert(!gossmap_chan_is_localmod(map, gossmap_find_chan(map, &scid12))); - assert(gossmap_chan_get_capacity(map, gossmap_find_chan(map, &scid12), - &capacity)); - assert(amount_sat_eq(capacity, AMOUNT_SAT(1000000))); + capacity = gossmap_chan_get_capacity(map, gossmap_find_chan(map, &scid12)); + assert(amount_msat_eq_sat(capacity, AMOUNT_SAT(1000000))); gossmap_chan_get_update_details(map, gossmap_find_chan(map, &scid12), 0, diff --git a/common/test/run-gossmap_local.c b/common/test/run-gossmap_local.c index 5ae8d47d4fdb..b583495c0439 100644 --- a/common/test/run-gossmap_local.c +++ b/common/test/run-gossmap_local.c @@ -336,7 +336,7 @@ int main(int argc, char *argv[]) struct short_channel_id scid23, scid12, scid_local, scid_nonexisting; struct gossmap_chan *chan; struct gossmap_localmods *mods; - struct amount_sat capacity; + struct amount_msat capacity; u32 timestamp, fee_base_msat, fee_proportional_millionths; u8 message_flags, channel_flags; struct amount_msat htlc_minimum_msat, htlc_maximum_msat; @@ -365,12 +365,10 @@ int main(int argc, char *argv[]) assert(!gossmap_chan_is_localmod(map, gossmap_find_chan(map, &scid23))); assert(gossmap_find_chan(map, &scid12)); assert(!gossmap_chan_is_localmod(map, gossmap_find_chan(map, &scid12))); - assert(gossmap_chan_get_capacity(map, gossmap_find_chan(map, &scid23), - &capacity)); - assert(amount_sat_eq(capacity, AMOUNT_SAT(1000000))); - assert(gossmap_chan_get_capacity(map, gossmap_find_chan(map, &scid12), - &capacity)); - assert(amount_sat_eq(capacity, AMOUNT_SAT(1000000))); + capacity = gossmap_chan_get_capacity(map, gossmap_find_chan(map, &scid23)); + assert(amount_msat_eq_sat(capacity, AMOUNT_SAT(1000000))); + capacity = gossmap_chan_get_capacity(map, gossmap_find_chan(map, &scid12)); + assert(amount_msat_eq_sat(capacity, AMOUNT_SAT(1000000))); gossmap_chan_get_update_details(map, gossmap_find_chan(map, &scid23), 0, @@ -467,7 +465,7 @@ int main(int argc, char *argv[]) assert(node_id_from_hexstr("0382ce59ebf18be7d84677c2e35f23294b9992ceca95491fcf8a56c6cb2d9de199", 66, &l4)); assert(short_channel_id_from_str("111x1x1", 7, &scid_local)); - assert(gossmap_local_addchan(mods, &l1, &l4, scid_local, NULL)); + assert(gossmap_local_addchan(mods, &l1, &l4, scid_local, AMOUNT_MSAT(100000), NULL)); /* Apply changes, check they work. */ gossmap_apply_localmods(map, mods); @@ -478,6 +476,10 @@ int main(int argc, char *argv[]) assert(!gossmap_chan_set(chan, 0)); assert(!gossmap_chan_set(chan, 1)); + /* Capacity is correct */ + assert(amount_msat_eq(gossmap_chan_get_capacity(map, chan), + AMOUNT_MSAT(100000))); + /* Remove, no longer can find. */ gossmap_remove_localmods(map, mods); @@ -491,7 +493,7 @@ int main(int argc, char *argv[]) AMOUNT_MSAT(2), 3, 4, true, 0); /* Adding an existing channel is a noop. */ - assert(gossmap_local_addchan(mods, &l2, &l3, scid23, NULL)); + assert(gossmap_local_addchan(mods, &l2, &l3, scid23, AMOUNT_MSAT(100000), NULL)); gossmap_local_setchan(mods, scid23, AMOUNT_MSAT(99), diff --git a/common/test/run-route-infloop.c b/common/test/run-route-infloop.c index 0bd3cb04abc6..bec98e232486 100644 --- a/common/test/run-route-infloop.c +++ b/common/test/run-route-infloop.c @@ -56,15 +56,13 @@ static double capacity_bias(const struct gossmap *map, int dir, struct amount_msat amount) { - struct amount_sat capacity; + struct amount_msat msat; u64 amtmsat = amount.millisatoshis; /* Raw: lengthy math */ double capmsat; - /* Can fail in theory if gossmap changed underneath. */ - if (!gossmap_chan_get_capacity(map, c, &capacity)) - return 0; + msat = gossmap_chan_get_capacity(map, c); - capmsat = (double)capacity.satoshis * 1000; /* Raw: lengthy math */ + capmsat = (double)msat.millisatoshis; /* Raw: log */ return -log((capmsat + 1 - amtmsat) / (capmsat + 1)); } @@ -174,13 +172,13 @@ int main(int argc, char *argv[]) } else { double probability = 1; for (size_t j = 0; j < tal_count(r); j++) { - struct amount_sat capacity_sat; + struct amount_msat msat; u64 cap_msat; struct gossmap_chan *c = gossmap_find_chan(gossmap, &r[j].scid); assert(c); - assert(gossmap_chan_get_capacity(gossmap, c, &capacity_sat)); + msat = gossmap_chan_get_capacity(gossmap, c); - cap_msat = capacity_sat.satoshis * 1000; + cap_msat = msat.millisatoshis; /* Assume linear distribution, implying probability depends on * amount we would leave in channel */ assert(cap_msat >= r[0].amount.millisatoshis); diff --git a/devtools/gossmap-compress.c b/devtools/gossmap-compress.c index 0aaf4046ed35..d41672a54b25 100644 --- a/devtools/gossmap-compress.c +++ b/devtools/gossmap-compress.c @@ -234,18 +234,17 @@ static u64 get_htlc_max(struct gossmap *gossmap, int dir) { struct amount_msat msat, capacity_msat; - struct amount_sat capacity_sats; - gossmap_chan_get_capacity(gossmap, chan, &capacity_sats); + + capacity_msat = gossmap_chan_get_capacity(gossmap, chan); gossmap_chan_get_update_details(gossmap, chan, dir, NULL, NULL, NULL, NULL, NULL, NULL, &msat); /* Special value for the common case of "max_htlc == capacity" */ - if (amount_msat_eq_sat(msat, capacity_sats)) { + if (amount_msat_eq(msat, capacity_msat)) { return 0; } /* Other common case: "max_htlc == 99% capacity" */ - if (amount_sat_to_msat(&capacity_msat, capacity_sats) - && amount_msat_scale(&capacity_msat, capacity_msat, 0.99) + if (amount_msat_scale(&capacity_msat, capacity_msat, 0.99) && amount_msat_eq(msat, capacity_msat)) { return 1; } @@ -675,9 +674,9 @@ int main(int argc, char *argv[]) /* := {capacity_count} {capacity_count}*{capacity} */ u64 *vals = tal_arr(chans, u64, channel_count); for (size_t i = 0; i < channel_count; i++) { - struct amount_sat sats; - gossmap_chan_get_capacity(gossmap, chans[i], &sats); - vals[i] = sats.satoshis; /* Raw: compression format */ + struct amount_msat cap; + cap = gossmap_chan_get_capacity(gossmap, chans[i]); + vals[i] = cap.millisatoshis / 1000; /* Raw: compression format */ } write_template_and_values(outf, vals, "capacities"); diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 3bb915ce063a..2d45b67324e4 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -157,16 +157,12 @@ static fp16_t *get_capacities(const tal_t *ctx, for (c = gossmap_first_chan(gossmap); c; c = gossmap_next_chan(gossmap, c)) { - struct amount_sat cap; + struct amount_msat cap; - if (!gossmap_chan_get_capacity(gossmap, c, &cap)) { - plugin_log(plugin, LOG_BROKEN, - "get_capacity failed for channel?"); - cap = AMOUNT_SAT(0); - } + cap = gossmap_chan_get_capacity(gossmap, c); /* Pessimistic: round down! */ caps[gossmap_chan_idx(gossmap, c)] - = u64_to_fp16(cap.satoshis, false); /* Raw: fp16 */ + = u64_to_fp16(cap.millisatoshis/1000, false); /* Raw: fp16 */ } return caps; } @@ -459,23 +455,8 @@ void get_constraints(const struct route_query *rq, } /* Might be here because it's reserved, but capacity is normal. */ - if (amount_msat_eq(*max, AMOUNT_MSAT(-1ULL))) { - struct amount_sat cap; - if (gossmap_chan_get_capacity(rq->gossmap, chan, &cap)) { - /* Shouldn't happen! */ - if (!amount_sat_to_msat(max, cap)) { - plugin_log(rq->plugin, LOG_BROKEN, - "Local channel %s with capacity %s?", - fmt_short_channel_id(tmpctx, scidd.scid), - fmt_amount_sat(tmpctx, cap)); - } - } else { - /* Shouldn't happen: local channels have explicit constraints */ - plugin_log(rq->plugin, LOG_BROKEN, - "Channel %s without capacity?", - fmt_short_channel_id(tmpctx, scidd.scid)); - } - } + if (amount_msat_eq(*max, AMOUNT_MSAT(-1ULL))) + *max = gossmap_chan_get_capacity(rq->gossmap, chan); /* Finally, if any is in use, subtract that! */ reserve_sub(rq->reserved, &scidd, min); diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index 1e21370c3c78..33734ccfab27 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -339,7 +339,8 @@ void layer_add_localmods(const struct layer *layer, lc; lc = local_channel_hash_next(layer->local_channels, &lcit)) { gossmap_local_addchan(localmods, - &lc->n1, &lc->n2, lc->scid, NULL); + &lc->n1, &lc->n2, lc->scid, lc->capacity, + NULL); for (size_t i = 0; i < ARRAY_SIZE(lc->half); i++) { struct short_channel_id_dir scidd; bool enabled = true; diff --git a/plugins/establish_onion_path.c b/plugins/establish_onion_path.c index 1b5cb732076b..5aa723fb3093 100644 --- a/plugins/establish_onion_path.c +++ b/plugins/establish_onion_path.c @@ -116,7 +116,8 @@ gossmods_from_listpeers(const tal_t *ctx, fake_scidd.scid.u64 = i; fake_scidd.dir = node_id_idx(self, &peer_id); - gossmap_local_addchan(mods, self, &peer_id, fake_scidd.scid, NULL); + gossmap_local_addchan(mods, self, &peer_id, fake_scidd.scid, + AMOUNT_MSAT(1000), NULL); gossmap_local_updatechan(mods, &fake_scidd, &enabled, NULL, NULL, NULL, NULL, NULL); } diff --git a/plugins/libplugin-pay.c b/plugins/libplugin-pay.c index dd953661a019..572fcc9e3751 100644 --- a/plugins/libplugin-pay.c +++ b/plugins/libplugin-pay.c @@ -856,15 +856,12 @@ static double capacity_bias(const struct gossmap *map, int dir, struct amount_msat amount) { - struct amount_sat capacity; u64 amtmsat = amount.millisatoshis; /* Raw: lengthy math */ double capmsat; /* Can fail in theory if gossmap changed underneath. */ - if (!gossmap_chan_get_capacity(map, c, &capacity)) - return 0; + capmsat = (double)gossmap_chan_get_capacity(map, c).millisatoshis; /* Raw: log */ - capmsat = (double)capacity.satoshis * 1000; /* Raw: lengthy math */ return -log((capmsat + 1 - amtmsat) / (capmsat + 1)); } diff --git a/plugins/renepay/chan_extra.c b/plugins/renepay/chan_extra.c index 57183227ea3b..931463ca53d2 100644 --- a/plugins/renepay/chan_extra.c +++ b/plugins/renepay/chan_extra.c @@ -559,13 +559,8 @@ get_chan_extra_half_by_chan_verify(const struct gossmap *gossmap, struct chan_extra_half *h = get_chan_extra_half_by_scid(chan_extra_map, &scidd); if (!h) { - struct amount_sat cap; - struct amount_msat cap_msat; - - if (!gossmap_chan_get_capacity(gossmap, chan, &cap) || - !amount_sat_to_msat(&cap_msat, cap)) { - return NULL; - } + struct amount_msat cap_msat + = gossmap_chan_get_capacity(gossmap, chan); h = &new_chan_extra(chan_extra_map, scidd.scid, cap_msat) ->half[scidd.dir]; } diff --git a/plugins/renepay/mods.c b/plugins/renepay/mods.c index 91ac7adf6a30..3d410cbce0d5 100644 --- a/plugins/renepay/mods.c +++ b/plugins/renepay/mods.c @@ -409,7 +409,8 @@ static void gossmod_cb(struct gossmap_localmods *mods, } /* FIXME: features? */ - gossmap_local_addchan(mods, self, peer, scidd->scid, NULL); + gossmap_local_addchan(mods, self, peer, scidd->scid, capacity_msat, + NULL); gossmap_local_updatechan(mods, scidd, &enabled, &min, &max, @@ -544,7 +545,7 @@ static void add_hintchan(struct payment *payment, const struct node_id *src, } /* FIXME: features? */ if (!gossmap_local_addchan(payment->local_gossmods, src, dst, - scid, NULL) || + scid, MAX_CAPACITY, NULL) || !gossmap_local_updatechan( payment->local_gossmods, &scidd, &enabled, &htlc_min, &htlc_max, diff --git a/plugins/renepay/test/common.h b/plugins/renepay/test/common.h index 3368bdb49e54..75d3b1f3aeb8 100644 --- a/plugins/renepay/test/common.h +++ b/plugins/renepay/test/common.h @@ -49,8 +49,7 @@ static void add_connection(int store_fd, struct amount_msat max, u32 base_fee, s32 proportional_fee, u32 delay, - struct amount_sat capacity, - bool add_capacity) + struct amount_sat capacity) { secp256k1_ecdsa_signature dummy_sig; struct secret not_a_secret; @@ -79,10 +78,8 @@ static void add_connection(int store_fd, &dummy_key, &dummy_key); write_to_store(store_fd, msg); - if (add_capacity) { - msg = towire_gossip_store_channel_amount(tmpctx, capacity); - write_to_store(store_fd, msg); - } + msg = towire_gossip_store_channel_amount(tmpctx, capacity); + write_to_store(store_fd, msg); u8 flags = node_id_idx(from, to); diff --git a/plugins/renepay/test/run-bottleneck.c b/plugins/renepay/test/run-bottleneck.c index 510ddebde5e7..2173ebd54392 100644 --- a/plugins/renepay/test/run-bottleneck.c +++ b/plugins/renepay/test/run-bottleneck.c @@ -113,32 +113,28 @@ int main(int argc, char *argv[]) AMOUNT_MSAT(0), AMOUNT_MSAT(60 * 1000 * 1000), 0, 0, 5, - AMOUNT_SAT(60 * 1000), - true); + AMOUNT_SAT(60 * 1000)); assert(mk_short_channel_id(&scid, 1, 3, 0)); add_connection(fd, &nodes[0], &nodes[2], scid, AMOUNT_MSAT(0), AMOUNT_MSAT(60 * 1000 * 1000), 0, 0, 5, - AMOUNT_SAT(60 * 1000), - true); + AMOUNT_SAT(60 * 1000)); assert(mk_short_channel_id(&scid, 2, 4, 0)); add_connection(fd, &nodes[1], &nodes[3], scid, AMOUNT_MSAT(0), AMOUNT_MSAT(1000 * 1000 * 1000), 0, 0, 5, - AMOUNT_SAT(1000 * 1000), - true); + AMOUNT_SAT(1000 * 1000)); assert(mk_short_channel_id(&scid, 3, 4, 0)); add_connection(fd, &nodes[2], &nodes[3], scid, AMOUNT_MSAT(0), AMOUNT_MSAT(1000 * 1000 * 1000), 0, 0, 5, - AMOUNT_SAT(1000 * 1000), - true); + AMOUNT_SAT(1000 * 1000)); assert(mk_short_channel_id(&scid, 4, 5, 0)); add_connection(fd, &nodes[3], &nodes[4], scid, @@ -148,40 +144,35 @@ int main(int argc, char *argv[]) * through this channel. */ AMOUNT_MSAT(106 * 1000 * 1000), 0, 0, 5, - AMOUNT_SAT(110 * 1000), - true); + AMOUNT_SAT(110 * 1000)); assert(mk_short_channel_id(&scid, 5, 6, 0)); add_connection(fd, &nodes[4], &nodes[5], scid, AMOUNT_MSAT(0), AMOUNT_MSAT(1000 * 1000 * 1000), 0, 100 * 1000 /* 10% */, 5, - AMOUNT_SAT(1000 * 1000), - true); + AMOUNT_SAT(1000 * 1000)); assert(mk_short_channel_id(&scid, 5, 7, 0)); add_connection(fd, &nodes[4], &nodes[6], scid, AMOUNT_MSAT(0), AMOUNT_MSAT(1000 * 1000 * 1000), 0, 100 * 1000 /* 10% */, 5, - AMOUNT_SAT(1000 * 1000), - true); + AMOUNT_SAT(1000 * 1000)); assert(mk_short_channel_id(&scid, 6, 8, 0)); add_connection(fd, &nodes[5], &nodes[7], scid, AMOUNT_MSAT(0), AMOUNT_MSAT(1000 * 1000 * 1000), 0, 0, 5, - AMOUNT_SAT(1000 * 1000), - true); + AMOUNT_SAT(1000 * 1000)); assert(mk_short_channel_id(&scid, 7, 8, 0)); add_connection(fd, &nodes[6], &nodes[7], scid, AMOUNT_MSAT(0), AMOUNT_MSAT(1000 * 1000 * 1000), 0, 0, 5, - AMOUNT_SAT(1000 * 1000), - true); + AMOUNT_SAT(1000 * 1000)); assert(gossmap_refresh(gossmap, NULL)); struct uncertainty *uncertainty = uncertainty_new(tmpctx); diff --git a/plugins/renepay/test/run-mcf-diamond.c b/plugins/renepay/test/run-mcf-diamond.c index 85ceb6888346..2db20d6e876a 100644 --- a/plugins/renepay/test/run-mcf-diamond.c +++ b/plugins/renepay/test/run-mcf-diamond.c @@ -133,7 +133,7 @@ int main(int argc, char *argv[]) mods = gossmap_localmods_new(tmpctx); /* 1->2->4 has capacity 10k sat, 1->3->4 has capacity 5k sat (lower fee!) */ - assert(gossmap_local_addchan(mods, &l1, &l2, scid12, NULL)); + assert(gossmap_local_addchan(mods, &l1, &l2, scid12, AMOUNT_MSAT(10000000), NULL)); assert(gossmap_local_setchan(mods, scid12, /*htlc_min=*/ AMOUNT_MSAT(0), /*htlc_max=*/ AMOUNT_MSAT(10000000), @@ -142,21 +142,21 @@ int main(int argc, char *argv[]) /* delay =*/ 5, /* enabled=*/ true, /* dir =*/ 0)); - assert(gossmap_local_addchan(mods, &l2, &l4, scid24, NULL)); + assert(gossmap_local_addchan(mods, &l2, &l4, scid24, AMOUNT_MSAT(10000000), NULL)); assert(gossmap_local_setchan(mods, scid24, AMOUNT_MSAT(0), AMOUNT_MSAT(10000000), AMOUNT_MSAT(0), 1002, 5, true, 0)); - assert(gossmap_local_addchan(mods, &l1, &l3, scid13, NULL)); + assert(gossmap_local_addchan(mods, &l1, &l3, scid13, AMOUNT_MSAT(5000000), NULL)); assert(gossmap_local_setchan(mods, scid13, AMOUNT_MSAT(0), AMOUNT_MSAT(5000000), AMOUNT_MSAT(0), 503, 5, true, 0)); - assert(gossmap_local_addchan(mods, &l3, &l4, scid34, NULL)); + assert(gossmap_local_addchan(mods, &l3, &l4, scid34, AMOUNT_MSAT(5000000), NULL)); assert(gossmap_local_setchan(mods, scid34, AMOUNT_MSAT(0), AMOUNT_MSAT(5000000), diff --git a/plugins/renepay/test/run-mcf.c b/plugins/renepay/test/run-mcf.c index 510c12bf726b..487304918580 100644 --- a/plugins/renepay/test/run-mcf.c +++ b/plugins/renepay/test/run-mcf.c @@ -480,7 +480,8 @@ int main(int argc, char *argv[]) assert(short_channel_id_from_str("111x1x1", 7, &scid13)); /* 400,000sat channel from 1->3, basefee 0, ppm 1000, delay 5 */ - assert(gossmap_local_addchan(mods, &l1, &l3, scid13, NULL)); + assert(gossmap_local_addchan(mods, &l1, &l3, scid13, + AMOUNT_MSAT(400000000), NULL)); assert(gossmap_local_setchan(mods, scid13, AMOUNT_MSAT(0), AMOUNT_MSAT(400000000), @@ -494,6 +495,7 @@ int main(int argc, char *argv[]) assert(local_chan); /* The local chans have no "capacity", so set it manually. */ + /* FIXME: They do now! */ uncertainty_add_channel(uncertainty, scid13, AMOUNT_MSAT(400000000)); // flows = minflow(tmpctx, gossmap, diff --git a/plugins/renepay/test/run-missingcapacity.c b/plugins/renepay/test/run-missingcapacity.c deleted file mode 100644 index 4dc53ec4825f..000000000000 --- a/plugins/renepay/test/run-missingcapacity.c +++ /dev/null @@ -1,179 +0,0 @@ -/* Checks that uncertainty_update and get_routes can handle a gossmap where the - * capacity of some channels are missing. - * - * */ -#include "config.h" - -#include "../disabledmap.c" -#include "../errorcodes.c" -#include "../flow.c" -#include "../mcf.c" -#include "../route.c" -#include "../routebuilder.c" -#include "../uncertainty.c" -#include "common.h" - -#include -#include -#include -#include -#include -#include - -/* AUTOGENERATED MOCKS START */ -/* Generated stub for sciddir_or_pubkey_from_node_id */ -bool sciddir_or_pubkey_from_node_id(struct sciddir_or_pubkey *sciddpk UNNEEDED, - const struct node_id *node_id UNNEEDED) -{ fprintf(stderr, "sciddir_or_pubkey_from_node_id called!\n"); abort(); } -/* AUTOGENERATED MOCKS END */ - -static u8 empty_map[] = {10}; - -#define NUM_NODES 4 - -static void remove_file(char *fname) { assert(!remove(fname)); } - -int main(int argc, char *argv[]) -{ - int fd; - char *gossfile; - struct gossmap *gossmap; - struct node_id nodes[NUM_NODES]; - - common_setup(argv[0]); - chainparams = chainparams_for_network("regtest"); - - fd = tmpdir_mkstemp(tmpctx, "run-missingcapacity.XXXXXX", &gossfile); - tal_add_destructor(gossfile, remove_file); - assert(write(fd, empty_map, sizeof(empty_map)) == sizeof(empty_map)); - - gossmap = gossmap_load(tmpctx, gossfile, NULL); - assert(gossmap); - - for (size_t i = 0; i < NUM_NODES; i++) { - struct privkey tmp; - memset(&tmp, i+1, sizeof(tmp)); - node_id_from_privkey(&tmp, &nodes[i]); - } - - /* We will try a payment from 1 to 4. - * There are two possible routes 1->2->4 or 1->3->4. - * However, we will simulate that we don't have channel 3->4's capacity - * in the gossmap (see #7194). We expect that 3->4 it's simply ignored - * and only route through 1->2->4 is used. - * - * +--2--+ - * | | - * 1 4 - * | | - * +--3--+ - * - * */ - struct short_channel_id scid; - - assert(mk_short_channel_id(&scid, 1, 2, 0)); - add_connection(fd, &nodes[0], &nodes[1], scid, - AMOUNT_MSAT(0), - AMOUNT_MSAT(1000 * 1000 * 1000), - 0, 0, 5, - AMOUNT_SAT(1000 * 1000), - /* add capacity? = */ true); - - assert(mk_short_channel_id(&scid, 2, 4, 0)); - add_connection(fd, &nodes[1], &nodes[3], scid, - AMOUNT_MSAT(0), - AMOUNT_MSAT(1000 * 1000 * 1000), - 0, 0, 5, - AMOUNT_SAT(1000 * 1000), - /* add capacity? = */ true); - - assert(mk_short_channel_id(&scid, 1, 3, 0)); - add_connection(fd, &nodes[0], &nodes[2], scid, - AMOUNT_MSAT(0), - AMOUNT_MSAT(1000 * 1000 * 1000), - 0, 0, 5, - AMOUNT_SAT(1000 * 1000), - /* add capacity? = */ true); - - assert(mk_short_channel_id(&scid, 3, 4, 0)); - add_connection(fd, &nodes[2], &nodes[3], scid, - AMOUNT_MSAT(0), - AMOUNT_MSAT(1000 * 1000 * 1000), - 0, 0, 5, - AMOUNT_SAT(1000 * 1000), - /* add capacity? = */ false); - - assert(gossmap_refresh(gossmap, NULL)); - struct uncertainty *uncertainty = uncertainty_new(tmpctx); - int skipped_count = - uncertainty_update(uncertainty, gossmap); - assert(skipped_count==1); - - struct preimage preimage; - - struct amount_msat maxfee = AMOUNT_MSAT(20*1000); - struct payment_info pinfo; - pinfo.invstr = NULL; - pinfo.label = NULL; - pinfo.description = NULL; - pinfo.payment_secret = NULL; - pinfo.payment_metadata = NULL; - pinfo.routehints = NULL; - pinfo.destination = nodes[3]; - pinfo.amount = AMOUNT_MSAT(100 * 1000 * 1000); - - assert(amount_msat_add(&pinfo.maxspend, maxfee, pinfo.amount)); - pinfo.maxdelay = 100; - pinfo.final_cltv = 5; - - pinfo.start_time = time_now(); - pinfo.stop_time = timeabs_add(pinfo.start_time, time_from_sec(10000)); - - pinfo.base_fee_penalty = 1e-5; - pinfo.prob_cost_factor = 1e-5; - pinfo.delay_feefactor = 1e-6; - pinfo.min_prob_success = 0.9; - pinfo.base_prob_success = 1.0; - pinfo.use_shadow = false; - - randombytes_buf(&preimage, sizeof(preimage)); - sha256(&pinfo.payment_hash, &preimage, sizeof(preimage)); - - struct disabledmap *disabledmap = disabledmap_new(tmpctx); - - enum jsonrpc_errcode errcode; - const char *err_msg; - - u64 groupid = 1; - u64 next_partid=1; - - struct route **routes = get_routes( - /* ctx */tmpctx, - /* payment */&pinfo, - /* source */&nodes[0], - /* destination */&nodes[3], - /* gossmap */gossmap, - /* uncertainty */uncertainty, - disabledmap, - /* amount */ pinfo.amount, - /* feebudget */maxfee, - &next_partid, - groupid, - &errcode, - &err_msg); - - assert(routes); - - if (!routes) { - printf("get_route failed with error %d: %s", errcode, err_msg); - } else { - printf("get_routes: %s\n", print_routes(tmpctx, routes)); - assert(tal_count(routes) == 1); - assert(tal_count(routes[0]->hops) == 2); - assert(node_id_eq(&routes[0]->hops[0].node_id, &nodes[1])); - assert(node_id_eq(&routes[0]->hops[1].node_id, &nodes[3])); - } - - common_shutdown(); -} - diff --git a/plugins/renepay/test/run-testflow.c b/plugins/renepay/test/run-testflow.c index 5d907bae1547..a570fd9eb7d0 100644 --- a/plugins/renepay/test/run-testflow.c +++ b/plugins/renepay/test/run-testflow.c @@ -578,12 +578,12 @@ static void test_flow_to_route(void) struct chan_extra_half *h0,*h1; struct gossmap_chan *c; - struct amount_sat cap; + struct amount_msat cap; struct amount_msat sum_min1_max0,sum_min0_max1; // check the bounds channel 1--2 c = gossmap_find_chan(gossmap,&scid12); - assert(gossmap_chan_get_capacity(gossmap,c,&cap)); + cap = gossmap_chan_get_capacity(gossmap,c); h0 = get_chan_extra_half_by_chan_verify(gossmap,chan_extra_map,c,0); assert(h0); @@ -596,17 +596,17 @@ static void test_flow_to_route(void) h1->known_max = AMOUNT_MSAT(1000000000); assert(amount_msat_less_eq(h0->known_min,h0->known_max)); - assert(amount_msat_less_eq_sat(h0->known_max,cap)); + assert(amount_msat_less_eq(h0->known_max,cap)); assert(amount_msat_less_eq(h1->known_min,h1->known_max)); - assert(amount_msat_less_eq_sat(h1->known_max,cap)); + assert(amount_msat_less_eq(h1->known_max,cap)); assert(amount_msat_add(&sum_min1_max0,h1->known_min,h0->known_max)); assert(amount_msat_add(&sum_min0_max1,h0->known_min,h1->known_max)); - assert(amount_msat_eq_sat(sum_min1_max0,cap)); - assert(amount_msat_eq_sat(sum_min0_max1,cap)); + assert(amount_msat_eq(sum_min1_max0,cap)); + assert(amount_msat_eq(sum_min0_max1,cap)); // check the bounds channel 2--3 c = gossmap_find_chan(gossmap,&scid23); - assert(gossmap_chan_get_capacity(gossmap,c,&cap)); + cap = gossmap_chan_get_capacity(gossmap,c); h1 = get_chan_extra_half_by_chan_verify(gossmap,chan_extra_map,c,1); assert(h1); @@ -619,17 +619,17 @@ static void test_flow_to_route(void) h0->known_max = AMOUNT_MSAT(2000000000); assert(amount_msat_less_eq(h0->known_min,h0->known_max)); - assert(amount_msat_less_eq_sat(h0->known_max,cap)); + assert(amount_msat_less_eq(h0->known_max,cap)); assert(amount_msat_less_eq(h1->known_min,h1->known_max)); - assert(amount_msat_less_eq_sat(h1->known_max,cap)); + assert(amount_msat_less_eq(h1->known_max,cap)); assert(amount_msat_add(&sum_min1_max0,h1->known_min,h0->known_max)); assert(amount_msat_add(&sum_min0_max1,h0->known_min,h1->known_max)); - assert(amount_msat_eq_sat(sum_min1_max0,cap)); - assert(amount_msat_eq_sat(sum_min0_max1,cap)); + assert(amount_msat_eq(sum_min1_max0,cap)); + assert(amount_msat_eq(sum_min0_max1,cap)); // check the bounds channel 3--4 c = gossmap_find_chan(gossmap,&scid34); - assert(gossmap_chan_get_capacity(gossmap,c,&cap)); + cap = gossmap_chan_get_capacity(gossmap,c); h0 = get_chan_extra_half_by_chan_verify(gossmap,chan_extra_map,c,0); assert(h0); @@ -642,17 +642,17 @@ static void test_flow_to_route(void) h1->known_max = AMOUNT_MSAT(500000000); assert(amount_msat_less_eq(h0->known_min,h0->known_max)); - assert(amount_msat_less_eq_sat(h0->known_max,cap)); + assert(amount_msat_less_eq(h0->known_max,cap)); assert(amount_msat_less_eq(h1->known_min,h1->known_max)); - assert(amount_msat_less_eq_sat(h1->known_max,cap)); + assert(amount_msat_less_eq(h1->known_max,cap)); assert(amount_msat_add(&sum_min1_max0,h1->known_min,h0->known_max)); assert(amount_msat_add(&sum_min0_max1,h0->known_min,h1->known_max)); - assert(amount_msat_eq_sat(sum_min1_max0,cap)); - assert(amount_msat_eq_sat(sum_min0_max1,cap)); + assert(amount_msat_eq(sum_min1_max0,cap)); + assert(amount_msat_eq(sum_min0_max1,cap)); // check the bounds channel 4--5 c = gossmap_find_chan(gossmap,&scid45); - assert(gossmap_chan_get_capacity(gossmap,c,&cap)); + cap = gossmap_chan_get_capacity(gossmap,c); h0 = get_chan_extra_half_by_chan_verify(gossmap,chan_extra_map,c,0); assert(h0); @@ -665,13 +665,13 @@ static void test_flow_to_route(void) h1->known_max = AMOUNT_MSAT(2000000000); assert(amount_msat_less_eq(h0->known_min,h0->known_max)); - assert(amount_msat_less_eq_sat(h0->known_max,cap)); + assert(amount_msat_less_eq(h0->known_max,cap)); assert(amount_msat_less_eq(h1->known_min,h1->known_max)); - assert(amount_msat_less_eq_sat(h1->known_max,cap)); + assert(amount_msat_less_eq(h1->known_max,cap)); assert(amount_msat_add(&sum_min1_max0,h1->known_min,h0->known_max)); assert(amount_msat_add(&sum_min0_max1,h0->known_min,h1->known_max)); - assert(amount_msat_eq_sat(sum_min1_max0,cap)); - assert(amount_msat_eq_sat(sum_min0_max1,cap)); + assert(amount_msat_eq(sum_min1_max0,cap)); + assert(amount_msat_eq(sum_min0_max1,cap)); struct flow *F; struct route *route; diff --git a/plugins/renepay/uncertainty.c b/plugins/renepay/uncertainty.c index 00c50ebc1134..d151471229a0 100644 --- a/plugins/renepay/uncertainty.c +++ b/plugins/renepay/uncertainty.c @@ -104,12 +104,10 @@ int uncertainty_update(struct uncertainty *uncertainty, struct gossmap *gossmap) struct chan_extra *ce = chan_extra_map_get(chan_extra_map, scid); if (!ce) { - struct amount_sat cap; struct amount_msat cap_msat; - if (!gossmap_chan_get_capacity(gossmap, chan, &cap) || - !amount_sat_to_msat(&cap_msat, cap) || - !new_chan_extra(chan_extra_map, scid, + cap_msat = gossmap_chan_get_capacity(gossmap, chan); + if (!new_chan_extra(chan_extra_map, scid, cap_msat)) { /* If the new chan_extra cannot be created we * skip this channel. */ diff --git a/plugins/test/Makefile b/plugins/test/Makefile index 0165ee8c646c..2ecba481c65a 100644 --- a/plugins/test/Makefile +++ b/plugins/test/Makefile @@ -19,7 +19,8 @@ plugins/test/run-route-overlong: \ common/fp16.o \ common/gossmap.o \ common/node_id.o \ - common/route.o + common/route.o \ + gossipd/gossip_store_wiregen.o plugins/test/run-route-calc: \ common/fp16.o \ diff --git a/plugins/test/run-route-overlong.c b/plugins/test/run-route-overlong.c index 5aa1bb093d77..9655104413ed 100644 --- a/plugins/test/run-route-overlong.c +++ b/plugins/test/run-route-overlong.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -383,6 +384,8 @@ static void add_connection(int store_fd, ids[0], ids[1], &dummy_key, &dummy_key); write_to_store(store_fd, msg); + msg = towire_gossip_store_channel_amount(tmpctx, AMOUNT_SAT(10000)); + write_to_store(store_fd, msg); update_connection(store_fd, from, to, scid, min, max, base_fee, proportional_fee, diff --git a/plugins/topology.c b/plugins/topology.c index b3da4c885e76..5cc00aa894b2 100644 --- a/plugins/topology.c +++ b/plugins/topology.c @@ -224,7 +224,7 @@ static void json_add_halfchan(struct json_stream *response, struct short_channel_id scid; struct node_id node_id[2]; const u8 *chanfeatures; - struct amount_sat capacity; + struct amount_msat capacity_msat; bool local_disable; /* These are channel (not per-direction) properties */ @@ -234,9 +234,7 @@ static void json_add_halfchan(struct json_stream *response, gossmap_node_get_id(gossmap, gossmap_nth_node(gossmap, c, i), &node_id[i]); - /* This can theoretically happen on partial write races. */ - if (!gossmap_chan_get_capacity(gossmap, c, &capacity)) - capacity = AMOUNT_SAT(0); + capacity_msat = gossmap_chan_get_capacity(gossmap, c); /* Deprecated: local channels are not "active" unless peer is connected. */ if (connected && node_id_eq(&node_id[0], &local_id)) @@ -287,7 +285,7 @@ static void json_add_halfchan(struct json_stream *response, &htlc_maximum_msat); } - json_add_amount_sat_msat(response, "amount_msat", capacity); + json_add_amount_msat(response, "amount_msat", capacity_msat); json_add_num(response, "message_flags", message_flags); json_add_num(response, "channel_flags", channel_flags); From c307b77d2f108ffb8eb4c5002d0a74582b9d9b69 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:07:53 +0930 Subject: [PATCH 40/51] askrene: split askrene-create-channel into create-channel and update-channel. This allows for explicit partial updates to channels (e.g. just change fees, or just disable) without haveing to set the other fields. This generalizes askrene-disable-channel, which is removed. We also take the chance to use the proper BOLT 7 terms in the API: - htlc_minimum_msat - htlc_maximum_msat - cltv_expiry_delta - fee_base_msat - fee_proportional_millionths Signed-off-by: Rusty Russell --- contrib/msggen/msggen/schema.json | 213 +++++++------- doc/Makefile | 1 + doc/index.rst | 1 + .../lightning-askrene-create-channel.json | 43 +-- .../lightning-askrene-create-layer.json | 22 +- .../lightning-askrene-disable-channel.json | 50 ---- doc/schemas/lightning-askrene-listlayers.json | 22 +- .../lightning-askrene-update-channel.json | 76 +++++ plugins/askrene/askrene.c | 80 +++--- plugins/askrene/layer.c | 263 ++++++++++-------- plugins/askrene/layer.h | 31 ++- tests/test_askrene.py | 73 +++-- 12 files changed, 471 insertions(+), 404 deletions(-) delete mode 100644 doc/schemas/lightning-askrene-disable-channel.json create mode 100644 doc/schemas/lightning-askrene-update-channel.json diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index 900e785fb140..7db584550643 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -265,7 +265,7 @@ "description": [ "WARNING: experimental, so API may change.", "", - "The **askrene-create-channel** RPC command tells askrene to populate one direction of a channel in the given layer. If the channel already exists, it will be overridden." + "The **askrene-create-channel** RPC command tells askrene create a channel in the given layer. To actually populate the channel use *askrene-update-channel* in each direction." ], "request": { "required": [ @@ -273,12 +273,7 @@ "source", "destination", "short_channel_id", - "capacity_msat", - "htlc_min", - "htlc_max", - "base_fee", - "proportional_fee", - "delay" + "capacity_msat" ], "properties": { "layer": { @@ -308,37 +303,8 @@ "capacity_msat": { "type": "msat", "description": [ - "The capacity (onchain size) of the channel." - ] - }, - "htlc_min": { - "type": "msat", - "description": [ - "The minimum value allowed in this direction." - ] - }, - "htlc_max": { - "type": "msat", - "description": [ - "The maximum value allowed in this direction." - ] - }, - "base_fee": { - "type": "msat", - "description": [ - "The base fee to apply to use the channel in this direction." - ] - }, - "proportional_fee": { - "type": "u32", - "description": [ - "The proportional fee (in parts per million) to apply to use the channel in this direction." - ] - }, - "delay": { - "type": "u16", - "description": [ - "The CLTV delay required for this direction." + "The capacity (onchain size) of the channel.", + "NOTE: this is in millisatoshis!" ] } } @@ -350,6 +316,7 @@ "see_also": [ "lightning-getroutes(7)", "lightning-askrene-disable-node(7)", + "lightning-askrene-update-channel(7)", "lightning-askrene-inform-channel(7)", "lightning-askrene-listlayers(7)", "lightning-askrene-age(7)" @@ -398,8 +365,8 @@ "required": [ "layer", "disabled_nodes", - "disabled_channels", "created_channels", + "channel_updates", "constraints" ], "properties": { @@ -435,12 +402,7 @@ "source", "destination", "short_channel_id", - "capacity_msat", - "htlc_minimum_msat", - "htlc_maximum_msat", - "fee_base_msat", - "fee_proportional_millionths", - "delay" + "capacity_msat" ], "properties": { "source": { @@ -466,7 +428,18 @@ "description": [ "The capacity (onchain size) of the channel." ] - }, + } + } + } + }, + "channel_updates": { + "type": "array", + "items": { + "type": "object", + "required": [ + "short_channel_id_dir" + ], + "properties": { "htlc_minimum_msat": { "type": "msat", "description": [ @@ -556,56 +529,6 @@ "Main web site: " ] }, - "lightning-askrene-disable-channel.json": { - "$schema": "../rpc-schema-draft.json", - "type": "object", - "additionalProperties": false, - "rpc": "askrene-disable-channel", - "title": "Command to disable a channel in a layer (EXPERIMENTAL)", - "description": [ - "WARNING: experimental, so API may change.", - "", - "The **askrene-disable-channel** RPC command tells askrene to disable a channel whenever the given layer is used. This is mainly useful to force the use of alternate paths." - ], - "request": { - "required": [ - "layer", - "short_channel_id_dir" - ], - "properties": { - "layer": { - "type": "string", - "description": [ - "The name of the layer to apply this change to." - ] - }, - "short_channel_id_dir": { - "type": "short_channel_id_dir", - "description": [ - "The channel and direction to disable." - ] - } - } - }, - "response": { - "required": [], - "properties": {} - }, - "see_also": [ - "lightning-getroutes(7)", - "lightning-askrene-create-channel(7)", - "lightning-askrene-inform-channel(7)", - "lightning-askrene-disable-node(7)", - "lightning-askrene-listlayers(7)", - "lightning-askrene-age(7)" - ], - "author": [ - "Rusty Russell <> is mainly responsible." - ], - "resources": [ - "Main web site: " - ] - }, "lightning-askrene-disable-node.json": { "$schema": "../rpc-schema-draft.json", "type": "object", @@ -790,8 +713,8 @@ "required": [ "layer", "disabled_nodes", - "disabled_channels", "created_channels", + "channel_updates", "constraints" ], "properties": { @@ -827,12 +750,7 @@ "source", "destination", "short_channel_id", - "capacity_msat", - "htlc_minimum_msat", - "htlc_maximum_msat", - "fee_base_msat", - "fee_proportional_millionths", - "delay" + "capacity_msat" ], "properties": { "source": { @@ -858,7 +776,18 @@ "description": [ "The capacity (onchain size) of the channel." ] - }, + } + } + } + }, + "channel_updates": { + "type": "array", + "items": { + "type": "object", + "required": [ + "short_channel_id_dir" + ], + "properties": { "htlc_minimum_msat": { "type": "msat", "description": [ @@ -1173,6 +1102,82 @@ "Main web site: " ] }, + "lightning-askrene-update-channel.json": { + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "askrene-update-channel", + "title": "Command to manipulate channel in a layer (EXPERIMENTAL)", + "description": [ + "WARNING: experimental, so API may change.", + "", + "The **askrene-update-channel** RPC command overrides updates for an existing channel when the layer is applied." + ], + "request": { + "required": [ + "layer", + "short_channel_id_dir" + ], + "properties": { + "layer": { + "type": "string", + "description": [ + "The name of the layer to apply this change to." + ] + }, + "short_channel_id_dir": { + "type": "short_channel_id_dir", + "description": [ + "The channel and direction to apply the change to." + ] + }, + "htlc_min": { + "type": "msat", + "description": [ + "The minimum value allowed in this direction." + ] + }, + "htlc_max": { + "type": "msat", + "description": [ + "The maximum value allowed in this direction." + ] + }, + "base_fee": { + "type": "msat", + "description": [ + "The base fee to apply to use the channel in this direction." + ] + }, + "proportional_fee": { + "type": "u32", + "description": [ + "The proportional fee (in parts per million) to apply to use the channel in this direction." + ] + }, + "cltv_expiry_delta": { + "type": "u16", + "description": [ + "The CLTV delay required for this direction." + ] + } + } + }, + "response": { + "required": [], + "properties": {} + }, + "see_also": [ + "lightning-getroutes(7)", + "lightning-askrene-create-channel(7)" + ], + "author": [ + "Rusty Russell <> is mainly responsible." + ], + "resources": [ + "Main web site: " + ] + }, "lightning-autoclean-once.json": { "$schema": "../rpc-schema-draft.json", "type": "object", diff --git a/doc/Makefile b/doc/Makefile index afef62d8d0a5..b7b7648edcab 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -9,6 +9,7 @@ GENERATE_MARKDOWN := doc/lightning-addgossip.7 \ doc/lightning-askrene-create-layer.7 \ doc/lightning-askrene-remove-layer.7 \ doc/lightning-askrene-create-channel.7 \ + doc/lightning-askrene-update-channel.7 \ doc/lightning-askrene-disable-node.7 \ doc/lightning-askrene-inform-channel.7 \ doc/lightning-askrene-listlayers.7 \ diff --git a/doc/index.rst b/doc/index.rst index a28fc8f425a3..edee2e109cdd 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -23,6 +23,7 @@ Core Lightning Documentation lightning-askrene-remove-layer lightning-askrene-reserve lightning-askrene-unreserve + lightning-askrene-update-channel lightning-autoclean-once lightning-autoclean-status lightning-batching diff --git a/doc/schemas/lightning-askrene-create-channel.json b/doc/schemas/lightning-askrene-create-channel.json index 3e76313aaf58..f1acd0c8299b 100644 --- a/doc/schemas/lightning-askrene-create-channel.json +++ b/doc/schemas/lightning-askrene-create-channel.json @@ -7,7 +7,7 @@ "description": [ "WARNING: experimental, so API may change.", "", - "The **askrene-create-channel** RPC command tells askrene to populate one direction of a channel in the given layer. If the channel already exists, it will be overridden." + "The **askrene-create-channel** RPC command tells askrene create a channel in the given layer. To actually populate the channel use *askrene-update-channel* in each direction." ], "request": { "required": [ @@ -15,12 +15,7 @@ "source", "destination", "short_channel_id", - "capacity_msat", - "htlc_min", - "htlc_max", - "base_fee", - "proportional_fee", - "delay" + "capacity_msat" ], "properties": { "layer": { @@ -50,37 +45,8 @@ "capacity_msat": { "type": "msat", "description": [ - "The capacity (onchain size) of the channel." - ] - }, - "htlc_min": { - "type": "msat", - "description": [ - "The minimum value allowed in this direction." - ] - }, - "htlc_max": { - "type": "msat", - "description": [ - "The maximum value allowed in this direction." - ] - }, - "base_fee": { - "type": "msat", - "description": [ - "The base fee to apply to use the channel in this direction." - ] - }, - "proportional_fee": { - "type": "u32", - "description": [ - "The proportional fee (in parts per million) to apply to use the channel in this direction." - ] - }, - "delay": { - "type": "u16", - "description": [ - "The CLTV delay required for this direction." + "The capacity (onchain size) of the channel.", + "NOTE: this is in millisatoshis!" ] } } @@ -92,6 +58,7 @@ "see_also": [ "lightning-getroutes(7)", "lightning-askrene-disable-node(7)", + "lightning-askrene-update-channel(7)", "lightning-askrene-inform-channel(7)", "lightning-askrene-listlayers(7)", "lightning-askrene-age(7)" diff --git a/doc/schemas/lightning-askrene-create-layer.json b/doc/schemas/lightning-askrene-create-layer.json index 00518b4e4bb6..566a2a1e947a 100644 --- a/doc/schemas/lightning-askrene-create-layer.json +++ b/doc/schemas/lightning-askrene-create-layer.json @@ -35,8 +35,8 @@ "required": [ "layer", "disabled_nodes", - "disabled_channels", "created_channels", + "channel_updates", "constraints" ], "properties": { @@ -72,12 +72,7 @@ "source", "destination", "short_channel_id", - "capacity_msat", - "htlc_minimum_msat", - "htlc_maximum_msat", - "fee_base_msat", - "fee_proportional_millionths", - "delay" + "capacity_msat" ], "properties": { "source": { @@ -103,7 +98,18 @@ "description": [ "The capacity (onchain size) of the channel." ] - }, + } + } + } + }, + "channel_updates": { + "type": "array", + "items": { + "type": "object", + "required": [ + "short_channel_id_dir" + ], + "properties": { "htlc_minimum_msat": { "type": "msat", "description": [ diff --git a/doc/schemas/lightning-askrene-disable-channel.json b/doc/schemas/lightning-askrene-disable-channel.json deleted file mode 100644 index 09d5b2c4fd0b..000000000000 --- a/doc/schemas/lightning-askrene-disable-channel.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "$schema": "../rpc-schema-draft.json", - "type": "object", - "additionalProperties": false, - "rpc": "askrene-disable-channel", - "title": "Command to disable a channel in a layer (EXPERIMENTAL)", - "description": [ - "WARNING: experimental, so API may change.", - "", - "The **askrene-disable-channel** RPC command tells askrene to disable a channel whenever the given layer is used. This is mainly useful to force the use of alternate paths." - ], - "request": { - "required": [ - "layer", - "short_channel_id_dir" - ], - "properties": { - "layer": { - "type": "string", - "description": [ - "The name of the layer to apply this change to." - ] - }, - "short_channel_id_dir": { - "type": "short_channel_id_dir", - "description": [ - "The channel and direction to disable." - ] - } - } - }, - "response": { - "required": [], - "properties": {} - }, - "see_also": [ - "lightning-getroutes(7)", - "lightning-askrene-create-channel(7)", - "lightning-askrene-inform-channel(7)", - "lightning-askrene-disable-node(7)", - "lightning-askrene-listlayers(7)", - "lightning-askrene-age(7)" - ], - "author": [ - "Rusty Russell <> is mainly responsible." - ], - "resources": [ - "Main web site: " - ] -} diff --git a/doc/schemas/lightning-askrene-listlayers.json b/doc/schemas/lightning-askrene-listlayers.json index f3c3f6b89dd7..c206f8fe60be 100644 --- a/doc/schemas/lightning-askrene-listlayers.json +++ b/doc/schemas/lightning-askrene-listlayers.json @@ -33,8 +33,8 @@ "required": [ "layer", "disabled_nodes", - "disabled_channels", "created_channels", + "channel_updates", "constraints" ], "properties": { @@ -70,12 +70,7 @@ "source", "destination", "short_channel_id", - "capacity_msat", - "htlc_minimum_msat", - "htlc_maximum_msat", - "fee_base_msat", - "fee_proportional_millionths", - "delay" + "capacity_msat" ], "properties": { "source": { @@ -101,7 +96,18 @@ "description": [ "The capacity (onchain size) of the channel." ] - }, + } + } + } + }, + "channel_updates": { + "type": "array", + "items": { + "type": "object", + "required": [ + "short_channel_id_dir" + ], + "properties": { "htlc_minimum_msat": { "type": "msat", "description": [ diff --git a/doc/schemas/lightning-askrene-update-channel.json b/doc/schemas/lightning-askrene-update-channel.json new file mode 100644 index 000000000000..c0f82dcdee0f --- /dev/null +++ b/doc/schemas/lightning-askrene-update-channel.json @@ -0,0 +1,76 @@ +{ + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "askrene-update-channel", + "title": "Command to manipulate channel in a layer (EXPERIMENTAL)", + "description": [ + "WARNING: experimental, so API may change.", + "", + "The **askrene-update-channel** RPC command overrides updates for an existing channel when the layer is applied." + ], + "request": { + "required": [ + "layer", + "short_channel_id_dir" + ], + "properties": { + "layer": { + "type": "string", + "description": [ + "The name of the layer to apply this change to." + ] + }, + "short_channel_id_dir": { + "type": "short_channel_id_dir", + "description": [ + "The channel and direction to apply the change to." + ] + }, + "htlc_min": { + "type": "msat", + "description": [ + "The minimum value allowed in this direction." + ] + }, + "htlc_max": { + "type": "msat", + "description": [ + "The maximum value allowed in this direction." + ] + }, + "base_fee": { + "type": "msat", + "description": [ + "The base fee to apply to use the channel in this direction." + ] + }, + "proportional_fee": { + "type": "u32", + "description": [ + "The proportional fee (in parts per million) to apply to use the channel in this direction." + ] + }, + "cltv_expiry_delta": { + "type": "u16", + "description": [ + "The CLTV delay required for this direction." + ] + } + } + }, + "response": { + "required": [], + "properties": {} + }, + "see_also": [ + "lightning-getroutes(7)", + "lightning-askrene-create-channel(7)" + ], + "author": [ + "Rusty Russell <> is mainly responsible." + ], + "resources": [ + "Main web site: " + ] +} diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 2d45b67324e4..7d71e1728c28 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -707,14 +707,10 @@ static struct command_result *json_askrene_create_channel(struct command *cmd, const jsmntok_t *params) { struct layer *layer; - const struct local_channel *lc; struct node_id *src, *dst; struct short_channel_id *scid; struct amount_msat *capacity; struct json_stream *response; - struct amount_msat *htlc_min, *htlc_max, *base_fee; - u32 *proportional_fee; - u16 *delay; if (!param_check(cmd, buffer, params, p_req("layer", param_known_layer, &layer), @@ -722,27 +718,51 @@ static struct command_result *json_askrene_create_channel(struct command *cmd, p_req("destination", param_node_id, &dst), p_req("short_channel_id", param_short_channel_id, &scid), p_req("capacity_msat", param_msat, &capacity), - p_req("htlc_minimum_msat", param_msat, &htlc_min), - p_req("htlc_maximum_msat", param_msat, &htlc_max), - p_req("fee_base_msat", param_msat, &base_fee), - p_req("fee_proportional_millionths", param_u32, &proportional_fee), - p_req("delay", param_u16, &delay), NULL)) return command_param_failed(); - /* If it exists, it must match */ - lc = layer_find_local_channel(layer, *scid); - if (lc && !layer_check_local_channel(lc, src, dst, *capacity)) { + if (layer_find_local_channel(layer, *scid)) { return command_fail(cmd, JSONRPC2_INVALID_PARAMS, - "channel already exists with different values!"); + "channel already exists"); } if (command_check_only(cmd)) return command_check_done(cmd); - layer_update_local_channel(layer, src, dst, *scid, *capacity, - *base_fee, *proportional_fee, *delay, - *htlc_min, *htlc_max); + layer_add_local_channel(layer, src, dst, *scid, *capacity); + + response = jsonrpc_stream_success(cmd); + return command_finished(cmd, response); +} + +static struct command_result *json_askrene_update_channel(struct command *cmd, + const char *buffer, + const jsmntok_t *params) +{ + struct layer *layer; + struct short_channel_id_dir *scidd; + bool *enabled; + struct amount_msat *htlc_min, *htlc_max, *base_fee; + u32 *proportional_fee; + u16 *delay; + struct json_stream *response; + + if (!param(cmd, buffer, params, + p_req("layer", param_known_layer, &layer), + p_req("short_channel_id_dir", param_short_channel_id_dir, &scidd), + p_opt("enabled", param_bool, &enabled), + p_opt("htlc_minimum_msat", param_msat, &htlc_min), + p_opt("htlc_maximum_msat", param_msat, &htlc_max), + p_opt("fee_base_msat", param_msat, &base_fee), + p_opt("fee_proportional_millionths", param_u32, &proportional_fee), + p_opt("cltv_expiry_delta", param_u16, &delay), + NULL)) + return command_param_failed(); + + layer_add_update_channel(layer, scidd, + enabled, + htlc_min, htlc_max, + base_fee, proportional_fee, delay); response = jsonrpc_stream_success(cmd); return command_finished(cmd, response); @@ -831,26 +851,6 @@ static struct command_result *json_askrene_inform_channel(struct command *cmd, return command_finished(cmd, response); } -static struct command_result *json_askrene_disable_channel(struct command *cmd, - const char *buffer, - const jsmntok_t *params) -{ - struct short_channel_id_dir *scidd; - struct layer *layer; - struct json_stream *response; - - if (!param(cmd, buffer, params, - p_req("layer", param_known_layer, &layer), - p_req("short_channel_id_dir", param_short_channel_id_dir, &scidd), - NULL)) - return command_param_failed(); - - layer_add_disabled_channel(layer, scidd); - - response = jsonrpc_stream_success(cmd); - return command_finished(cmd, response); -} - static struct command_result *json_askrene_disable_node(struct command *cmd, const char *buffer, const jsmntok_t *params) @@ -989,6 +989,10 @@ static const struct plugin_command commands[] = { "askrene-create-channel", json_askrene_create_channel, }, + { + "askrene-update-channel", + json_askrene_update_channel, + }, { "askrene-inform-channel", json_askrene_inform_channel, @@ -1009,10 +1013,6 @@ static const struct plugin_command commands[] = { "askrene-age", json_askrene_age, }, - { - "askrene-disable-channel", - json_askrene_disable_channel, - }, }; static void askrene_markmem(struct plugin *plugin, struct htable *memtable) diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index 33734ccfab27..4a6e3ffb7591 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -14,15 +14,17 @@ struct local_channel { struct node_id n1, n2; struct short_channel_id scid; struct amount_msat capacity; +}; + +struct local_update { + struct short_channel_id_dir scidd; - struct added_channel_half { - /* Other fields only valid if this is true */ - bool enabled; - u16 delay; - u32 proportional_fee; - struct amount_msat base_fee; - struct amount_msat htlc_min, htlc_max; - } half[2]; + /* Non-null fields apply. */ + const bool *enabled; + const u16 *delay; + const u32 *proportional_fee; + const struct amount_msat *base_fee; + const struct amount_msat *htlc_min, *htlc_max; }; static const struct short_channel_id_dir * @@ -61,6 +63,21 @@ static inline bool local_channel_eq_scid(const struct local_channel *lc, HTABLE_DEFINE_TYPE(struct local_channel, local_channel_scid, hash_scid, local_channel_eq_scid, local_channel_hash); +static const struct short_channel_id_dir * +local_update_scidd(const struct local_update *lu) +{ + return &lu->scidd; +} + +static inline bool local_update_eq_scidd(const struct local_update *lu, + const struct short_channel_id_dir *scidd) +{ + return short_channel_id_dir_eq(scidd, &lu->scidd); +} + +HTABLE_DEFINE_TYPE(struct local_update, local_update_scidd, hash_scidd, + local_update_eq_scidd, local_update_hash); + struct layer { /* Inside global list of layers */ struct list_node list; @@ -71,14 +88,14 @@ struct layer { /* Completely made up local additions, indexed by scid */ struct local_channel_hash *local_channels; + /* Modifications to channels, indexed by scidd */ + struct local_update_hash *local_updates; + /* Additional info, indexed by scid+dir */ struct constraint_hash *constraints; /* Nodes to completely disable (tal_arr) */ struct node_id *disabled_nodes; - - /* Channels to completely disable (tal_arr) */ - struct short_channel_id_dir *disabled_channels; }; struct layer *new_temp_layer(const tal_t *ctx, const char *name) @@ -88,10 +105,11 @@ struct layer *new_temp_layer(const tal_t *ctx, const char *name) l->name = tal_strdup(l, name); l->local_channels = tal(l, struct local_channel_hash); local_channel_hash_init(l->local_channels); + l->local_updates = tal(l, struct local_update_hash); + local_update_hash_init(l->local_updates); l->constraints = tal(l, struct constraint_hash); constraint_hash_init(l->constraints); l->disabled_nodes = tal_arr(l, struct node_id, 0); - l->disabled_channels = tal_arr(l, struct short_channel_id_dir, 0); return l; } @@ -109,20 +127,6 @@ struct layer *new_layer(struct askrene *askrene, const char *name) return l; } -/* Swap if necessary to make into BOLT-7 order. Return direction. */ -static int canonicalize_node_order(const struct node_id **n1, - const struct node_id **n2) -{ - const struct node_id *tmp; - - if (node_id_cmp(*n1, *n2) < 0) - return 0; - tmp = *n2; - *n2 = *n1; - *n1 = tmp; - return 1; -} - struct layer *find_layer(struct askrene *askrene, const char *name) { struct layer *l; @@ -145,63 +149,77 @@ static struct local_channel *new_local_channel(struct layer *layer, struct amount_msat capacity) { struct local_channel *lc = tal(layer, struct local_channel); - lc->n1 = *n1; - lc->n2 = *n2; + + /* Swap if necessary to make into BOLT-7 order. */ + if (node_id_cmp(n1, n2) < 0) { + lc->n1 = *n1; + lc->n2 = *n2; + } else { + lc->n1 = *n2; + lc->n2 = *n1; + } lc->scid = scid; lc->capacity = capacity; - for (size_t i = 0; i < ARRAY_SIZE(lc->half); i++) - lc->half[i].enabled = false; - local_channel_hash_add(layer->local_channels, lc); return lc; } -bool layer_check_local_channel(const struct local_channel *lc, - const struct node_id *n1, - const struct node_id *n2, - struct amount_msat capacity) +void layer_add_local_channel(struct layer *layer, + const struct node_id *src, + const struct node_id *dst, + struct short_channel_id scid, + struct amount_msat capacity) { - canonicalize_node_order(&n1, &n2); - return node_id_eq(&lc->n1, n1) - && node_id_eq(&lc->n2, n2) - && amount_msat_eq(lc->capacity, capacity); + assert(!local_channel_hash_get(layer->local_channels, scid)); + new_local_channel(layer, src, dst, scid, capacity); } -/* Update a local channel to a layer: fails if you try to change capacity or nodes! */ -void layer_update_local_channel(struct layer *layer, - const struct node_id *src, - const struct node_id *dst, - struct short_channel_id scid, - struct amount_msat capacity, - struct amount_msat base_fee, - u32 proportional_fee, - u16 delay, - struct amount_msat htlc_min, - struct amount_msat htlc_max) +void layer_add_update_channel(struct layer *layer, + const struct short_channel_id_dir *scidd, + const bool *enabled, + const struct amount_msat *htlc_min, + const struct amount_msat *htlc_max, + const struct amount_msat *base_fee, + const u32 *proportional_fee, + const u16 *delay) { - struct local_channel *lc = local_channel_hash_get(layer->local_channels, scid); - int dir = canonicalize_node_order(&src, &dst); - struct short_channel_id_dir scidd; - - if (lc) { - assert(layer_check_local_channel(lc, src, dst, capacity)); - } else { - lc = new_local_channel(layer, src, dst, scid, capacity); + struct local_update *lu; + + lu = local_update_hash_get(layer->local_updates, scidd); + if (!lu) { + lu = tal(layer, struct local_update); + lu->scidd = *scidd; + lu->enabled = NULL; + lu->delay = NULL; + lu->proportional_fee = NULL; + lu->base_fee = lu->htlc_min = lu->htlc_max = NULL; + local_update_hash_add(layer->local_updates, lu); + } + if (enabled) { + tal_free(lu->enabled); + lu->enabled = tal_dup(lu, bool, enabled); + } + if (htlc_min) { + tal_free(lu->htlc_min); + lu->htlc_min = tal_dup(lu, struct amount_msat, htlc_min); + } + if (htlc_max) { + tal_free(lu->htlc_max); + lu->htlc_max = tal_dup(lu, struct amount_msat, htlc_max); + } + if (base_fee) { + tal_free(lu->base_fee); + lu->base_fee = tal_dup(lu, struct amount_msat, base_fee); + } + if (proportional_fee) { + tal_free(lu->proportional_fee); + lu->proportional_fee = tal_dup(lu, u32, proportional_fee); + } + if (delay) { + tal_free(lu->delay); + lu->delay = tal_dup(lu, u16, delay); } - - lc->half[dir].enabled = true; - lc->half[dir].htlc_min = htlc_min; - lc->half[dir].htlc_max = htlc_max; - lc->half[dir].base_fee = base_fee; - lc->half[dir].proportional_fee = proportional_fee; - lc->half[dir].delay = delay; - - /* We always add an explicit constraint for local channels, to simplify - * lookups. You can tell it's a fake one by the timestamp. */ - scidd.scid = scid; - scidd.dir = dir; - layer_update_constraint(layer, &scidd, UINT64_MAX, NULL, &capacity); } struct amount_msat local_channel_capacity(const struct local_channel *lc) @@ -298,17 +316,14 @@ void layer_add_disabled_node(struct layer *layer, const struct node_id *node) tal_arr_expand(&layer->disabled_nodes, *node); } -void layer_add_disabled_channel(struct layer *layer, const struct short_channel_id_dir *scidd) -{ - tal_arr_expand(&layer->disabled_channels, *scidd); -} - void layer_add_localmods(const struct layer *layer, const struct gossmap *gossmap, struct gossmap_localmods *localmods) { const struct local_channel *lc; struct local_channel_hash_iter lcit; + const struct local_update *lu; + struct local_update_hash_iter luit; /* First, disable all channels into blocked nodes (local updates * can add new ones)! */ @@ -335,61 +350,65 @@ void layer_add_localmods(const struct layer *layer, } } + /* Now create new channels */ for (lc = local_channel_hash_first(layer->local_channels, &lcit); lc; lc = local_channel_hash_next(layer->local_channels, &lcit)) { gossmap_local_addchan(localmods, &lc->n1, &lc->n2, lc->scid, lc->capacity, NULL); - for (size_t i = 0; i < ARRAY_SIZE(lc->half); i++) { - struct short_channel_id_dir scidd; - bool enabled = true; - if (!lc->half[i].enabled) - continue; - scidd.scid = lc->scid; - scidd.dir = i; - gossmap_local_updatechan(localmods, &scidd, - &enabled, - &lc->half[i].htlc_min, - &lc->half[i].htlc_max, - &lc->half[i].base_fee, - &lc->half[i].proportional_fee, - &lc->half[i].delay); - } } - /* Now disable any channels they asked us to */ - for (size_t i = 0; i < tal_count(layer->disabled_channels); i++) { - bool enabled = false; - gossmap_local_updatechan(localmods, - &layer->disabled_channels[i], - &enabled, - NULL, NULL, NULL, NULL, NULL); + /* Now update channels */ + /* Now modify channels, if they exist */ + for (lu = local_update_hash_first(layer->local_updates, &luit); + lu; + lu = local_update_hash_next(layer->local_updates, &luit)) { + gossmap_local_updatechan(localmods, &lu->scidd, + lu->enabled, + lu->htlc_min, + lu->htlc_max, + lu->base_fee, + lu->proportional_fee, + lu->delay); } } static void json_add_local_channel(struct json_stream *response, const char *fieldname, - const struct local_channel *lc, - int dir) + const struct local_channel *lc) { json_object_start(response, fieldname); - - if (dir == 0) { - json_add_node_id(response, "source", &lc->n1); - json_add_node_id(response, "destination", &lc->n2); - } else { - json_add_node_id(response, "source", &lc->n2); - json_add_node_id(response, "destination", &lc->n1); - } + json_add_node_id(response, "source", &lc->n1); + json_add_node_id(response, "destination", &lc->n2); json_add_short_channel_id(response, "short_channel_id", lc->scid); json_add_amount_msat(response, "capacity_msat", lc->capacity); - json_add_amount_msat(response, "htlc_minimum_msat", lc->half[dir].htlc_min); - json_add_amount_msat(response, "htlc_maximum_msat", lc->half[dir].htlc_max); - json_add_amount_msat(response, "fee_base_msat", lc->half[dir].base_fee); - json_add_u32(response, "fee_proportional_millionths", lc->half[dir].proportional_fee); - json_add_u32(response, "delay", lc->half[dir].delay); + json_object_end(response); +} +static void json_add_local_update(struct json_stream *response, + const char *fieldname, + const struct local_update *lu) +{ + json_object_start(response, fieldname); + json_add_short_channel_id_dir(response, "short_channel_id_dir", + lu->scidd); + if (lu->enabled) + json_add_bool(response, "enabled", *lu->enabled); + if (lu->htlc_min) + json_add_amount_msat(response, + "htlc_minimum_msat", *lu->htlc_min); + if (lu->htlc_max) + json_add_amount_msat(response, + "htlc_maximum_msat", *lu->htlc_max); + if (lu->base_fee) + json_add_amount_msat(response, "fee_base_msat", *lu->base_fee); + if (lu->proportional_fee) + json_add_u32(response, + "fee_proportional_millionths", + *lu->proportional_fee); + if (lu->delay) + json_add_u32(response, "cltv_expiry_delta", *lu->delay); json_object_end(response); } @@ -416,6 +435,8 @@ static void json_add_layer(struct json_stream *js, { struct local_channel_hash_iter lcit; const struct local_channel *lc; + const struct local_update *lu; + struct local_update_hash_iter luit; struct constraint_hash_iter conit; const struct constraint *c; @@ -425,18 +446,18 @@ static void json_add_layer(struct json_stream *js, for (size_t i = 0; i < tal_count(layer->disabled_nodes); i++) json_add_node_id(js, NULL, &layer->disabled_nodes[i]); json_array_end(js); - json_array_start(js, "disabled_channels"); - for (size_t i = 0; i < tal_count(layer->disabled_channels); i++) - json_add_short_channel_id_dir(js, NULL, layer->disabled_channels[i]); - json_array_end(js); json_array_start(js, "created_channels"); for (lc = local_channel_hash_first(layer->local_channels, &lcit); lc; lc = local_channel_hash_next(layer->local_channels, &lcit)) { - for (size_t i = 0; i < ARRAY_SIZE(lc->half); i++) { - if (lc->half[i].enabled) - json_add_local_channel(js, NULL, lc, i); - } + json_add_local_channel(js, NULL, lc); + } + json_array_end(js); + json_array_start(js, "channel_updates"); + for (lu = local_update_hash_first(layer->local_updates, &luit); + lu; + lu = local_update_hash_next(layer->local_updates, &luit)) { + json_add_local_update(js, NULL, lu); } json_array_end(js); json_array_start(js, "constraints"); diff --git a/plugins/askrene/layer.h b/plugins/askrene/layer.h index be5c4cddcfee..32fda7af5ceb 100644 --- a/plugins/askrene/layer.h +++ b/plugins/askrene/layer.h @@ -53,17 +53,22 @@ bool layer_check_local_channel(const struct local_channel *lc, const struct node_id *n2, struct amount_msat capacity); -/* Update a local channel to a layer: fails if you try to change capacity or nodes! */ -void layer_update_local_channel(struct layer *layer, - const struct node_id *src, - const struct node_id *dst, - struct short_channel_id scid, - struct amount_msat capacity, - struct amount_msat base_fee, - u32 proportional_fee, - u16 delay, - struct amount_msat htlc_min, - struct amount_msat htlc_max); +/* Add a local channel to a layer! */ +void layer_add_local_channel(struct layer *layer, + const struct node_id *src, + const struct node_id *dst, + struct short_channel_id scid, + struct amount_msat capacity); + +/* Update details on a channel (could be in this layer, or another) */ +void layer_add_update_channel(struct layer *layer, + const struct short_channel_id_dir *scidd, + const bool *enabled, + const struct amount_msat *htlc_min, + const struct amount_msat *htlc_max, + const struct amount_msat *base_fee, + const u32 *proportional_fee, + const u16 *delay); /* If any capacities of channels are limited, unset the corresponding element in * the capacities[] array */ @@ -93,10 +98,6 @@ size_t layer_trim_constraints(struct layer *layer, u64 cutoff); /* Add a disabled node to a layer. */ void layer_add_disabled_node(struct layer *layer, const struct node_id *node); -/* Add a disabled channel to a layer. */ -void layer_add_disabled_channel(struct layer *layer, - const struct short_channel_id_dir *scidd); - /* Print out a json object for this layer, or all if layer is NULL */ void json_add_layers(struct json_stream *js, struct askrene *askrene, diff --git a/tests/test_askrene.py b/tests/test_askrene.py index 40edd3cced78..fe7711b797d1 100644 --- a/tests/test_askrene.py +++ b/tests/test_askrene.py @@ -118,8 +118,8 @@ def test_layers(node_factory): expect = {'layer': 'test_layers', 'disabled_nodes': [], - 'disabled_channels': [], 'created_channels': [], + 'channel_updates': [], 'constraints': []} l2.rpc.askrene_create_layer('test_layers') l2.rpc.askrene_disable_node('test_layers', l1.info['id']) @@ -129,8 +129,9 @@ def test_layers(node_factory): with pytest.raises(RpcError, match="Unknown layer"): l2.rpc.askrene_listlayers('test_layers2') - l2.rpc.askrene_disable_channel('test_layers', "1x2x3/0") - expect['disabled_channels'].append("1x2x3/0") + l2.rpc.askrene_update_channel('test_layers', "0x0x1/0", False) + expect['channel_updates'].append({'short_channel_id_dir': "0x0x1/0", + 'enabled': False}) assert l2.rpc.askrene_listlayers('test_layers') == {'layers': [expect]} with pytest.raises(RpcError, match="Layer already exists"): l2.rpc.askrene_create_layer('test_layers') @@ -140,18 +141,44 @@ def test_layers(node_factory): l3.info['id'], l1.info['id'], '0x0x1', - '1000000sat', - 100, '900000sat', - 1, 2, 18) - expect['created_channels'].append({'source': l3.info['id'], - 'destination': l1.info['id'], + '1000000sat') + # src/dst gets turned into BOLT 7 order + expect['created_channels'].append({'source': l1.info['id'], + 'destination': l3.info['id'], 'short_channel_id': '0x0x1', - 'capacity_msat': 1000000000, - 'htlc_minimum_msat': 100, - 'htlc_maximum_msat': 900000000, - 'fee_base_msat': 1, - 'fee_proportional_millionths': 2, - 'delay': 18}) + 'capacity_msat': 1000000000}) + assert l2.rpc.askrene_listlayers('test_layers') == {'layers': [expect]} + + # And give details. + l2.rpc.askrene_update_channel(layer='test_layers', + short_channel_id_dir='0x0x1/0', + htlc_minimum_msat=100, + htlc_maximum_msat=900000000, + fee_base_msat=1, + fee_proportional_millionths=2, + cltv_expiry_delta=18) + # This is *still* disabled, since we disabled it above! + expect['channel_updates'] = [{'short_channel_id_dir': '0x0x1/0', + 'enabled': False, + 'htlc_minimum_msat': 100, + 'htlc_maximum_msat': 900000000, + 'fee_base_msat': 1, + 'fee_proportional_millionths': 2, + 'cltv_expiry_delta': 18}] + assert l2.rpc.askrene_listlayers('test_layers') == {'layers': [expect]} + + # Now enable (and change another value for good measure! + l2.rpc.askrene_update_channel(layer='test_layers', + short_channel_id_dir='0x0x1/0', + enabled=True, + cltv_expiry_delta=19) + expect['channel_updates'] = [{'short_channel_id_dir': '0x0x1/0', + 'enabled': True, + 'htlc_minimum_msat': 100, + 'htlc_maximum_msat': 900000000, + 'fee_base_msat': 1, + 'fee_proportional_millionths': 2, + 'cltv_expiry_delta': 19}] assert l2.rpc.askrene_listlayers('test_layers') == {'layers': [expect]} # We can tell it about made up channels... @@ -161,9 +188,7 @@ def test_layers(node_factory): 100000, 'unconstrained') last_timestamp = int(time.time()) + 1 - # Maximum for created channels is the real capacity. expect['constraints'].append({'short_channel_id_dir': '0x0x1/1', - 'maximum_msat': 1000000000, 'minimum_msat': 100000}) # Check timestamp first. listlayers = l2.rpc.askrene_listlayers('test_layers') @@ -282,7 +307,9 @@ def test_getroutes(node_factory): # Disabling channels makes getroutes fail l1.rpc.askrene_create_layer('chans_disabled') - l1.rpc.askrene_disable_channel("chans_disabled", '0x1x0/1') + l1.rpc.askrene_update_channel(layer="chans_disabled", + short_channel_id_dir='0x1x0/1', + enabled=False) with pytest.raises(RpcError, match="Could not find route"): l1.rpc.getroutes(source=nodemap[0], destination=nodemap[1], @@ -591,9 +618,15 @@ def test_sourcefree_on_mods(node_factory, bitcoind): nodemap[0], l1.info['id'], '0x3x3', - '1000000sat', - 100, '900000sat', - 1000, 2000, 18) + '1000000sat') + l1.rpc.askrene_update_channel(layer='test_layers', + short_channel_id_dir=f'0x3x3/{direction(nodemap[0], l1.info["id"])}', + enabled=True, + htlc_minimum_msat=100, + htlc_maximum_msat='900000sat', + fee_base_msat=1000, + fee_proportional_millionths=2000, + cltv_expiry_delta=18) routes = l1.rpc.getroutes(source=nodemap[0], destination=l1.info['id'], amount_msat=1000000, From e54c0f8dedd7c605e05d0291fc2fe1d9ce46de76 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:08:53 +0930 Subject: [PATCH 41/51] askrene: don't replace constraints, simply accumulate. Lagrang3 points out it's less useful (when we time them out), and probably a premature optimization anyway. Suggested-by: Lagrang3 Signed-off-by: Rusty Russell --- plugins/askrene/askrene.c | 22 ++++--------- plugins/askrene/layer.c | 69 +++++++++++++++++++++++---------------- plugins/askrene/layer.h | 34 ++++++++----------- 3 files changed, 61 insertions(+), 64 deletions(-) diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 7d71e1728c28..759004cfc18d 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -443,16 +443,8 @@ void get_constraints(const struct route_query *rq, /* Look through layers for any constraints (might be dummy * ones, for created channels!) */ - for (size_t i = 0; i < tal_count(rq->layers); i++) { - const struct constraint *c; - c = layer_find_constraint(rq->layers[i], &scidd); - if (c) { - if (amount_msat_greater(c->min, *min)) - *min = c->min; - if (amount_msat_less(c->max, *max)) - *max = c->max; - } - } + for (size_t i = 0; i < tal_count(rq->layers); i++) + layer_apply_constraints(rq->layers[i], &scidd, min, max); /* Might be here because it's reserved, but capacity is normal. */ if (amount_msat_eq(*max, AMOUNT_MSAT(-1ULL))) @@ -584,7 +576,7 @@ static void add_localchan(struct gossmap_localmods *mods, } /* Known capacity on local channels (ts = max) */ - layer_update_constraint(info->local_layer, scidd, UINT64_MAX, &spendable, &spendable); + layer_add_constraint(info->local_layer, scidd, UINT64_MAX, &spendable, &spendable); } static struct command_result * @@ -824,16 +816,16 @@ static struct command_result *json_askrene_inform_channel(struct command *cmd, "Amount overflow with reserves"); if (command_check_only(cmd)) return command_check_done(cmd); - c = layer_update_constraint(layer, scidd, time_now().ts.tv_sec, - NULL, amount); + c = layer_add_constraint(layer, scidd, time_now().ts.tv_sec, + NULL, amount); goto output; case INFORM_UNCONSTRAINED: /* It passed, so the capacity is at least this much (minimal assumption is * that no reserves were used) */ if (command_check_only(cmd)) return command_check_done(cmd); - c = layer_update_constraint(layer, scidd, time_now().ts.tv_sec, - amount, NULL); + c = layer_add_constraint(layer, scidd, time_now().ts.tv_sec, + amount, NULL); goto output; case INFORM_SUCCEEDED: /* FIXME: We could do something useful here! */ diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index 4a6e3ffb7591..d70fff4fea2e 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -27,6 +27,17 @@ struct local_update { const struct amount_msat *htlc_min, *htlc_max; }; +/* A constraint reflects something we learned about a channel */ +struct constraint { + struct short_channel_id_dir scidd; + /* Time this constraint was last updated */ + u64 timestamp; + /* Non-zero means set */ + struct amount_msat min; + /* Non-0xFFFFF.... means set */ + struct amount_msat max; +}; + static const struct short_channel_id_dir * constraint_scidd(const struct constraint *c) { @@ -233,43 +244,45 @@ const struct local_channel *layer_find_local_channel(const struct layer *layer, return local_channel_hash_get(layer->local_channels, scid); } -static struct constraint *layer_find_constraint_nonconst(const struct layer *layer, - const struct short_channel_id_dir *scidd) +void layer_apply_constraints(const struct layer *layer, + const struct short_channel_id_dir *scidd, + struct amount_msat *min, + struct amount_msat *max) { - return constraint_hash_get(layer->constraints, scidd); -} + struct constraint *c; + struct constraint_hash_iter cit; -/* Public one returns const */ -const struct constraint *layer_find_constraint(const struct layer *layer, - const struct short_channel_id_dir *scidd) -{ - return layer_find_constraint_nonconst(layer, scidd); + /* We can have more than one: apply them all! */ + for (c = constraint_hash_getfirst(layer->constraints, scidd, &cit); + c; + c = constraint_hash_getnext(layer->constraints, scidd, &cit)) { + if (amount_msat_greater(c->min, *min)) + *min = c->min; + if (amount_msat_less(c->max, *max)) + *max = c->max; + } } -const struct constraint *layer_update_constraint(struct layer *layer, - const struct short_channel_id_dir *scidd, - u64 timestamp, - const struct amount_msat *min, - const struct amount_msat *max) +const struct constraint *layer_add_constraint(struct layer *layer, + const struct short_channel_id_dir *scidd, + u64 timestamp, + const struct amount_msat *min, + const struct amount_msat *max) { - struct constraint *c = layer_find_constraint_nonconst(layer, scidd); - if (!c) { - c = tal(layer, struct constraint); - c->scidd = *scidd; - c->min = AMOUNT_MSAT(0); - c->max = AMOUNT_MSAT(UINT64_MAX); - constraint_hash_add(layer->constraints, c); - } + struct constraint *c = tal(layer, struct constraint); + c->scidd = *scidd; - /* Increase minimum? */ - if (min && amount_msat_greater(*min, c->min)) + if (min) c->min = *min; - - /* Decrease maximum? */ - if (max && amount_msat_less(*max, c->max)) + else + c->min = AMOUNT_MSAT(0); + if (max) c->max = *max; - + else + c->max = AMOUNT_MSAT(UINT64_MAX); c->timestamp = timestamp; + + constraint_hash_add(layer->constraints, c); return c; } diff --git a/plugins/askrene/layer.h b/plugins/askrene/layer.h index 32fda7af5ceb..468dd7326c79 100644 --- a/plugins/askrene/layer.h +++ b/plugins/askrene/layer.h @@ -17,17 +17,6 @@ struct askrene; struct layer; struct json_stream; -/* A constraint reflects something we learned about a channel */ -struct constraint { - struct short_channel_id_dir scidd; - /* Time this constraint was last updated */ - u64 timestamp; - /* Non-zero means set */ - struct amount_msat min; - /* Non-0xFFFFF.... means set */ - struct amount_msat max; -}; - /* Look up a layer by name. */ struct layer *find_layer(struct askrene *askrene, const char *name); @@ -76,16 +65,19 @@ void layer_clear_overridden_capacities(const struct layer *layer, const struct gossmap *gossmap, fp16_t *capacities); -/* Find a constraint in a layer. */ -const struct constraint *layer_find_constraint(const struct layer *layer, - const struct short_channel_id_dir *scidd); - -/* Add/update one or more constraints on a layer. */ -const struct constraint *layer_update_constraint(struct layer *layer, - const struct short_channel_id_dir *scidd, - u64 timestamp, - const struct amount_msat *min, - const struct amount_msat *max); +/* Apply constraints from a layer (reduce min, increase max). */ +void layer_apply_constraints(const struct layer *layer, + const struct short_channel_id_dir *scidd, + struct amount_msat *min, + struct amount_msat *max) + NO_NULL_ARGS; + +/* Add one or more constraints on a layer. */ +const struct constraint *layer_add_constraint(struct layer *layer, + const struct short_channel_id_dir *scidd, + u64 timestamp, + const struct amount_msat *min, + const struct amount_msat *max); /* Add local channels from this layer. */ void layer_add_localmods(const struct layer *layer, From 630ec6a566e1379f2a0b4a0eb114a7e03d561af9 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:09:53 +0930 Subject: [PATCH 42/51] askrene: give better feedback when we can't find a suitable route. This turns out to be critical for users: also stops them from bothering us when their node is offline or has insufficient capacity! Signed-off-by: Rusty Russell --- plugins/askrene/Makefile | 6 +- plugins/askrene/askrene.c | 8 +- plugins/askrene/explain_failure.c | 290 ++++++++++++++++++++++++++++++ plugins/askrene/explain_failure.h | 16 ++ plugins/askrene/layer.c | 15 ++ plugins/askrene/layer.h | 6 + plugins/askrene/reserve.c | 26 +++ plugins/askrene/reserve.h | 5 + tests/test_askrene.py | 44 ++++- 9 files changed, 404 insertions(+), 12 deletions(-) create mode 100644 plugins/askrene/explain_failure.c create mode 100644 plugins/askrene/explain_failure.h diff --git a/plugins/askrene/Makefile b/plugins/askrene/Makefile index a55136f75753..989905aee192 100644 --- a/plugins/askrene/Makefile +++ b/plugins/askrene/Makefile @@ -1,5 +1,5 @@ -PLUGIN_ASKRENE_SRC := plugins/askrene/askrene.c plugins/askrene/layer.c plugins/askrene/reserve.c plugins/askrene/mcf.c plugins/askrene/dijkstra.c plugins/askrene/flow.c plugins/askrene/refine.c -PLUGIN_ASKRENE_HEADER := plugins/askrene/askrene.h plugins/askrene/layer.h plugins/askrene/reserve.h plugins/askrene/mcf.h plugins/askrene/dijkstra.h plugins/askrene/flow.h plugins/askrene/refine.h +PLUGIN_ASKRENE_SRC := plugins/askrene/askrene.c plugins/askrene/layer.c plugins/askrene/reserve.c plugins/askrene/mcf.c plugins/askrene/dijkstra.c plugins/askrene/flow.c plugins/askrene/refine.c plugins/askrene/explain_failure.c +PLUGIN_ASKRENE_HEADER := plugins/askrene/askrene.h plugins/askrene/layer.h plugins/askrene/reserve.h plugins/askrene/mcf.h plugins/askrene/dijkstra.h plugins/askrene/flow.h plugins/askrene/refine.h plugins/askrene/explain_failure.h PLUGIN_ASKRENE_OBJS := $(PLUGIN_ASKRENE_SRC:.c=.o) $(PLUGIN_ASKRENE_OBJS): $(PLUGIN_ASKRENE_HEADER) @@ -7,4 +7,4 @@ $(PLUGIN_ASKRENE_OBJS): $(PLUGIN_ASKRENE_HEADER) ALL_C_SOURCES += $(PLUGIN_ASKRENE_SRC) ALL_C_HEADERS += $(PLUGIN_ASKRENE_HEADER) -plugins/cln-askrene: $(PLUGIN_ASKRENE_OBJS) $(PLUGIN_LIB_OBJS) $(PLUGIN_COMMON_OBJS) $(JSMN_OBJS) $(CCAN_OBJS) bitcoin/chainparams.o common/gossmap.o common/sciddir_or_pubkey.o common/gossmods_listpeerchannels.o common/fp16.o common/dijkstra.o common/bolt12.o common/bolt12_merkle.o wire/bolt12_wiregen.o wire/onion_wiregen.o +plugins/cln-askrene: $(PLUGIN_ASKRENE_OBJS) $(PLUGIN_LIB_OBJS) $(PLUGIN_COMMON_OBJS) $(JSMN_OBJS) $(CCAN_OBJS) bitcoin/chainparams.o common/gossmap.o common/sciddir_or_pubkey.o common/gossmods_listpeerchannels.o common/fp16.o common/dijkstra.o common/bolt12.o common/bolt12_merkle.o wire/bolt12_wiregen.o wire/onion_wiregen.o common/route.o diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index 759004cfc18d..ab33b9f57bee 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -9,6 +9,7 @@ #include "config.h" #include #include +#include #include #include #include @@ -16,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -223,6 +225,7 @@ struct amount_msat get_additional_per_htlc_cost(const struct route_query *rq, return AMOUNT_MSAT(0); } + /* Returns an error message, or sets *routes */ static const char *get_routes(const tal_t *ctx, struct command *cmd, @@ -327,10 +330,7 @@ static const char *get_routes(const tal_t *ctx, flows = minflow(rq, rq, srcnode, dstnode, amount, mu, delay_feefactor, base_fee_penalty, prob_cost_factor); if (!flows) { - /* FIXME: disjktra here to see if there is any route, and - * diagnose problem (offline peers? Not enough capacity at - * our end? Not enough at theirs?) */ - ret = tal_fmt(ctx, "Could not find route"); + ret = explain_failure(ctx, rq, srcnode, dstnode, amount); goto out; } diff --git a/plugins/askrene/explain_failure.c b/plugins/askrene/explain_failure.c new file mode 100644 index 000000000000..1369a88d2ea1 --- /dev/null +++ b/plugins/askrene/explain_failure.c @@ -0,0 +1,290 @@ +#include "config.h" +#include +#include +#include +#include +#include +#include +#include +#include + +#define NO_USABLE_PATHS_STRING "We could not find a usable set of paths." + +/* Dijkstra, reduced to ignore anything but connectivity */ +static bool always_true(const struct gossmap *map, + const struct gossmap_chan *c, + int dir, + struct amount_msat amount, + void *unused) +{ + return true; +} + +static u64 route_score_one(struct amount_msat fee UNUSED, + struct amount_msat risk UNUSED, + struct amount_msat total UNUSED, + int dir UNUSED, + const struct gossmap_chan *c UNUSED) +{ + return 1; +} + +/* This mirrors get_constraints() */ +static const char *why_max_constrained(const tal_t *ctx, + const struct route_query *rq, + struct short_channel_id_dir *scidd, + struct amount_msat amount) +{ + char *ret = NULL; + const char *reservations; + const struct layer *constrains = NULL; + struct amount_msat max = amount; + + /* Figure out the layer that constrains us (most) */ + for (size_t i = 0; i < tal_count(rq->layers); i++) { + struct amount_msat min = AMOUNT_MSAT(0), new_max = max; + + layer_apply_constraints(rq->layers[i], scidd, &min, &new_max); + if (!amount_msat_eq(new_max, max)) + constrains = rq->layers[i]; + max = new_max; + } + + if (constrains) { + if (!ret) + ret = tal_strdup(ctx, ""); + else + tal_append_fmt(&ret, ", "); + tal_append_fmt(&ret, "layer %s says max is %s", + layer_name(constrains), + fmt_amount_msat(tmpctx, max)); + } + + reservations = fmt_reservations(tmpctx, rq->reserved, scidd); + if (reservations) { + if (!ret) + ret = tal_strdup(ctx, ""); + else + tal_append_fmt(&ret, " and "); + tal_append_fmt(&ret, "already reserved %s", reservations); + } + + /* If that doesn't explain it, perhaps it violates htlc_max? */ + if (!ret) { + struct gossmap_chan *c = gossmap_find_chan(rq->gossmap, &scidd->scid); + fp16_t htlc_max = c->half[scidd->dir].htlc_max; + if (amount_msat_greater_fp16(amount, htlc_max)) + ret = tal_fmt(ctx, "exceeds htlc_maximum_msat ~%s", + fmt_amount_msat(tmpctx, + amount_msat(fp16_to_u64(htlc_max)))); + } + + /* This seems unlikely, but don't return NULL. */ + if (!ret) + ret = tal_fmt(ctx, "is constrained"); + return ret; +} + +struct stat { + size_t num_channels; + struct amount_msat capacity; +}; + +struct node_stats { + struct stat total, gossip_known, enabled; +}; + +enum node_direction { + INTO_NODE, + OUT_OF_NODE, +}; + +static void add_stat(struct stat *stat, + struct amount_msat amount) +{ + stat->num_channels++; + if (!amount_msat_accumulate(&stat->capacity, amount)) + abort(); +} + +static void node_stats(const struct route_query *rq, + const struct gossmap_node *node, + enum node_direction node_direction, + struct node_stats *stats) +{ + memset(stats, 0, sizeof(*stats)); + for (size_t i = 0; i < node->num_chans; i++) { + int dir; + struct gossmap_chan *c; + struct amount_msat cap_msat; + + c = gossmap_nth_chan(rq->gossmap, node, i, &dir); + cap_msat = gossmap_chan_get_capacity(rq->gossmap, c); + + if (node_direction == INTO_NODE) + dir = !dir; + + add_stat(&stats->total, cap_msat); + if (gossmap_chan_set(c, dir)) + add_stat(&stats->gossip_known, cap_msat); + if (c->half[dir].enabled) + add_stat(&stats->enabled, cap_msat); + } +} + +static const char *check_capacity(const tal_t *ctx, + const struct route_query *rq, + const struct gossmap_node *node, + enum node_direction node_direction, + struct amount_msat amount, + const char *name) +{ + struct node_stats stats; + + node_stats(rq, node, node_direction, &stats); + if (amount_msat_greater(amount, stats.total.capacity)) { + return tal_fmt(ctx, + NO_USABLE_PATHS_STRING + " Total %s capacity is only %s" + " (in %zu channels).", + name, + fmt_amount_msat(tmpctx, stats.total.capacity), + stats.total.num_channels); + } + if (amount_msat_greater(amount, stats.gossip_known.capacity)) { + return tal_fmt(ctx, + NO_USABLE_PATHS_STRING + " Missing gossip for %s: only known %zu/%zu channels, leaving capacity only %s of %s.", + name, + stats.gossip_known.num_channels, + stats.total.num_channels, + fmt_amount_msat(tmpctx, stats.gossip_known.capacity), + fmt_amount_msat(tmpctx, stats.total.capacity)); + } + if (amount_msat_greater(amount, stats.enabled.capacity)) { + return tal_fmt(ctx, + NO_USABLE_PATHS_STRING + " The %s has disabled %zu of %zu channels, leaving capacity only %s of %s.", + name, + stats.total.num_channels - stats.enabled.num_channels, + stats.total.num_channels, + fmt_amount_msat(tmpctx, stats.enabled.capacity), + fmt_amount_msat(tmpctx, stats.total.capacity)); + } + return NULL; +} + +/* Return description of why scidd is disabled scidd */ +static const char *describe_disabled(const tal_t *ctx, + const struct route_query *rq, + const struct short_channel_id_dir *scidd) +{ + for (int i = tal_count(rq->layers) - 1; i >= 0; i--) { + if (layer_disables(rq->layers[i], scidd)) { + return tal_fmt(ctx, "marked disabled by layer %s.", + layer_name(rq->layers[i])); + } + } + + return tal_fmt(ctx, "marked disabled by gossip message."); +} + +static const char *describe_capacity(const tal_t *ctx, + const struct route_query *rq, + const struct short_channel_id_dir *scidd, + struct amount_msat amount) +{ + for (int i = tal_count(rq->layers) - 1; i >= 0; i--) { + if (layer_created(rq->layers[i], scidd->scid)) { + return tal_fmt(ctx, " (created by layer %s) isn't big enough to carry %s.", + layer_name(rq->layers[i]), + fmt_amount_msat(tmpctx, amount)); + } + } + + return tal_fmt(ctx, "isn't big enough to carry %s.", + fmt_amount_msat(tmpctx, amount)); +} + +/* We failed to find a flow at all. Why? */ +const char *explain_failure(const tal_t *ctx, + const struct route_query *rq, + const struct gossmap_node *srcnode, + const struct gossmap_node *dstnode, + struct amount_msat amount) +{ + const struct route_hop *hops; + const struct dijkstra *dij; + char *path; + const char *cap_check; + + /* Do we have enough funds? */ + cap_check = check_capacity(ctx, rq, srcnode, OUT_OF_NODE, + amount, "source"); + if (cap_check) + return cap_check; + + /* Does destination have enough capacity? */ + cap_check = check_capacity(ctx, rq, dstnode, INTO_NODE, + amount, "destination"); + if (cap_check) + return cap_check; + + /* OK, fall back to telling them why didn't shortest path + * work. This covers the "but I have a direct channel!" + * case. */ + dij = dijkstra(tmpctx, rq->gossmap, dstnode, AMOUNT_MSAT(0), 0, + always_true, route_score_one, NULL); + hops = route_from_dijkstra(tmpctx, rq->gossmap, dij, srcnode, + AMOUNT_MSAT(0), 0); + if (!hops) + return tal_fmt(ctx, "There is no connection between source and destination at all"); + + /* Description of shortest path */ + path = tal_strdup(tmpctx, ""); + for (size_t i = 0; i < tal_count(hops); i++) { + tal_append_fmt(&path, "%s%s", + i > 0 ? "->" : "", + fmt_short_channel_id(tmpctx, hops[i].scid)); + } + + /* Now walk through this: is it disabled? Insuff capacity? */ + for (size_t i = 0; i < tal_count(hops); i++) { + const char *explanation; + struct short_channel_id_dir scidd; + struct gossmap_chan *c; + struct amount_msat cap_msat; + + scidd.scid = hops[i].scid; + scidd.dir = hops[i].direction; + c = gossmap_find_chan(rq->gossmap, &scidd.scid); + cap_msat = gossmap_chan_get_capacity(rq->gossmap, c); + if (!gossmap_chan_set(c, scidd.dir)) + explanation = "has no gossip"; + else if (!c->half[scidd.dir].enabled) + explanation = describe_disabled(tmpctx, rq, &scidd); + else if (amount_msat_greater(amount, cap_msat)) + explanation = describe_capacity(tmpctx, rq, &scidd, amount); + else { + struct amount_msat min, max; + get_constraints(rq, c, scidd.dir, &min, &max); + if (amount_msat_less(max, amount)) { + explanation = why_max_constrained(tmpctx, rq, + &scidd, amount); + } else + continue; + } + + return tal_fmt(ctx, + NO_USABLE_PATHS_STRING + " The shortest path is %s, but %s %s", + path, + fmt_short_channel_id_dir(tmpctx, &scidd), + explanation); + } + + return tal_fmt(ctx, + "Actually, I'm not sure why we didn't find the" + " obvious route %s: perhaps this is a bug?", + path); +} diff --git a/plugins/askrene/explain_failure.h b/plugins/askrene/explain_failure.h new file mode 100644 index 000000000000..ed470f8298dc --- /dev/null +++ b/plugins/askrene/explain_failure.h @@ -0,0 +1,16 @@ +#ifndef LIGHTNING_PLUGINS_ASKRENE_EXPLAIN_FAILURE_H +#define LIGHTNING_PLUGINS_ASKRENE_EXPLAIN_FAILURE_H +#include "config.h" +#include + +struct route_query; +struct gossmap_node; + +/* When MCF returns nothing, try to explain why */ +const char *explain_failure(const tal_t *ctx, + const struct route_query *rq, + const struct gossmap_node *srcnode, + const struct gossmap_node *dstnode, + struct amount_msat amount); + +#endif /* LIGHTNING_PLUGINS_ASKRENE_EXPLAIN_FAILURE_H */ diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index d70fff4fea2e..26d602853812 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -502,6 +502,21 @@ void json_add_layers(struct json_stream *js, json_array_end(js); } +bool layer_created(const struct layer *layer, struct short_channel_id scid) +{ + return local_channel_hash_get(layer->local_channels, scid); +} + +bool layer_disables(const struct layer *layer, + const struct short_channel_id_dir *scidd) +{ + const struct local_update *lu; + + lu = local_update_hash_get(layer->local_updates, scidd); + + return (lu && lu->enabled && *lu->enabled == false); +} + void layer_memleak_mark(struct askrene *askrene, struct htable *memtable) { struct layer *l; diff --git a/plugins/askrene/layer.h b/plugins/askrene/layer.h index 468dd7326c79..b8e700fdc46e 100644 --- a/plugins/askrene/layer.h +++ b/plugins/askrene/layer.h @@ -102,6 +102,12 @@ void json_add_constraint(struct json_stream *js, const struct constraint *c, const struct layer *layer); +/* For explain_failure: did this layer create this scid? */ +bool layer_created(const struct layer *layer, struct short_channel_id scid); + +/* For explain_failure: did this layer disable this channel? */ +bool layer_disables(const struct layer *layer, const struct short_channel_id_dir *scidd); + /* Scan for memleaks */ void layer_memleak_mark(struct askrene *askrene, struct htable *memtable); #endif /* LIGHTNING_PLUGINS_ASKRENE_LAYER_H */ diff --git a/plugins/askrene/reserve.c b/plugins/askrene/reserve.c index a58bc6d5f24e..82c9096d3c27 100644 --- a/plugins/askrene/reserve.c +++ b/plugins/askrene/reserve.c @@ -151,6 +151,32 @@ void json_add_reservations(struct json_stream *js, json_array_end(js); } +const char *fmt_reservations(const tal_t *ctx, + const struct reserve_htable *reserved, + const struct short_channel_id_dir *scidd) +{ + struct reserve *r; + struct reserve_htable_iter rit; + char *ret = NULL; + + for (r = reserve_htable_getfirst(reserved, scidd, &rit); + r; + r = reserve_htable_getnext(reserved, scidd, &rit)) { + u64 seconds; + if (!ret) + ret = tal_strdup(ctx, ""); + else + tal_append_fmt(&ret, ", "); + tal_append_fmt(&ret, "%s by command %s", + fmt_amount_msat(tmpctx, r->rhop.amount), r->cmd_id); + seconds = timemono_between(time_mono(), r->timestamp).ts.tv_sec; + /* Add a note if it's old */ + if (seconds > 0) + tal_append_fmt(&ret, " (%"PRIu64" seconds ago)", seconds); + } + return ret; +} + void reserve_memleak_mark(struct askrene *askrene, struct htable *memtable) { memleak_scan_htable(memtable, &askrene->reserved->raw); diff --git a/plugins/askrene/reserve.h b/plugins/askrene/reserve.h index 103ed11083cd..1c9e71eaaf60 100644 --- a/plugins/askrene/reserve.h +++ b/plugins/askrene/reserve.h @@ -40,6 +40,11 @@ bool reserve_accumulate(const struct reserve_htable *reserved, const struct short_channel_id_dir *scidd, struct amount_msat *amount); +/* To explain why we couldn't route */ +const char *fmt_reservations(const tal_t *ctx, + const struct reserve_htable *reserved, + const struct short_channel_id_dir *scidd); + /* Print out a json object for all reservations */ void json_add_reservations(struct json_stream *js, const struct reserve_htable *reserved, diff --git a/tests/test_askrene.py b/tests/test_askrene.py index fe7711b797d1..fe065c1e0e5b 100644 --- a/tests/test_askrene.py +++ b/tests/test_askrene.py @@ -20,8 +20,10 @@ def test_reserve(node_factory): l1, l2, l3 = node_factory.line_graph(3, wait_for_announce=True) assert l1.rpc.askrene_listreservations() == {'reservations': []} - scid12dir = f"{first_scid(l1, l2)}/{direction(l1.info['id'], l2.info['id'])}" - scid23dir = f"{first_scid(l2, l3)}/{direction(l2.info['id'], l3.info['id'])}" + scid12 = first_scid(l1, l2) + scid23 = first_scid(l2, l3) + scid12dir = f"{scid12}/{direction(l1.info['id'], l2.info['id'])}" + scid23dir = f"{scid23}/{direction(l2.info['id'], l3.info['id'])}" initial_prob = l1.rpc.getroutes(source=l1.info['id'], destination=l3.info['id'], @@ -60,8 +62,12 @@ def test_reserve(node_factory): {'short_channel_id_dir': scid23dir, 'amount_msat': 1000_000_000_000}]) - # FIXME: better error! - with pytest.raises(RpcError, match="Could not find route"): + # Keep it consistent: the below will mention a time if >= 1 seconds old, + # which might happen without the sleep on slow machines. + time.sleep(2) + + # Reservations can be in either order. + with pytest.raises(RpcError, match=rf'We could not find a usable set of paths. The shortest path is {scid12}->{scid23}, but {scid12dir} already reserved 10000000*msat by command ".*" \([0-9]* seconds ago\), 10000000*msat by command ".*" \([0-9]* seconds ago\)'): l1.rpc.getroutes(source=l1.info['id'], destination=l3.info['id'], amount_msat=1000000, @@ -305,18 +311,46 @@ def test_getroutes(node_factory): # Set up l1 with this as the gossip_store l1 = node_factory.get_node(gossip_store_file=gsfile.name) + # Too much should give a decent explanation. + with pytest.raises(RpcError, match=r"We could not find a usable set of paths\. The shortest path is 0x1x0, but 0x1x0/1 isn't big enough to carry 1000000001msat\."): + l1.rpc.getroutes(source=nodemap[0], + destination=nodemap[1], + amount_msat=1000000001, + layers=[], + maxfee_msat=100000000, + final_cltv=99) + + # This should tell us source doesn't have enough. + with pytest.raises(RpcError, match=r"We could not find a usable set of paths\. Total source capacity is only 1019000000msat \(in 3 channels\)\."): + l1.rpc.getroutes(source=nodemap[0], + destination=nodemap[1], + amount_msat=2000000001, + layers=[], + maxfee_msat=20000000, + final_cltv=99) + + # This should tell us dest doesn't have enough. + with pytest.raises(RpcError, match=r"We could not find a usable set of paths\. Total destination capacity is only 1000000000msat \(in 1 channels\)\."): + l1.rpc.getroutes(source=nodemap[0], + destination=nodemap[4], + amount_msat=1000000001, + layers=[], + maxfee_msat=30000000, + final_cltv=99) + # Disabling channels makes getroutes fail l1.rpc.askrene_create_layer('chans_disabled') l1.rpc.askrene_update_channel(layer="chans_disabled", short_channel_id_dir='0x1x0/1', enabled=False) - with pytest.raises(RpcError, match="Could not find route"): + with pytest.raises(RpcError, match=r"We could not find a usable set of paths\. The shortest path is 0x1x0, but 0x1x0/1 marked disabled by layer chans_disabled\."): l1.rpc.getroutes(source=nodemap[0], destination=nodemap[1], amount_msat=1000, layers=["chans_disabled"], maxfee_msat=1000, final_cltv=99) + # Start easy assert l1.rpc.getroutes(source=nodemap[0], destination=nodemap[1], From e3c9bc6d3a893234adb52ca6a5ba4d94aaff0665 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:10:53 +0930 Subject: [PATCH 43/51] askrene: trivial changes to avoid -O3 compiler warnings. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The code is a bit too complex for gcc to track it: ``` In file included from ccan/ccan/tal/str/str.h:7, from plugins/askrene/askrene.c:11: plugins/askrene/askrene.c: In function ‘do_getroutes’: ccan/ccan/tal/tal.h:324:23: error: ‘routes’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 324 | #define tal_count(p) (tal_bytelen(p) / sizeof(*p)) | ^~~~~~~~~~~ plugins/askrene/askrene.c:476:24: note: ‘routes’ was declared here 476 | struct route **routes; | ^~~~~~ plugins/askrene/askrene.c:475:29: error: ‘amounts’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 475 | struct amount_msat *amounts; | ^~~~~~~ plugins/askrene/askrene.c:488:69: error: ‘probability’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 488 | json_add_u64(response, "probability_ppm", (u64)(probability * 1000000)); | ~~~~~~~~~~~~~^~~~~~~~~~ cc plugins/askrene/dijkstra.c cc1: all warnings being treated as errors ``` On my local machine, it also warns in param_dev_channel, so I fixed that too. Signed-off-by: Rusty Russell --- lightningd/peer_control.c | 2 +- plugins/askrene/askrene.c | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lightningd/peer_control.c b/lightningd/peer_control.c index d514f59364cb..755a06f9d9d3 100644 --- a/lightningd/peer_control.c +++ b/lightningd/peer_control.c @@ -3167,7 +3167,7 @@ static struct command_result *param_dev_channel(struct command *cmd, const jsmntok_t *tok, struct channel **channel) { - struct peer *peer; + struct peer *peer COMPILER_WANTS_INIT("gcc version 12.3.0 -O3"); struct command_result *res; bool more_than_one; diff --git a/plugins/askrene/askrene.c b/plugins/askrene/askrene.c index ab33b9f57bee..db720f0d96ba 100644 --- a/plugins/askrene/askrene.c +++ b/plugins/askrene/askrene.c @@ -301,13 +301,13 @@ static const char *get_routes(const tal_t *ctx, srcnode = gossmap_find_node(askrene->gossmap, source); if (!srcnode) { ret = tal_fmt(ctx, "Unknown source node %s", fmt_node_id(tmpctx, source)); - goto out; + goto fail; } dstnode = gossmap_find_node(askrene->gossmap, dest); if (!dstnode) { ret = tal_fmt(ctx, "Unknown destination node %s", fmt_node_id(tmpctx, dest)); - goto out; + goto fail; } delay_feefactor = 1.0/1000000; @@ -331,7 +331,7 @@ static const char *get_routes(const tal_t *ctx, mu, delay_feefactor, base_fee_penalty, prob_cost_factor); if (!flows) { ret = explain_failure(ctx, rq, srcnode, dstnode, amount); - goto out; + goto fail; } /* Too much delay? */ @@ -348,7 +348,7 @@ static const char *get_routes(const tal_t *ctx, mu, delay_feefactor, base_fee_penalty, prob_cost_factor); if (!flows || delay_feefactor > 10) { ret = tal_fmt(ctx, "Could not find route without excessive delays"); - goto out; + goto fail; } } @@ -359,13 +359,13 @@ static const char *get_routes(const tal_t *ctx, mu, delay_feefactor, base_fee_penalty, prob_cost_factor); if (!flows || mu == 100) { ret = tal_fmt(ctx, "Could not find route without excessive cost"); - goto out; + goto fail; } } if (finalcltv + flows_worst_delay(flows) > 2016) { ret = tal_fmt(ctx, "Could not find route without excessive cost or delays"); - goto out; + goto fail; } /* The above did not take into account the extra funds to pay @@ -374,7 +374,7 @@ static const char *get_routes(const tal_t *ctx, * still possible */ ret = refine_with_fees_and_limits(ctx, rq, amount, &flows); if (ret) - goto out; + goto fail; /* Convert back into routes, with delay and other information fixed */ *routes = tal_arr(ctx, struct route *, tal_count(flows)); @@ -412,9 +412,13 @@ static const char *get_routes(const tal_t *ctx, } *probability = flowset_probability(flows, rq); - ret = NULL; + gossmap_remove_localmods(askrene->gossmap, localmods); + return NULL; -out: + /* Explicit failure path keeps the compiler (gcc version 12.3.0 -O3) from + * warning about uninitialized variables in the caller */ +fail: + assert(ret != NULL); gossmap_remove_localmods(askrene->gossmap, localmods); return ret; } From b8acd3b37ca2680ee0a988837f3d3c56b17e2885 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Fri, 4 Oct 2024 09:17:12 +0930 Subject: [PATCH 44/51] askrene: more code tweaks on feedback from Lagrang3. 1. describe_disabled should point out if node itself is disabled. 2. Hoist constraint check for neater if branching. 3. Use amount_msat_max/min for greater clarity. 4. Simply disable channels, don't zero htlc_min/max when node disabled. I also fixed the diagnostic of htlc_max correctly, which removes a FIXME. Signed-off-by: Rusty Russell --- plugins/askrene/explain_failure.c | 49 ++++++++++++++++--------------- plugins/askrene/layer.c | 24 +++++++++------ plugins/askrene/layer.h | 5 +++- tests/test_askrene.py | 3 +- 4 files changed, 45 insertions(+), 36 deletions(-) diff --git a/plugins/askrene/explain_failure.c b/plugins/askrene/explain_failure.c index 1369a88d2ea1..b8ac907d132d 100644 --- a/plugins/askrene/explain_failure.c +++ b/plugins/askrene/explain_failure.c @@ -69,16 +69,6 @@ static const char *why_max_constrained(const tal_t *ctx, tal_append_fmt(&ret, "already reserved %s", reservations); } - /* If that doesn't explain it, perhaps it violates htlc_max? */ - if (!ret) { - struct gossmap_chan *c = gossmap_find_chan(rq->gossmap, &scidd->scid); - fp16_t htlc_max = c->half[scidd->dir].htlc_max; - if (amount_msat_greater_fp16(amount, htlc_max)) - ret = tal_fmt(ctx, "exceeds htlc_maximum_msat ~%s", - fmt_amount_msat(tmpctx, - amount_msat(fp16_to_u64(htlc_max)))); - } - /* This seems unlikely, but don't return NULL. */ if (!ret) ret = tal_fmt(ctx, "is constrained"); @@ -176,11 +166,19 @@ static const char *check_capacity(const tal_t *ctx, /* Return description of why scidd is disabled scidd */ static const char *describe_disabled(const tal_t *ctx, - const struct route_query *rq, - const struct short_channel_id_dir *scidd) + const struct route_query *rq, + const struct gossmap_chan *c, + const struct short_channel_id_dir *scidd) { for (int i = tal_count(rq->layers) - 1; i >= 0; i--) { - if (layer_disables(rq->layers[i], scidd)) { + struct gossmap_node *dst = gossmap_nth_node(rq->gossmap, c, !scidd->dir); + struct node_id dstid; + + gossmap_node_get_id(rq->gossmap, dst, &dstid); + if (layer_disables_node(rq->layers[i], &dstid)) + return tal_fmt(ctx, "leads to node disabled by layer %s.", + layer_name(rq->layers[i])); + else if (layer_disables_chan(rq->layers[i], scidd)) { return tal_fmt(ctx, "marked disabled by layer %s.", layer_name(rq->layers[i])); } @@ -253,27 +251,30 @@ const char *explain_failure(const tal_t *ctx, const char *explanation; struct short_channel_id_dir scidd; struct gossmap_chan *c; - struct amount_msat cap_msat; + struct amount_msat cap_msat, min, max, htlc_max; scidd.scid = hops[i].scid; scidd.dir = hops[i].direction; c = gossmap_find_chan(rq->gossmap, &scidd.scid); cap_msat = gossmap_chan_get_capacity(rq->gossmap, c); + get_constraints(rq, c, scidd.dir, &min, &max); + htlc_max = amount_msat(fp16_to_u64(c->half[scidd.dir].htlc_max)); + if (!gossmap_chan_set(c, scidd.dir)) explanation = "has no gossip"; else if (!c->half[scidd.dir].enabled) - explanation = describe_disabled(tmpctx, rq, &scidd); + explanation = describe_disabled(tmpctx, rq, c, &scidd); else if (amount_msat_greater(amount, cap_msat)) explanation = describe_capacity(tmpctx, rq, &scidd, amount); - else { - struct amount_msat min, max; - get_constraints(rq, c, scidd.dir, &min, &max); - if (amount_msat_less(max, amount)) { - explanation = why_max_constrained(tmpctx, rq, - &scidd, amount); - } else - continue; - } + else if (amount_msat_greater(amount, max)) + explanation = why_max_constrained(tmpctx, rq, + &scidd, amount); + else if (amount_msat_greater(amount, htlc_max)) + explanation = tal_fmt(tmpctx, + "exceeds htlc_maximum_msat ~%s", + fmt_amount_msat(tmpctx, htlc_max)); + else + continue; return tal_fmt(ctx, NO_USABLE_PATHS_STRING diff --git a/plugins/askrene/layer.c b/plugins/askrene/layer.c index 26d602853812..17cadc8e8983 100644 --- a/plugins/askrene/layer.c +++ b/plugins/askrene/layer.c @@ -256,10 +256,8 @@ void layer_apply_constraints(const struct layer *layer, for (c = constraint_hash_getfirst(layer->constraints, scidd, &cit); c; c = constraint_hash_getnext(layer->constraints, scidd, &cit)) { - if (amount_msat_greater(c->min, *min)) - *min = c->min; - if (amount_msat_less(c->max, *max)) - *max = c->max; + *min = amount_msat_max(*min, c->min); + *max = amount_msat_min(*max, c->max); } } @@ -350,7 +348,6 @@ void layer_add_localmods(const struct layer *layer, struct short_channel_id_dir scidd; struct gossmap_chan *c; bool enabled = false; - struct amount_msat zero = AMOUNT_MSAT(0); c = gossmap_nth_chan(gossmap, node, n, &scidd.dir); scidd.scid = gossmap_chan_scid(gossmap, c); @@ -358,8 +355,7 @@ void layer_add_localmods(const struct layer *layer, gossmap_local_updatechan(localmods, &scidd, &enabled, - &zero, &zero, - NULL, NULL, NULL); + NULL, NULL, NULL, NULL, NULL); } } @@ -507,8 +503,8 @@ bool layer_created(const struct layer *layer, struct short_channel_id scid) return local_channel_hash_get(layer->local_channels, scid); } -bool layer_disables(const struct layer *layer, - const struct short_channel_id_dir *scidd) +bool layer_disables_chan(const struct layer *layer, + const struct short_channel_id_dir *scidd) { const struct local_update *lu; @@ -517,6 +513,16 @@ bool layer_disables(const struct layer *layer, return (lu && lu->enabled && *lu->enabled == false); } +bool layer_disables_node(const struct layer *layer, + const struct node_id *node) +{ + for (size_t i = 0; i < tal_count(layer->disabled_nodes); i++) { + if (node_id_eq(&layer->disabled_nodes[i], node)) + return true; + } + return false; +} + void layer_memleak_mark(struct askrene *askrene, struct htable *memtable) { struct layer *l; diff --git a/plugins/askrene/layer.h b/plugins/askrene/layer.h index b8e700fdc46e..0bac5744a62b 100644 --- a/plugins/askrene/layer.h +++ b/plugins/askrene/layer.h @@ -106,7 +106,10 @@ void json_add_constraint(struct json_stream *js, bool layer_created(const struct layer *layer, struct short_channel_id scid); /* For explain_failure: did this layer disable this channel? */ -bool layer_disables(const struct layer *layer, const struct short_channel_id_dir *scidd); +bool layer_disables_chan(const struct layer *layer, const struct short_channel_id_dir *scidd); + +/* For explain_failure: did this layer disable this node? */ +bool layer_disables_node(const struct layer *layer, const struct node_id *node); /* Scan for memleaks */ void layer_memleak_mark(struct askrene *askrene, struct htable *memtable); diff --git a/tests/test_askrene.py b/tests/test_askrene.py index fe065c1e0e5b..5a7e7abe7c2a 100644 --- a/tests/test_askrene.py +++ b/tests/test_askrene.py @@ -845,8 +845,7 @@ def test_max_htlc(node_factory, bitcoind): amount_msat=1, inform='constrained') - # FIXME: Better diag! - with pytest.raises(RpcError, match="Could not find route"): + with pytest.raises(RpcError, match="We could not find a usable set of paths. The shortest path is 0x1x0, but 0x1x0/1 exceeds htlc_maximum_msat ~1000448msat"): l1.rpc.getroutes(source=nodemap[0], destination=nodemap[1], amount_msat=20_000_000, From 4c775f16aa725d68af4f7252e42d51d4c3587ad4 Mon Sep 17 00:00:00 2001 From: Aditya Sharma Date: Thu, 8 Aug 2024 11:14:27 +0530 Subject: [PATCH 45/51] plugins/chanbackup: Add RPC to fetch data from emergency.recover file. --- plugins/chanbackup.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/plugins/chanbackup.c b/plugins/chanbackup.c index ca8365495294..60efc5ce5344 100644 --- a/plugins/chanbackup.c +++ b/plugins/chanbackup.c @@ -757,6 +757,23 @@ static struct command_result *json_restorefrompeer(struct command *cmd, NULL); } +static struct command_result *json_getemergencyrecoverdata(struct command *cmd, + const char *buf, + const jsmntok_t *params) +{ + u8 *filedata; + if (!param(cmd, buf, params, NULL)) + return command_param_failed(); + + struct json_stream *response; + + filedata = get_file_data(tmpctx, cmd->plugin); + response = jsonrpc_stream_success(cmd); + json_add_hex(response, "filedata", filedata, tal_bytelen(filedata)); + + return command_finished(cmd, response); +} + static const char *init(struct plugin *p, const char *buf UNUSED, const jsmntok_t *config UNUSED) @@ -817,6 +834,10 @@ static const struct plugin_command commands[] = { "emergencyrecover", json_emergencyrecover, }, + { + "getemergencyrecoverdata", + json_getemergencyrecoverdata, + }, { "restorefrompeer", json_restorefrompeer, From 2be7433ae6c9ed6bfdfde5b9dc0aa929f40c7d01 Mon Sep 17 00:00:00 2001 From: Aditya Sharma Date: Thu, 8 Aug 2024 11:19:25 +0530 Subject: [PATCH 46/51] doc: Add documentation for the RPC getemergencyrecoverdata. --- contrib/msggen/msggen/schema.json | 48 +++++++++++++++++++ doc/Makefile | 1 + doc/index.rst | 1 + .../lightning-getemergencyrecoverdata.json | 48 +++++++++++++++++++ 4 files changed, 98 insertions(+) create mode 100644 doc/schemas/lightning-getemergencyrecoverdata.json diff --git a/contrib/msggen/msggen/schema.json b/contrib/msggen/msggen/schema.json index 7db584550643..66058efe5f9b 100644 --- a/contrib/msggen/msggen/schema.json +++ b/contrib/msggen/msggen/schema.json @@ -13430,6 +13430,54 @@ } ] }, + "lightning-getemergencyrecoverdata.json": { + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "getemergencyrecoverdata", + "title": "Command to fetch data from the emergency.recover file", + "description": [ + "The **getemergencyrecoverdata** RPC command is used to fetch data from the emergency.recover file, which contains encrypted data." + ], + "request": { + "required": [], + "properties": {} + }, + "response": { + "required": [ + "filedata" + ], + "properties": { + "filedata": { + "type": "hex", + "description": [ + "The raw, hex-encoded, emergency.recover file" + ] + } + } + }, + "author": [ + "Aditya <> is mainly responsible." + ], + "see_also": [ + "lightning-getsharedsecret(7)" + ], + "resources": [ + "Main web site: " + ], + "examples": [ + { + "request": { + "id": "example:getemergencyrecoverdata#1", + "method": "getemergencyrecoverdata", + "params": {} + }, + "response": { + "filedata": "5b3142fa0dd1115c29654b44780dcd9cf56cd53f9168061e964b39f3ce596962594b25660cba5d90ef07cfccbe1620f378ef284c7d1afed49d" + } + } + ] + }, "lightning-getinfo.json": { "$schema": "../rpc-schema-draft.json", "type": "object", diff --git a/doc/Makefile b/doc/Makefile index b7b7648edcab..ccae17e9eaa5 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -60,6 +60,7 @@ GENERATE_MARKDOWN := doc/lightning-addgossip.7 \ doc/lightning-fundchannel_start.7 \ doc/lightning-funderupdate.7 \ doc/lightning-fundpsbt.7 \ + doc/lightning-getemergencyrecoverdata.7 \ doc/lightning-getinfo.7 \ doc/lightning-getlog.7 \ doc/lightning-getroute.7 \ diff --git a/doc/index.rst b/doc/index.rst index edee2e109cdd..bb48bce62bb6 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -69,6 +69,7 @@ Core Lightning Documentation lightning-fundchannel_start lightning-funderupdate lightning-fundpsbt + lightning-getemergencyrecoverdata lightning-getinfo lightning-getlog lightning-getroute diff --git a/doc/schemas/lightning-getemergencyrecoverdata.json b/doc/schemas/lightning-getemergencyrecoverdata.json new file mode 100644 index 000000000000..3fc4bee3de86 --- /dev/null +++ b/doc/schemas/lightning-getemergencyrecoverdata.json @@ -0,0 +1,48 @@ +{ + "$schema": "../rpc-schema-draft.json", + "type": "object", + "additionalProperties": false, + "rpc": "getemergencyrecoverdata", + "title": "Command to fetch data from the emergency.recover file", + "description": [ + "The **getemergencyrecoverdata** RPC command is used to fetch data from the emergency.recover file, which contains encrypted data." + ], + "request": { + "required": [], + "properties": {} + }, + "response": { + "required": [ + "filedata" + ], + "properties": { + "filedata": { + "type": "hex", + "description": [ + "The raw, hex-encoded, emergency.recover file" + ] + } + } + }, + "author": [ + "Aditya <> is mainly responsible." + ], + "see_also": [ + "lightning-getsharedsecret(7)" + ], + "resources": [ + "Main web site: " + ], + "examples": [ + { + "request": { + "id": "example:getemergencyrecoverdata#1", + "method": "getemergencyrecoverdata", + "params": {} + }, + "response": { + "filedata": "5b3142fa0dd1115c29654b44780dcd9cf56cd53f9168061e964b39f3ce596962594b25660cba5d90ef07cfccbe1620f378ef284c7d1afed49d" + } + } + ] +} From 27b4a03419994040444aefaab93bba09150967c1 Mon Sep 17 00:00:00 2001 From: Aditya Sharma Date: Thu, 8 Aug 2024 11:20:46 +0530 Subject: [PATCH 47/51] tests: Add test_getemergencyrecoverdata to test the RPC getemergencyrecoverdata. --- tests/test_misc.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/test_misc.py b/tests/test_misc.py index e4b4b148a5b9..c369f87e8082 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -2869,6 +2869,18 @@ def test_recoverchannel(node_factory): assert stubs[0] == "c3a7b9d74a174497122bc52d74d6d69836acadc77e0429c6d8b68b48d5c9139a" +def test_getemergencyrecoverdata(node_factory): + """ + Test getemergencyrecoverdata + """ + l1 = node_factory.get_node() + filedata = l1.rpc.getemergencyrecoverdata()['filedata'] + + with open(os.path.join(l1.daemon.lightning_dir, TEST_NETWORK, "emergency.recover"), "rb") as f: + lines = f.read().hex() + assert lines == filedata + + @unittest.skipIf(os.getenv('TEST_DB_PROVIDER', 'sqlite3') != 'sqlite3', "deletes database, which is assumed sqlite3") def test_emergencyrecover(node_factory, bitcoind): """ From cbe94bcb420011db7bf2dfd32b517670edd5f712 Mon Sep 17 00:00:00 2001 From: Se7enZ Date: Tue, 17 Sep 2024 12:26:46 +0200 Subject: [PATCH 48/51] pyln-testing: Fix file descriptor leak in bitcoind fixture. ([#7130]) Changelog-Fixed: pyln-testing: Fix file descriptor leak in bitcoind fixture. ([#7130]) --- contrib/pyln-testing/pyln/testing/fixtures.py | 2 ++ contrib/pyln-testing/pyln/testing/utils.py | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/contrib/pyln-testing/pyln/testing/fixtures.py b/contrib/pyln-testing/pyln/testing/fixtures.py index 13631c1be10d..dede9e88d272 100644 --- a/contrib/pyln-testing/pyln/testing/fixtures.py +++ b/contrib/pyln-testing/pyln/testing/fixtures.py @@ -164,6 +164,8 @@ def bitcoind(directory, teardown_checks): bitcoind.proc.kill() bitcoind.proc.wait() + bitcoind.cleanup_files() + class TeardownErrors(object): def __init__(self): diff --git a/contrib/pyln-testing/pyln/testing/utils.py b/contrib/pyln-testing/pyln/testing/utils.py index 6eda2d9ffc09..9d1ac4a77d45 100644 --- a/contrib/pyln-testing/pyln/testing/utils.py +++ b/contrib/pyln-testing/pyln/testing/utils.py @@ -256,6 +256,14 @@ def kill(self): self.proc.kill() self.proc.wait() + def cleanup_files(self): + """Ensure files are closed.""" + for f in ["stdout_write", "stderr_write", "stdout_read", "stderr_read"]: + try: + getattr(self, f).close() + except Exception: + pass + def logs_catchup(self): """Save the latest stdout / stderr contents; return true if we got anything. """ From 537d613035bd72976ed181b737e41240895b822a Mon Sep 17 00:00:00 2001 From: Se7enZ Date: Thu, 19 Sep 2024 13:16:38 +0200 Subject: [PATCH 49/51] pytest: Support targeting specific tests using `make pytest`. Select tests by setting the `PYTEST_TESTS` environment variable. Changelog-None --- Makefile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4cdf97c9aca0..f835842c99ee 100644 --- a/Makefile +++ b/Makefile @@ -456,6 +456,11 @@ else PYTEST_OPTS += -x endif +# Allow for targeting specific tests by setting the PYTEST_TESTS environment variable. +ifeq ($(PYTEST_TESTS),) +PYTEST_TESTS = "tests/" +endif + check-units: check: check-units installcheck pytest @@ -466,7 +471,7 @@ ifeq ($(PYTEST),) exit 1 else # Explicitly hand VALGRIND so you can override on make cmd line. - PYTHONPATH=$(MY_CHECK_PYTHONPATH) TEST_DEBUG=1 VALGRIND=$(VALGRIND) $(PYTEST) tests/ $(PYTEST_OPTS) + PYTHONPATH=$(MY_CHECK_PYTHONPATH) TEST_DEBUG=1 VALGRIND=$(VALGRIND) $(PYTEST) $(PYTEST_TESTS) $(PYTEST_OPTS) endif check-fuzz: $(ALL_FUZZ_TARGETS) From fea30491c3ee084c9e16b02f4832ccf2a158be92 Mon Sep 17 00:00:00 2001 From: Se7enZ Date: Tue, 1 Oct 2024 16:43:43 +0200 Subject: [PATCH 50/51] doc: Include documentation for test targeting via `PYTEST_TESTS`. Also update the table of optional environment variables to set when running the integration tests. --- doc/contribute-to-core-lightning/testing.md | 34 ++++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/doc/contribute-to-core-lightning/testing.md b/doc/contribute-to-core-lightning/testing.md index c1ca8082b5a9..2de963756a0f 100644 --- a/doc/contribute-to-core-lightning/testing.md +++ b/doc/contribute-to-core-lightning/testing.md @@ -43,6 +43,10 @@ There are four kinds of tests: You can also append `-k TESTNAME` to run a single test. Environment variables `DEBUG_SUBD=` and `TIMEOUT=` can be useful for debugging subdaemons on individual tests, and `DEBUG_LIGHTNINGD` for attaching a debugger to each `lightningd` instance created. + Alternatively, to run a specific test via the `Makefile`, you can specify the test by setting the environment variable `PYTEST_TESTS`: + + `PYTEST_TESTS="tests/test_askrene.py::test_layers" make pytest` + - **pylightning tests** - will check contrib pylightning for codestyle and run the tests in `contrib/pylightning/tests` afterwards: `make check-python` @@ -52,14 +56,28 @@ Our Github Actions instance (see `.github/workflows/*.yml`) runs all these for e #### Additional Environment Variables ```text -TEST_CHECK_DBSTMTS=[0|1] - When running blackbox tests, this will - load a plugin that logs all compiled - and expanded database statements. - Note: Only SQLite3. -TEST_DB_PROVIDER=[sqlite3|postgres] - Selects the database to use when running - blackbox tests. -EXPERIMENTAL_DUAL_FUND=[0|1] - Enable dual-funding tests. -EXPERIMENTAL_SPLICING=[0|1] - Enable splicing tests. +EXPERIMENTAL_DUAL_FUND=[0|1] - Enable dual-funding tests. +EXPERIMENTAL_SPLICING=[0|1] - Enable splicing tests. +TEST_CHECK_DBSTMTS=[0|1] - When running blackbox tests, this will + load a plugin that logs all compiled + and expanded database statements. + Note: Only SQLite3. +TEST_DB_PROVIDER=[sqlite3|postgres] - Selects the database to use when running + blackbox tests. +TEST_DEBUG=[0|1] - Enable additional debug logging output + during tests. +TEST_NETWORK=[regtest|liquid-regtest] - Select the test network to use. Default is + to 'regtest'. +TIMEOUT - Override the default timeout value for + API calls. +PYTEST_PAR=[1-n] - Number of processes to use when running + the blackbox the tests in parallel. +PYTEST_TESTS="tests/" - Target a specific set of blackbox tests + when running 'make pytest'. Pass a string + of Pytest test targets. +SLOW_MACHINE=[0|1] - Set sensible defaults for running tests + in resource-constrained environments. +VALGRIND=[0|1] - Run the tests with Valgrind. ``` #### Troubleshooting From 81e30eab52db0bf98116391c9c20549f842337f1 Mon Sep 17 00:00:00 2001 From: ShahanaFarooqui Date: Wed, 25 Sep 2024 14:14:03 -0700 Subject: [PATCH 51/51] docs: Updating release checklist with Hotfix release instructions Changelog-None. --- .../release-checklist.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/doc/contribute-to-core-lightning/release-checklist.md b/doc/contribute-to-core-lightning/release-checklist.md index 3b5aade0e389..59fb0376a328 100644 --- a/doc/contribute-to-core-lightning/release-checklist.md +++ b/doc/contribute-to-core-lightning/release-checklist.md @@ -105,3 +105,23 @@ Here's a checklist for the release process. 3. Look through PRs which were delayed for release and merge them. 4. Close out the Milestone for the now-shipped release. 5. Update this file with any missing or changed instructions. + +## Performing the Point (hotfix) Release + +1. Create a new branch named `release-.`, where each new branch is based on the commit from the previous release tag. For example, `release-.1` is based on `release-`, `release-.2` is based on `release-.1`, and so on. +2. Cherry-pick all necessary commits for the hotfix into the new branch. +3. Add entries for changes and fixed issues in `CHANGELOG.md` under a new heading for `v.`. +4. Update the python package versions by running `make update-py-versions NEW_VERSION=.` +5. Create a new commit that includes the updates from `update-py-versions` and `CHANGELOG.md`. +6. Tag the release with `git pull && git tag -s v.`. You will be prompted to enter a tag message, ensure this is filled out. +7. Confirm that the tag is properly set up for builds by running `git describe`. +8. Push the tag to the remote repository `git push --tags`. +9. Create a new release draft for `v.` on GitHub, ensuring to check the `Set as a pre-release` option. +10. Follow the [reproducible build](https://docs.corelightning.org/docs/repro) instructions for [Builder image setup](https://docs.corelightning.org/docs/repro#builder-image-setup) to create builder images named `cl-repro-` required for the next step. +11. Run the following script to prepare the required builds `tools/build-release.sh bin-Fedora-28-amd64 bin-Ubuntu sign`. +12. Upload the reproducible builds along with `SHA256SUMS` and `SHA256SUMS.asc` files from the release folder to the newly drafted release. +13. Share the `SHA256SUMS` and `SHA256SUMS.asc` files with the team for verification and signing. +14. Append the signatures received from the team to the `SHA256SUMS.asc` file. Verify the file using `gpg --verify SHA256SUMS.asc`. Then re-upload the file. +15. Finalize and publish the release (change it from draft to public). +16. Ensure that the GitHub Actions for `Publish Python 🐍 distributions 📦 to PyPI and TestPyPI` and `Build and push multi-platform docker images` are functioning correctly. Check that the `PyPI` modules published on `https://pypi.org/project/pyln-*` and that the Docker image has been uploaded to Docker Hub. +17. Announce the hotfix release in the core-lightning release-chat channel on Discord and on [BuildOnL2](https://community.corelightning.org/c/general-questions/).

bw^Ozbs=3kC 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