From b077e3e4a393691ec214f5501b604dda95254011 Mon Sep 17 00:00:00 2001 From: t-bast Date: Mon, 13 Nov 2023 15:57:01 +0100 Subject: [PATCH] WIP --- TODO.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 TODO.md diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000000..d06004dc5b --- /dev/null +++ b/TODO.md @@ -0,0 +1,30 @@ +# Liquidity Ads + +## Tasks + +- add fields to open channel API to request liquidity + - add explicit option flag to specify what to do if the remote doesn't fund back + - validate that the leasor doesn't cheat +- add support for responding to an `open_channel2` that requests funds: + - ensure we don't raise our relay fees above what was negotiated while the lease is active + - disallow mutual close and force-close commands during the lease + - disallow splice-out during the lease + - change the format of commit txs + - use a dedicated bitcoin wallet, on which we never lock utxos (abstract it away at the `BitcoinCoreClient` level) +- when buying liquidity: + - when doing an RBF, must pay for the lease `fundingWeight` at the new feerate + - verify our peer doesn't raise their relay fees above what was negotiated: if they do, send a `warning` and log it + - ignore remote `shutdown` messages? Send a `warning` and log? +- when the lease expires, "clean up" commitment tx? + - probably requires an `end_lease` message? +- lease renewal mechanism: + - maybe unnecessary, it's just a splice that uses the `request_funds` tlv? + +## Liquidity ads plugin + +Implement the business logic that decides how much to contribute when accepting a `request_funds` in a plugin. +Requires validation of the following fields from `open_channel2`: + +- feerate -> it shouldn't be too high unless the buyer is paying for our inputs +- lockTime -> must not be too far away in the future and must match the lease start +- remote amount must allow paying the lease fees and the commit tx fees