Commit Graph
100 Commits
Author SHA1 Message Date
Olaoluwa Osuntokun a7e89c130d build: bump version to v0.19.0 rc2 2025-04-04 18:43:13 -07:00
Olaoluwa Osuntokun 676414b9d7 build: update to latest versions of sqldb+kvdb 2025-04-04 18:43:09 -07:00
Olaoluwa Osuntokun f0ea5bf3b0 Merge pull request #9672 from Roasbeef/kvdb-sqlite-incremental-vacuum
kvdb/sqlite: enable incremental auto_vacuum on DB creation
2025-04-04 17:57:51 -07:00
Olaoluwa Osuntokun 9eef2a0d6c build: temp replace for sqldb+kvdb 2025-04-04 15:49:29 -07:00
Olaoluwa Osuntokun 9f5bf49ac7 sqldb/sqlite: enable incremental auto_vacuum on DB creation 2025-04-04 15:49:29 -07:00
Olaoluwa Osuntokun a0d6a5591f kvdb/sqlite: enable incremental auto_vacuum on DB creation
In this commit, we make a change that enables the `auto_vacuum =
incremental` pragma for SQLite databases, but only when the database
file is first created. Incremental auto-vacuum allows SQLite to reclaim
unused space within the database file over time, preventing indefinite
growth.
2025-04-04 15:49:29 -07:00
Olaoluwa Osuntokun 580935a4a4 Merge pull request #9669 from Roasbeef/rbf-taproot-downgrade
multi: downgrade to legacy coop close for taproot channels
2025-04-04 14:38:36 -07:00
Olaoluwa Osuntokun 96662ad43a lncfg: mention that taproot chans aren't supported for rbf close 2025-04-04 14:38:12 -07:00
Olaoluwa Osuntokun 1fc2c64770 itest: test all combos of rbf close and taproot chans
In this commit, we test all the combinations of rbf close and taproot
chans. This ensures that the downgrade logic works properly.

Along the way we refactor the tests slightly, and also split them up, as
running all the combos back to back mines more than 50 blocks in a test,
which triggers an error in the itest sanity checks.
2025-04-03 16:23:36 -07:00
Olaoluwa Osuntokun c5d3d76c33 peer+server: downgrade to legacy coop close for taproot channels
In this commit, we implement logic to downgrade to the legacy coop close
for taproot channels. Before this commit, we wouldn't allow nodes to
start up with both the taproot flag and the rbf flag activated.

In the future, once we implement the spec updates, we'll add support for
this combo, and can revert parts of this commit.
2025-04-01 16:41:26 -07:00
Olaoluwa Osuntokun b01f4e5148 Merge pull request #9657 from bartoli/bartoli-patch-1
Fix release build command
2025-03-31 11:14:17 -07:00
Olaoluwa Osuntokun f08e7fe0d6 lnwallet/chancloser: fix flake in TestRbfChannelFlushingTransitions/early_offer
In this commit, we fix a flake in the
`TestRbfChannelFlushingTransitions/early_offer` test. The fix is simple:
this is actually an "iteration", as we have a self transition to the
ChannelNegotiation state first. We also don't need to send the
remoteOffer, so we set `sendInit` to false. The offer still needs to be
passed in to ensure that the assertions work however.
2025-03-26 16:36:13 -07:00
Olaoluwa Osuntokun a307280c40 protofsm: reduce log spam during state transitions
In this commit, we reduce log spam a bit during state transitions. We
only log the type of the event when sending the event, as we'll print
the same event when creating the queue "applying", and later when
processing". Next we remove the "applying" log as that first event will
always be logged twice.

The combo of these to changes makes the logs much easier to follow.
2025-03-26 16:36:11 -07:00
Olaoluwa Osuntokun 0053fda6da Merge pull request #9624 from Roasbeef/0-19-branch
build: bump version to v0.19 rc1
2025-03-24 19:24:26 -07:00
Olaoluwa Osuntokun 1cebfedbae Merge pull request #9607 from Roasbeef/unified-gossip-limiter
discovery: unify rate.Limiter across all gossip peers
2025-03-24 19:22:16 -07:00
Olaoluwa Osuntokun 8c3c53f63b docs/release-notes: add release notes for gossip rate limit 2025-03-24 19:21:46 -07:00
Olaoluwa Osuntokun c7ed5d65c6 multi: add new config options to tune gossip msg allocated bandwidth
We go with the defaults of if no values are set.
2025-03-24 19:21:45 -07:00
Olaoluwa Osuntokun 05702d48b2 discovery: switch to bytes based rate limiting for outbound msgs
In this commit, we revamp the old message based rate limiting. First, we
move to meter by bytes/s instead of messages/s. The old logic had an
error in that it limited groups of message replies, instead of each
message. With this new approach, we'll use the newly added
SerializedSize method to implement fine grained bandwidth metering.

We need to pick two values, the burst rate, and the msg bytes rate. The
burst rate is the max amt that can be sent in a given period of time. We
need to set this above 65 KB, or the max msg limit, otherwise no
messages can be sent. The bucket starts with this many tokens (bytes).
As those are depleted, the amount of tokens is refilled at the msg
bytes rate.

As conservative values, we've chosen 200 KB as the burst rate, and 100
KB/s as the limit.
2025-03-24 19:21:45 -07:00
Olaoluwa Osuntokun 5b93319aaa build: bump version to v0.19 rc1 2025-03-24 15:49:23 -07:00
Olaoluwa Osuntokun 66077b1722 chainio: demote per-block logging to Debugf 2025-03-24 15:49:21 -07:00
Olaoluwa Osuntokun 67d2eac437 Merge pull request #9620 from guggero/testnet4
chain: add testnet4 support
2025-03-24 15:48:26 -07:00
Olaoluwa Osuntokun 5235f3b24f Merge pull request #9623 from Roasbeef/size-msg-test-msg
Size msg test msg
2025-03-21 12:18:36 -07:00
Olaoluwa Osuntokun 05a6b6838f lnwire: add new TestSerializedSize method
This uses all the interfaces and implementations added in the prior test.
2025-03-20 18:28:53 -07:00
Olaoluwa Osuntokun b2f24789dc lnwire: revamp TestLightningWireProtocol using new rapid test gen
With what we added in the prior commit, we can significantly shrink the
size of this test. We also make it easier to extend in the future, as
this will fail if a new message is added, that doesn't have the needed
methods, as long as MsgEnd is updated.
2025-03-20 18:28:23 -07:00
Olaoluwa Osuntokun eb877db2ff lnwire: add new TestMessage interface for property tests
In this commit, we add a new `TestMessage` interface for use in property
tests. With this, we'll be able to generate a random instance of a given
message, using the rapid byte stream. This can also eventually be useful
for fuzzing.
2025-03-20 18:28:07 -07:00
Olaoluwa Osuntokun 56a100123b lnwire: add new SerializedSize method to all wire messages
This'll be useful for the bandwidth based rate limiting we'll implement
in the next commit.
2025-03-20 18:27:52 -07:00
Olaoluwa Osuntokun e8875e06fe Merge pull request #9602 from lightningnetwork/yy-pending-remote-commit
multi: make sure HTLCs are locked in the itest
2025-03-20 18:11:02 -05:00
Olaoluwa Osuntokun ea050d06f0 Merge pull request #9610 from lightningnetwork/rbf-staging
multi: integrate rbf changes from staging branch
2025-03-19 15:01:23 -05:00
Olaoluwa Osuntokun 42fa83700a docs/release-notes: update release notes for RBF close 2025-03-18 12:48:01 -05:00
Olaoluwa Osuntokun 3681ba6d8b peer: for RBF state machine block req if RBF iterating is outstanding
This fixes an issue in the itests in the restart case. We'd see an error
like:
```
2025-03-12 23:41:10.754 [ERR] PFSM state_machine.go:661: FSM(rbf_chan_closer(2f20725d9004f7fda7ef280f77dd8d419fd6669bda1a5231dd58d6f6597066e0:0)): Unable to apply event err="invalid state transition: received *chancloser.SendOfferEvent while in ClosingNegotiation(local=LocalOfferSent(proposed_fee=0.00000193 BTC), remote=ClosePending(txid=07229915459cb439bdb8ad4f5bf112dc6f42fca0192ea16a7d6dd05e607b92ae, party=Remote, fee_rate=1 sat/vb))"
```

We resolve this by waiting to send in the new request unil the old one
has been completed.
2025-03-18 11:44:59 -05:00
Olaoluwa Osuntokun 8df58a984c lnwallet/chancloser: add docs for new rbf chan closer 2025-03-18 11:44:59 -05:00
Olaoluwa Osuntokun 720d98cc15 msgmux: fix arg expectation for mock in unit test 2025-03-18 11:44:59 -05:00
Olaoluwa Osuntokun 8d9ed0ca73 docs/release-notes: add rbf coop close section 2025-03-18 11:44:59 -05:00
Olaoluwa Osuntokun fccd984ac1 multi: extract new DeriveHeightHint() function, use for new rbf closer
With this commit, we make sure we set the right height hint, even if the
channel is a zero conf channel.
2025-03-18 11:44:59 -05:00
Olaoluwa Osuntokun 971ac5a14d itest: add new RBF coop close itest
The itest has both sides try to close multiple times, each time with
increasing fee rates. We also test the reconnection case, bad RBF
updates, and instances where the local party can't actually pay for
fees.
2025-03-18 11:44:57 -05:00
Olaoluwa Osuntokun 3a18bf088c multi: enable RBF co-op bumps after reconnection
In this commit, we alter the existing co-op close flow to enable RBF
bumps after re connection. With the new RBF close flow, it's possible
that after a success round _and_ a re connection, either side wants to do
another fee bump. Typically we route these requests through the switch,
but in this case, the link no longer exists in the switch, so any
requests to fee bump again would find that the link doesn't exist.

In this commit, we implement a work around wherein if we have an RBF
chan closer active, and the link isn't in the switch, then we just route
the request directly to the chan closer via the peer. Once we have the
chan closer, we can use the exact same flow as prior.
2025-03-18 11:44:21 -05:00
Olaoluwa Osuntokun 80b48fb49b peer: update rbf close client logic w/ error and iteration awareness
We'll properly handle a protocol error due to user input by halting, and
sending the error back to the user.

When a user goes to issue a new update, based on which state we're in,
we'll either kick off the shutdown, or attempt a new offer. This matches
the new spec update where we'll only send `Shutdown` once per
connection.
2025-03-18 11:44:21 -05:00
Olaoluwa Osuntokun fbc67f7610 lntest+itest: extend CloseChannelAssertPending
In this commit, we extend `CloseChannelAssertPending` with new args that
returns the raw close status update (as we have more things we'd like to
assert), and also allows us to pass in a custom fee rate.
2025-03-18 11:44:21 -05:00
Olaoluwa Osuntokun 2899a757c4 lntest: fix error message in WaitForChannelCloseEvent
Resp is always nil, so we actually need to log event.Update here.
2025-03-18 11:44:21 -05:00
Olaoluwa Osuntokun 81d34c4ac2 peer+rpc: set new rbf coop close rbf update fields 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun b32f576aeb lnrpc: add fee rate and local close bool to PendingUpdate
This'll allow us to notify the caller each time a new coop close
transaction with a higher fee rate is signed.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 282c50e444 peer: attempt to unregister endpoint before registering
If we hit an error, we want to wipe the state machine state, which also
includes removing the old endpoint.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 029fbd22fd peer: make activeChanCloses a SyncMap
This fixes some existing race conditions, as the `finalizeChanClosure`
function was being called from outside the main event loop.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 413cc3da35 itest: update async coop close itests to also use new rbf flow 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 429bbf33ef server: thread through new NoRbfCoopClose option
For now, we disallow the option to be used with the taproot chans
option, as the new flow hasn't yet been updated for nonce usage.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 47af913b45 lncfg: add new protocol option - RbfCoopClose 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun a9e538e52d feature: add new NoRbfCoopClose option 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 6364e98f0e peer: conditionally create rbf coop close fsm based on feature bits
In this commit, we fully integrate the new RBF close state machine into
the peer.

For the restart case after shutdown, we can short circuit the existing
logic as the new FSM will handle retransmitting the shutdown message
itself, and doesn't need to delegate that duty to the link.

Unlike the existing state machine, we're able to restart the flow to
sign a coop close with a new higher fee rate. In this case, we can now
send multiple updates to the RPC caller, one for each newly singed coop
close transaction.

To implement the async flush case, we'll launch a new goroutine to wait
until the state machine reaches the `ChannelFlushing` state, then we'll
register the hook. We don't do this at start up, as otherwise the
channel may _already_ be flushed, triggering an invalid state
transition.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun f22cba9de1 peer: conditionally create new RBF chan closer 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 4fff0d8401 peer: create ErrorReporter implementation for rbf-fsm 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 2dae0ba96e peer: add new composite chanCloserFsm type
In this commit, we add a new composite chanCloserFsm type. This'll allow
us to store a single value that might be a negotiator or and rbf-er.

In a follow up commit, we'll use this to conditionally create the new
rbf closer.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 23a9a761e3 peer: add initial awareness of new rbf coop closer
In this commit, we use the interfaces we created in the prior commit to
make a new method capable of spinning up the new rbf coop closer.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 047d3532f9 peer: move existing chan closer init logic to new method
In the next commit, we'll start checking feature bits to decide how to
init the chan closer.

In the future, we can move the current chan closer handling logic into
an `MsgEndpoint`, which'll allow us to get rid of the explicit chan
closer map and direct handling.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun fd05199ff2 protofsm: add an upfront check for SendWhen predicates
In this commit, we add an upfront check for `SendWhen` predicates before
deciding to launch a goroutine. This ensures that when a message comes
along that is already ready to send, we do the send in a synchronous
manner.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 84b6d95b91 lnwallet/chancloser: increase test coverage of state machine 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 7370617aaa lnwallet/chancloser: update RBF state machine to handle early offer case
In this commit, we update the RBF state machine to handle early offer
cases. This can happen if after we send out shutdown (to kick things
off), the remote party sends their offer early. This can also happen if
their outgoing shutdown (to ACK ours) was delayed for w/e reason, and we
get their offer first.

The alternative was to modify the state machine itself, but we feel that
handling this early case is better in line with the Robustness principle.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 333492e657 lnwallet: implement special case for OP_RETURN in rbf-coop
In this commit, we implement a special case for OP_RETURN scripts
outlined in the spec. If a party decides that its output will be too
small even after the dust check, then they can opt to set it to zero by sending an `OP_RETURN` as their script.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun e6d7a1a2ec protofsm: update state machine w/ new spec flow
In this commit, we implement the latest version of the RBF loop as
described in the spec. We remove the self loop back based on sending or
receiving shutdown. Instead, from the ClosePending state, we can trigger
a new loop by sending SendOfferEvent (we bump), or OfferReceivedEvent
(they bump).

We also update the rbf state machine w/ the new close addr logic. This
log ensures that the remote party always sends our current address, and
that if they send a new address, we'll update our view of it, and
counter sign the correct transaction.

We also add a CloseErr state. With this new state, we can ensure that
we're able to properly report errors back to the RPC client, and also
optionally force a reconnection or send a warning to the remote party.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 14eca4406e lnwire: update closing_complete and closing_sig to latest spec draft
Both these messages now carry the address of both parties, so you can
update an address without needing to send shutdown again.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 835d7623d4 lnwallet/chancloser: ignore spurious channel flushed events
If we go to close while the channel is already flushed, we might get an extra event, so we can safely ignore it and do a self state transition.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 27b24ab86a lnwallet/chancloser: add fee rate to ClosePending
This'll be useful to communicate what the new fee rate is to an RPC caller.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun baf0d83c37 peer: update chooseDeliveryScript to gen script if needed
In this commit, we update `chooseDeliveryScript` to generate a new
script if needed. This allows us to fold in a few other lines that
always followed this function into this expanded function.

The tests have been updated accordingly.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 8432e706d3 multi: extract new DeriveHeightHint() function, use for new rbf closer
With this commit, we make sure we set the right height hint, even if the
channel is a zero conf channel.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun b2794b07cb lnwallet/chancloser: enforce pubkey binding for msg mapper 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun ed8a672bd3 protofsm: update StateMachine to meet new msgmux.Endpoint interface 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun bf3007a2ce multi: thread thru RPC caller context from CloseChannel 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 127d3bed66 input: add new ScriptIsOpReturn helper func 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 29afeb42fb lnd: register protofsm logger 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun a4064c70dc protofsm: don't return error on broadcast fail
We don't return an error on broadcast fail as the broadcast might have
failed due to insufficient fees, or inability to be replaced, which may
happen when one side attempts to unnecessarily bump their coop close
fee.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun daed552bf1 peer: make a DaemonAdapter impl for lnd
Similar to the last commit, in this commit, we make a daemon adapter
impl for lnd. We'll use this for any future protofsm based state
machine.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun c32d4f9695 peer: add an implementation of chancloser.ChanObserver
In this commit, we add an implementation of a new interface the rbf coop
state machine needs. We take care to accept interfaces everywhere, to
make this easier to test, and decouple from the concrete types we'll end
up using elsewhere.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 1d2c22d140 protofsm: add String() method to ProtocolState 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 01382f4c2a htlcswitch: change LinkDirection to be a type alias
In this commit, we change LinkDirection to be a type alias. This makes
creating wrapper structs/interfaces easier, as we don't need to leak
htlcswitch.LinkDirection, instead we can accept a bool.
2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 82ac5fa912 feature: set optional bit for rbf-coop close by default 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun 752fc86c7d lnwire: add feature bits for new rbf coop close 2025-03-18 11:44:20 -05:00
Olaoluwa Osuntokun c292acfe74 Merge pull request #9605 from yyforyongyu/fix-unlock-wallet
cmd: fix error parsed from status
2025-03-18 11:37:35 -05:00
Olaoluwa Osuntokun b21b1e3acb Merge pull request #9592 from guggero/tor-update
mod: bump tor submodule to v1.1.5 to fix flake
2025-03-07 16:21:03 -08:00
Olaoluwa Osuntokun f744a5477f Merge pull request #9565 from guggero/bot-typo-fix-spam
GitHub+docs: no longer accept typo fixes to fight PR spam
2025-02-28 16:18:17 -08:00
Olaoluwa Osuntokun 27440e8957 Merge pull request #9535 from guggero/remove-caching
GitHub: remove duplicate caching
2025-02-20 16:57:55 -08:00
Olaoluwa Osuntokun 553899bffb Merge pull request #9447 from yyforyongyu/yy-sweeper-fix
sweep: start tracking input spending status in the fee bumper
2025-02-20 16:56:45 -08:00
Olaoluwa Osuntokun 5ee81e1876 Merge pull request #9512 from Roasbeef/go-1-23
multi: update build system to Go 1.23
2025-02-17 16:45:12 -08:00
Olaoluwa Osuntokun c40ea0cefc invoices: fix new linter error w/ Go 1.23 2025-02-13 17:09:28 -08:00
Olaoluwa Osuntokun bf192d292f docs: update INSTALL.md with Go 1.23 instructions 2025-02-13 16:57:07 -08:00
Olaoluwa Osuntokun 7bc88e8360 build: update go.mod to use Go 1.23
This enables us to use the new language features that are a part of this
release.
2025-02-13 16:57:06 -08:00
Olaoluwa Osuntokun 61852fbe95 multi: update build system to Go 1.23 2025-02-13 16:57:06 -08:00
Olaoluwa Osuntokun 7b294311bc Merge pull request #9150 from yyforyongyu/fix-stuck-payment
routing+htlcswitch: fix stuck inflight payments
2025-02-11 18:02:02 -08:00
Olaoluwa Osuntokun ce8cde6911 Merge pull request #9470 from ziggie1984/fix-sweepInput-bug
CI / Sqlc check (push) Has been cancelled
CI / RPC and mobile compilation check (push) Has been cancelled
CI / check commits (push) Has been cancelled
CI / lint code (push) Has been cancelled
CI / cross compilation (amd64, darwin-amd64 freebsd-amd64 linux-amd64 netbsd-amd64 openbsd-amd64 windows-amd64) (push) Has been cancelled
CI / cross compilation (arm, darwin-arm64 freebsd-arm linux-armv6 linux-armv7 linux-arm64 windows-arm) (push) Has been cancelled
CI / cross compilation (i386, freebsd-386 linux-386 windows-386) (push) Has been cancelled
CI / sample configuration check (push) Has been cancelled
CI / run unit tests (btcd unit-cover) (push) Has been cancelled
CI / run unit tests (btcd unit-race) (push) Has been cancelled
CI / run unit tests (unit tags="kvdb_etcd") (push) Has been cancelled
CI / run unit tests (unit tags="kvdb_postgres") (push) Has been cancelled
CI / run unit tests (unit tags="kvdb_sqlite") (push) Has been cancelled
CI / run unit tests (unit-module) (push) Has been cancelled
CI / basic itests (backend="bitcoind notxindex", bitcoind-notxindex) (push) Has been cancelled
CI / basic itests (backend=bitcoind cover=1, bitcoind) (push) Has been cancelled
CI / basic itests (backend=btcd cover=1, btcd) (push) Has been cancelled
CI / basic itests (backend=neutrino cover=1, neutrino) (push) Has been cancelled
CI / itests (backend="bitcoind rpcpolling", bitcoind-rpcpolling) (push) Has been cancelled
CI / itests (backend=bitcoind dbbackend=etcd, bitcoind-etcd) (push) Has been cancelled
CI / itests (backend=bitcoind dbbackend=postgres nativesql=true, bitcoind-postgres-nativesql) (push) Has been cancelled
CI / itests (backend=bitcoind dbbackend=postgres, bitcoind-postgres) (push) Has been cancelled
CI / itests (backend=bitcoind dbbackend=sqlite nativesql=true, bitcoind-sqlite-nativesql) (push) Has been cancelled
CI / itests (backend=bitcoind dbbackend=sqlite, bitcoind-sqlite) (push) Has been cancelled
CI / windows itest (push) Has been cancelled
CI / macOS itest (push) Has been cancelled
CI / check pinned dependencies (github.com/golang/protobuf v1.5.3) (push) Has been cancelled
CI / check pinned dependencies (google.golang.org/grpc v1.59.0) (push) Has been cancelled
CI / check release notes updated (push) Has been cancelled
CI / finish (push) Has been cancelled
Docker image build / main (push) Has been cancelled
Make BumpFee RPC user inputs more stricter.
2025-02-07 14:39:31 -08:00
Olaoluwa Osuntokun e40324358a Merge pull request #9459 from ziggie1984/amp-htlc-invoices
invoices: amp invoices bugfix.
2025-01-31 13:11:52 -06:00
Olaoluwa Osuntokun 32cdbb43f6 Merge pull request #9454 from ziggie1984/add_custom_error_msg
Add Custom Error msg and Prioritise replayed HTLCs
2025-01-29 22:48:22 -06:00
Olaoluwa Osuntokun c3cbfd8fb2 Merge pull request #9241 from Crypt-iQ/fix_vb
discovery+graph: track job set dependencies in vb
2025-01-24 11:21:35 -08:00
Olaoluwa Osuntokun 8ecef03315 Merge pull request #9303 from yyforyongyu/fix-circuit-closed
htlcswitch+routing: handle nil pointer dereference properly
2024-12-17 12:19:32 +01:00
Olaoluwa Osuntokun 78cbed985f contractcourt: add rapid derived fuzz test for HtlcAuxBlob
In this commit, we add a rapid derived fuzz test for the HtlcAuxBlob
test. This uses the rapid (randomized property testing) into Go's built
in fuzzer. This wrapper will use the fuzz stream, and pass that into
rapid where the stream is used to make structured test inputs which are
tested against the existing properties.

This can be done more widely in the codebase, we pick a simple example
to port first before tackling others.
2024-12-12 16:57:58 +01:00
Olaoluwa Osuntokun d6eeaec246 Merge pull request #8512 from lightningnetwork/rbf-coop-fsm
[3/4] - lnwallet/chancloser: add new protofsm based RBF chan closer
2024-12-11 00:57:46 +01:00
Olaoluwa Osuntokun 3c5f96de7c lnwallet/chancloser: enable custom payer for rbf coop close
In this commit, we enable a custom payer for the rbf coop close. This
allows us to ensure that the party that started one side of the close
flow pays the fees.
2024-12-10 23:07:03 +01:00
Olaoluwa Osuntokun d38c5e6222 lnwallet: update core coop close logic with custom payer
In this commit, we update the core coop close logic with the new custom
payer param. We also expand the existing unit tests to ensure that the
fee is deducted from the proper party.
2024-12-10 23:07:02 +01:00
Olaoluwa Osuntokun d1b2bff2c8 lnwallet: update CoopCloseBalance to allow a paying party
This preps us for an upcoming change to the rbf coop state machine where
either party can pay for the channel fees. We also add a new test to
make sure the new function adheres to some key properties.
2024-12-10 23:07:02 +01:00
Olaoluwa Osuntokun b8cf5ae98f lnwallet: for rbf coop close, log the close tx 2024-12-10 23:07:02 +01:00
Olaoluwa Osuntokun b94ce6fa08 lnwallet: use custom LockTime for rbf coop close 2024-12-10 23:07:02 +01:00
Olaoluwa Osuntokun ab4297e127 lnwallet/chancloser: use block height as lock time for rbf-coop 2024-12-10 23:07:02 +01:00
Olaoluwa Osuntokun 540d3c0fc7 multi: switch to lock time from sequence for coop close v2 2024-12-10 23:07:01 +01:00