Commit Graph
100 Commits
Author SHA1 Message Date
ziggie 90db546b64 docs: update release-notes
Correct 18.4 release-notes for a change which will only be part
of 19.0.
2024-12-19 18:58:13 +01:00
ziggie c6bdbbe222 github: update goveralls tool
The goverall tool had a bug regarding the module versioning of
golang packages see also
https://github.com/mattn/goveralls/pull/222 for more background.
Goveralls is wrapped by another library to make it available for
github actions. So the relevant PR which is referenced here in
LND is:
https://github.com/shogo82148/actions-goveralls/pull/521.
2024-12-12 10:38:01 +01:00
ziggie 101311debb docs: fix typos in release-notes 19.0 2024-12-10 19:05:49 +01:00
ziggie 2610663658 docs: add release-notes for 18.4 2024-12-10 19:05:49 +01:00
ziggie decfdb68ac routing: bugfix for mc reporting of blinded paths
When reporting an error  or a success case of a payment to a
blinded paths, the amounts to forward for intermediate hops
are set to 0 so we need to use the receiver amount instead.
2024-12-10 19:05:49 +01:00
ziggie 9327940ac4 routing: add pathfinding test
We add a test where we add duplicate hops in a route and verify
that the pathfinding engine can handle this edge case.
2024-12-10 19:05:49 +01:00
ziggie 3cec72ae9c routing: improve lasthoppaylaod size calculation
Fixes a bug and makes the function more robust. Before
we would always return the encrypted data size of last hop
of the last path. Now we return the greatest last hop payload
not always the one of the last path.
2024-12-10 19:05:49 +01:00
ziggie e47024b790 routing: Use NUMS point for blinded paths
To be able to do MPP payment to multiple blinded routes we need
to add a constant dummy hop as a final hop to every blined path.
This is used when sending or querying a blinded path, to let the
pathfinder be able to send MPP payments over different blinded
routes. For this dummy final hop we use a NUMS key so that we
are sure no other node can use this blinded pubkey either in a
normal or blinded route.
Moreover this helps us handling the mission control data for
blinded paths correctly because we always consider the blinded
pubkey pairs which are registered with mission control when
a payment to a blinded path fails.
2024-12-10 19:05:49 +01:00
ziggie e8ee087cbc fn: add deep copy interface. 2024-12-10 14:10:33 +01:00
ziggie df30b481c6 input: export NUMS key parser. 2024-12-09 23:08:50 +01:00
ziggie 0004e31997 docs: add release-notes 2024-12-05 15:11:12 +01:00
ziggie 17bc8827c5 contractcourt: refactor start up of arbitrators
We decouple the state machine of the channel arbitrator from
the start-up process so that we can startup the whole daemon
reliably.
2024-12-05 15:11:12 +01:00
ziggie 879041b75e docs: add release notes 2024-11-20 09:19:09 +01:00
ziggie ed6a246439 rpcserver: add robustness check 2024-11-20 09:18:25 +01:00
ziggie 5486f32444 multi: introduce an option for resolutions
We don't always need the resolutions in the local force close
summary so we make it an option.
2024-11-20 09:18:24 +01:00
ziggie aaa0abc8a9 wtdb: export versions of wtclient.db
We now make it possible to get the current db version of the
wtclient.db. Moreover we can now fetch the latest available
migration version for the client db. This allows us to compare
whether the client.db has all the expected migrations applied.
2024-11-19 16:42:52 +01:00
ziggie 59f32682a5 contractcourt: introduce option for commitKey. 2024-11-07 22:40:53 +01:00
ziggie d5e8df7067 docs: add release-notes for LND 19 2024-11-07 22:40:53 +01:00
ziggie 50d6864137 itest: adopt itests for the new behavior
Now outgoing dust-htlcs are canceled back before the commitment
is confirmed onchain.
2024-11-07 22:40:53 +01:00
ziggie 7aa9ade4c2 contratcourt: dont consider dust htlc for anchor sweep
Now that we cancel dust htlcs prematurely even before the
commitment tx is confirmed we don't consider dust htlcs when
creating the cpfp transaction.
2024-11-07 22:40:52 +01:00
ziggie 8ed8665d50 contractcourt: Cancel dust htlcs prematurely
We will now cancel dust htlcs on the local/remote commits after
we decided to go onchain. This can be done because dust cannot
be enforced onchain and therefore there is no way to also reveil
the preimage onchain.
2024-11-07 22:40:52 +01:00
ziggie 20dc7f29f8 multi: fix typo and add comment. 2024-11-07 18:32:45 +01:00
ziggie 328a711dbe contractcourt: enhance chainAction type
We distinguish between dangling and dust htlcs. This does not
change any logic but only introduces new types to later act on them
differently when we begin to fail dust htlcs earlier in a later
commit.
2024-11-07 18:32:45 +01:00
ziggie 8890f83bde contratcourt: refactor resolving htlc logic
Refactor the part where we are failing back the incoming htlc
when the channel of the corresponding outgoing htlc is force
closed. We do this because in furture commits we separate the
logic when we fail back the incoming htlc (abandonForward).
Right now we fail abandon dust forwards and non-dust forwards
only when the commitment transaction is confirmed. Later we will
move the canceling of the upstream htlc when the commitment
transaction is broadcasted instead of waiting until the commitment
tx is confirmed. The reason for that is that dust cannot be enforced
onchain anyways so there is no reason to wait.
2024-11-07 18:32:45 +01:00
ziggie 98a270bd30 contractcourt: improve robustness 2024-11-07 18:32:44 +01:00
ziggie aebf03aca4 docs: add release-notes for 19. 2024-11-06 18:52:07 +01:00
ziggie 643e415448 scripts: dont check new config value.
Because we need to remain backwards compatible with the old
`dust-threshold` value we set the default value for
`channel-max-fee-exposure` later in the program flow. Given
the restrictions of the sample config check we need to exclude
this value from the check.
2024-11-06 18:52:07 +01:00
ziggie 7b2da94750 multi: deprecate dust-treshold config value
Replace ambigious config value "dust-treshold" with a more clear
"channel-max-fee-exposure" exposure value. The old value is
deprecated and will be removed in the near future.
2024-11-06 18:16:06 +01:00
ziggie a040f8fafa htlcswitch: increase log 2024-11-06 18:12:43 +01:00
ziggie 5fe9bb2cff htlcswitch: adopt test for dust threshold 2024-10-31 17:35:53 +01:00
ziggie cfa073e6ec htlcswitch: increase logs 2024-10-31 17:35:27 +01:00
ziggie f73504a26d docs: add release notes. 2024-10-18 13:11:09 +02:00
ziggie 8bb79d10e9 lnd: fix debuglevel bug.
We need to setup the loggers before we are able to show the
complete list of available subsystems.
2024-10-18 13:11:09 +02:00
ziggie 027de0a82c invoices: add proper startup for the interceptor
During testing of this PR I figured out the the htlc interceptor
was not shutdown and started properly in terms of closing the
quit channel but also in terms of the relevant logs.
2024-10-18 13:03:30 +02:00
ziggie 448193b0fd multi: separate profiler config 2024-10-18 13:03:30 +02:00
ziggie 64c20ca308 docs: Detail LND's debug possibilities
Describe the basics of the LND profiler so that node runners can
easily provide profile dumps to analyse faulty behaviour more
quickly.

Also update the description of LND's logging system.
2024-10-18 13:03:30 +02:00
ziggie 8d4d3e0323 rpc: return loglevels of the current subsystems 2024-10-18 13:03:29 +02:00
ziggie 42e8a43375 fn: Add Size and IsEmpty methods to Set 2024-10-04 01:07:47 +02:00
ziggie 4402137fb4 multi: bump btcd version.
The new SignCompact return values had to be adopted across the
code base.
2024-10-03 21:56:21 +02:00
ziggie 2915936a39 docs: add release-notes. 2024-10-03 00:38:50 +02:00
ziggie 6387c0ab50 walletrpc: error out for non-anchor chans.
Return an error if a non-anchor channel is tried to be fee-bumped.
2024-10-03 00:37:49 +02:00
ziggie 7ea2080abe lnd: add logger for rpcclient 2024-10-02 11:51:24 +02:00
ziggie eba481e790 docs: add instructions how to sign a LND release. 2024-09-18 01:31:12 +02:00
ziggie f5f52a65c9 scripts: rename PGP key file.
The name in the verify-install.sh and the PGP key file need to be
the same.
2024-09-16 10:49:18 +02:00
ziggie 82d99f3ebf scripts: add gpg key for ziggie [skip ci] 2024-09-10 19:40:13 +02:00
ziggie 6f26f2a5b3 chanfunding: remove unsupported linter directive.
Remove unsupported linter and also change ifelse clause to
switch statement.
2024-09-10 16:32:59 +02:00
ziggie 64fb4cb4ac itest: fix blinded path itest. 2024-08-29 09:50:46 +02:00
ziggie 816b25e2ba docs: add release-notes. 2024-08-22 19:09:43 +02:00
ziggie 25f7b1c362 blindedpath: minHTLC for blinded path change.
We will not add a buffer to the chan policy for blinded paths in case
the sender amount violates the minHTLC restriction in the first place.

Moreover we disgard a route fast if the payment amount is smaller than
the minHTLC along the route.
2024-08-22 19:09:43 +02:00
ziggie 73984964a8 blindedpath: fix log output. 2024-08-22 17:48:27 +02:00
ziggie 5d7113ac1d blindedpath: remove blockexpiry check.
Removes a check where we would NOT allow to create a blinded invoice
with an expiry (invoice expiry in seconds considered as block time)
lower than the min_final_ctlv_delta.
2024-08-22 17:45:45 +02:00
ziggie fc5b763ab6 docs: update release-notes. 2024-08-17 04:29:58 +02:00
ziggie e5d7a7d371 discovery: add detailed comment.
Describe why it is ok to resurrect zombie channels based on the
timestamp of the `ReplyChannelRange` msg although its not verifiable
data.
2024-08-17 04:29:58 +02:00
ziggie 6fb1e0c17d multi: fix time.Time initialization.
ChanUpdate timestamps are now restircted so that they cannot be
more than two weeks into the future. Moreover channels with both
timestamps in the ReplyChannelRange msg either too far in the past
or too far in the future are not queried.

Moreover fix unitests.
2024-08-17 04:29:57 +02:00
ziggie aecfe1c484 discovery: fix log line.
if we use %x here we would get the hex representation of the
String() method of the vertex, which is wrong.
2024-08-15 12:09:52 +02:00
ziggie 08aba8ce31 docs: add release notes. 2024-08-09 19:41:27 +02:00
ziggie 22b504db7c sweep: add TODO to the sweeper behavior.
Make sure we only trigger the sweep of a specific input when
updating its fee parameters not the all the current pending
registered sweeps.
2024-08-09 19:41:27 +02:00
ziggie 2d04813dc3 itest: Add itest for bumpclosefeerate rpc.
Add an itest which will bump the close fee rate of an anchor
channel which is force closed without having any HTLCs at stake.
2024-08-09 19:41:27 +02:00
ziggie ae28f75557 miner: bugfix
return the transaction when found in the mempool.
2024-08-09 19:41:26 +02:00
ziggie 75f6622ccf itest: remove unused LEGACY channel code.
Legacy Channel types are not tested anymore via the multi-hop
test harness, therefore we can remove unused code.
2024-08-09 18:54:57 +02:00
ziggie 07b18c1c86 multi: add bumpforceclosefee rpc endpoint.
Add a new bumpforceclosefee rpc endpoint to the wallet server.
Move the logic from the lncli level to the wallet server rpc level.
This is more in line with a proper client-server design.

wallet lncli: use new bumpforceclosefee endpoint.

Besides using the new bumpforceclosefee rpc endpoint we also enable the
bumping of taproot anchor channels.
2024-08-09 18:54:56 +02:00
ziggie 0adcb5c316 docs: add release notes for 18.3. 2024-07-31 14:43:34 +02:00
ziggie 02c1264c53 multi: prevent nil panics in stop methods.
With this PR we might call the stop method even when the start
method of a subsystem did not successfully finish therefore we
need to make sure we guard the stop methods for potential panics
if some variables are not initialized in the contructors of the
subsystems.
2024-07-31 14:43:34 +02:00
ziggie e19f891453 graph: add log lines for stop and start func. 2024-07-31 13:12:20 +02:00
ziggie 598d6e23bc lnd: change startup order of authGossiper. 2024-07-31 13:12:19 +02:00
ziggie 653e2f3667 multi: Allow interrupt of server startup.
This commit does two things. It starts up the server in a way that
it can be interrupted and shutdown gracefully.
Moreover it makes sure that subsystems clean themselves up when
they fail to start. This makes sure that depending subsytems can
shutdown gracefully as well and the shutdown process is not stuck.
2024-07-31 13:12:19 +02:00
ziggie 08b68bbaf7 multi: Add atomic start/stop functions.
Make sure that each subsystem only starts and stop once. This makes
sure we don't close e.g. quit channels twice.
2024-07-31 13:12:19 +02:00
ziggie da7b95d4a4 docs: add release-notes. 2024-07-30 20:31:29 +02:00
ziggie cac5b32d88 itest: adapt itest for the new anchor behavior.
Now we also register anchors when no HTLCs are at stake.
2024-07-30 20:31:29 +02:00
ziggie e413759669 contractcourt: Always register anchors with sweeper.
Even if no HTLCs are at stake we are going to register the anchor
outputs with the sweeper subsystem with a default high deadline.
We need to do this, because otherwise we are not able to bump the
fee of the closing transaction manually.
2024-07-30 20:31:29 +02:00
ziggie eb7818a633 docs: add release-notes. 2024-07-26 10:48:00 +02:00
ziggie bf38aed87f lnd: unify the default setting behaviour.
Setting default values for the channel opening fee rate is already
done elsewhere therefore we remove on of those checks and return
an error if no fee rate is specified.
2024-07-26 10:48:00 +02:00
ziggie d0a7765c68 rpcserver: include fee calc. for psbt flow.
Include the fee calculaltion for the psbt flow. Moreover include
fee rate testing in the itest environment.
2024-07-26 10:48:00 +02:00
ziggie f4b92eb3d4 docs: add release-notes. 2024-04-25 12:00:56 +01:00
ziggie 9f9d1c9e0b itest: fix typo. 2024-04-25 12:00:26 +01:00
ziggie fe829c2508 mod: bump neutrino version. 2024-04-25 12:00:26 +01:00
ziggie 0ea45efe28 docs: add release-notes. 2024-04-24 16:56:09 +01:00
ziggie 64601a9bbe wallet lncli: fix bumpfee parsing bug. 2024-04-24 16:56:09 +01:00
ziggie 58e12884dc docs: add release-notes. 2024-04-24 13:58:20 +01:00
ziggie 351e9a68dd multi: Add tests to psbt and normal open channel flow.
Itests were added to the normal channel funding flow and the psbt
funding flow using unstable (unconfirmed sweeper inputs).
2024-04-24 13:58:20 +01:00
ziggie b954ee4c72 rpcserver: allow unconf. inputs for psbt shim.
Allow unconfirmed inputs to be used when funding a channel via
the psbt channel opening flow. We do now check for unstable utxos.
2024-04-24 13:58:20 +01:00
ziggie ab7634b276 multi: Add utxo restriction for batchchannel openings.
Add utxo restrictions for psbt internal wallet funded lightning
channels. This also includes batchopening channels backed by the
internal wallet.
2024-04-24 13:58:20 +01:00
ziggie 62a52b4d7c multi: Utxo restriction single funding case.
Restrict the utxo selection when opening a single internal wallet
funded backed channel.
2024-04-24 13:58:19 +01:00
ziggie 2a88cf8eef mod: update btcwallet version. 2024-04-24 13:58:19 +01:00
ziggie b019657d19 docs: add release-notes. 2024-04-01 20:05:28 +01:00
ziggie eba4911599 lnd: fix sweepall argument call.
maxFeeRate and feePerKw were switched in CraftSweepAllTx.
2024-04-01 20:00:54 +01:00
ziggie 25c38491ee docs: add release-notes.
Adding the release-notes for release 0.18 and fixing typos in the
release doc.
2024-03-19 16:57:12 +00:00
ziggie 6821309af3 lnwallet: Change MaxFee calculation.
When determining the max fee rate of a channel we used to scale
the fee rate depending on our available local balance on this channel.
This lead to a special case that if a channel would be drained we
could especially decrease the fee rate even down to the fee floor.
Now we make sure that our max fee rate will not be lower than the
old fee rate to make sure in case our channel is locally drained
we do not continue to decrease fees too low.
2024-03-19 16:56:15 +00:00
ziggie 45c6ee69d2 chainfee: special case a zero fee estimation.
Bitcoind will not report any fee estimation in case it has not
enough data available. We used to just set the min mempool fee
in such cases but this might not represent the current fee situation
of the bitcoin network. We return an error now so that we will use
the fallback fee instead.
2024-03-19 16:56:14 +00:00
ziggie da5055c210 docs: add release-notes. 2024-02-03 12:16:07 +00:00
ziggie 4732c09a26 multi: Fix final hop payload size for AMP payments. 2024-02-03 12:16:06 +00:00
ziggie ff30ff40bf multi: Fix final hop payload size for blinded rt.
The final hop size is calculated differently therefore we extract
the logic in its own function and also account for the case where
the final hop might be a blinded hop.
2024-02-03 12:11:01 +00:00
ziggie c1b91fff14 multi: use new AdditionalEdge interface.
In the previous commit the AdditionalEdge interface was introduced
with both of its implementations `BlindedEdge` and `PrivateEdge`.
In both cases where we append a route either by a blinded route
section or private route hints we now use these new types. In
addition the `PayloadSizeFunc` type is introduced in the
`unifiedEdge` struct. This is necessary to have the payload size
function at hand when searching for a route hence not overshooting
the max sphinx package size of 1300 bytes.
2024-02-03 12:10:46 +00:00
ziggie 9d3c0d9e3a routing: add new interface AdditionalEdge.
A new interface AdditionalEdge is introduced which allows us to
enhance the CachedEdgePolicy with additional information. We
currently only need a PayloadSize function which is then used to
determine the exact payload size when building a route to adhere
to the sphinx package size limit (BOLT04).
2024-02-01 17:37:43 +00:00
ziggie 13e20e99e4 docs: add release-notes. 2024-01-29 15:10:15 +00:00
ziggie 339c5fe1f0 makefile: add rpc tags to the unit tests. 2024-01-29 15:09:22 +00:00
ziggie 4f77758419 walletrpc: Add Taproot witness types to rpc. 2024-01-29 15:09:22 +00:00
ziggie 141a30dc37 docs: update release-notes. 2024-01-29 10:23:03 +00:00
ziggie d2c82c49ca mod: update btcwallet version.
Update the btcwallet version to fix a case where fetching of
already pruned blocks from our peers was not garbage collected
when the request failed.
2024-01-29 10:23:03 +00:00
ziggie 13e557d9b0 docs: add release-notes. 2024-01-22 16:45:39 +00:00