inflight: add a 'channel-inflight' concept, in-progress channel stuffs

"inflights" are all potential channel funding transactions that we
currently have commitment transactions for.
This commit is contained in:
niftynei
2021-02-04 15:14:44 -06:00
committed by Rusty Russell
parent b8183f2eeb
commit 36f3b13279
10 changed files with 1694 additions and 116 deletions

View File

@@ -890,6 +890,12 @@ struct db_query db_postgres_queries[] = {
.placeholders = 0,
.readonly = false,
},
{
.name = "CREATE TABLE channel_funding_inflights ( channel_id BIGSERIAL REFERENCES channels(id) ON DELETE CASCADE, funding_tx_id BLOB, funding_tx_outnum INTEGER, funding_feerate INTEGER, funding_satoshi BIGINT, our_funding_satoshi BIGINT, funding_psbt BLOB, last_tx BLOB, last_sig BLOB, funding_tx_remote_sigs_received INTEGER, PRIMARY KEY (channel_id, funding_tx_id));",
.query = "CREATE TABLE channel_funding_inflights ( channel_id BIGSERIAL REFERENCES channels(id) ON DELETE CASCADE, funding_tx_id BYTEA, funding_tx_outnum INTEGER, funding_feerate INTEGER, funding_satoshi BIGINT, our_funding_satoshi BIGINT, funding_psbt BYTEA, last_tx BYTEA, last_sig BYTEA, funding_tx_remote_sigs_received INTEGER, PRIMARY KEY (channel_id, funding_tx_id));",
.placeholders = 0,
.readonly = false,
},
{
.name = "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = ?",
.query = "UPDATE vars SET intval = intval + 1 WHERE name = 'data_version' AND intval = $1",
@@ -1202,6 +1208,24 @@ struct db_query db_postgres_queries[] = {
.placeholders = 1,
.readonly = true,
},
{
.name = "INSERT INTO channel_funding_inflights ( channel_id, funding_tx_id, funding_tx_outnum, funding_feerate, funding_satoshi, our_funding_satoshi, funding_psbt, last_tx, last_sig) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);",
.query = "INSERT INTO channel_funding_inflights ( channel_id, funding_tx_id, funding_tx_outnum, funding_feerate, funding_satoshi, our_funding_satoshi, funding_psbt, last_tx, last_sig) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9);",
.placeholders = 9,
.readonly = false,
},
{
.name = "UPDATE channel_funding_inflights SET funding_psbt=? WHERE channel_id=? AND funding_tx_id=? AND funding_tx_outnum=?",
.query = "UPDATE channel_funding_inflights SET funding_psbt=$1 WHERE channel_id=$2 AND funding_tx_id=$3 AND funding_tx_outnum=$4",
.placeholders = 4,
.readonly = false,
},
{
.name = "SELECT funding_tx_id, funding_tx_outnum, funding_feerate, funding_satoshi, our_funding_satoshi, funding_psbt, last_tx, last_sig FROM channel_funding_inflights WHERE channel_id = ?",
.query = "SELECT funding_tx_id, funding_tx_outnum, funding_feerate, funding_satoshi, our_funding_satoshi, funding_psbt, last_tx, last_sig FROM channel_funding_inflights WHERE channel_id = $1",
.placeholders = 1,
.readonly = true,
},
{
.name = "SELECT id FROM channels ORDER BY id DESC LIMIT 1;",
.query = "SELECT id FROM channels ORDER BY id DESC LIMIT 1;",
@@ -1358,6 +1382,12 @@ struct db_query db_postgres_queries[] = {
.placeholders = 1,
.readonly = false,
},
{
.name = "DELETE FROM channel_funding_inflights WHERE channel_id=?",
.query = "DELETE FROM channel_funding_inflights WHERE channel_id=$1",
.placeholders = 1,
.readonly = false,
},
{
.name = "DELETE FROM shachains WHERE id IN ( SELECT shachain_remote_id FROM channels WHERE channels.id=?)",
.query = "DELETE FROM shachains WHERE id IN ( SELECT shachain_remote_id FROM channels WHERE channels.id=$1)",
@@ -1784,6 +1814,12 @@ struct db_query db_postgres_queries[] = {
.placeholders = 0,
.readonly = false,
},
{
.name = "SELECT COUNT(1) FROM channel_funding_inflights WHERE channel_id = ?;",
.query = "SELECT COUNT(1) FROM channel_funding_inflights WHERE channel_id = $1;",
.placeholders = 1,
.readonly = true,
},
{
.name = "INSERT INTO channels (id) VALUES (1);",
.query = "INSERT INTO channels (id) VALUES (1);",
@@ -1792,10 +1828,10 @@ struct db_query db_postgres_queries[] = {
},
};
#define DB_POSTGRES_QUERY_COUNT 297
#define DB_POSTGRES_QUERY_COUNT 303
#endif /* HAVE_POSTGRES */
#endif /* LIGHTNINGD_WALLET_GEN_DB_POSTGRES */
// SHA256STAMP:bbe38ba26543917c2c8be0eeba93c2d0345b51f7f29803e30cc3f03aaf077798
// SHA256STAMP:044504d8dccba17231afc233809d113884b6e73ef6a3b414d061df94982755a5