Commit graph

14795 commits

Author SHA1 Message Date
Oliver Gugger
4ab00fb16e
Merge pull request #7533 from guggero/travis-timeout
travis: increase timeout to 120 minutes
2023-03-22 17:58:46 +01:00
yyforyongyu
a79ab8bafd
lntest: increase wait time to 5s when failed to close channel 2023-03-22 23:55:11 +07:00
yyforyongyu
00fa2cb34a
lnwallet: add verbose test logs for TestWebAPIFeeEstimator 2023-03-22 23:55:11 +07:00
Oliver Gugger
0dbb709929
travis: increase timeout to 120 minutes 2023-03-22 13:42:39 +01:00
Oliver Gugger
dcc7421b5b
Merge pull request #7405 from ellemouton/filterOutExhaustedSessions
multi: Filter out exhausted sessions
2023-03-22 10:00:15 +01:00
bitromortac
b6d65752f7
routing: add and fix log statements 2023-03-21 08:54:10 +01:00
bitromortac
ee40d3dd58
routerrpc: fix estimator model field
This commit fixes the capitalization of the estimator's model field.
2023-03-21 08:54:10 +01:00
yyforyongyu
2b8e9a0d36
multi: add more trace logs regarding link activate flow 2023-03-21 10:18:49 +07:00
Oliver Gugger
d019c82f07
itest: assert change output type of SendCoins 2023-03-20 20:15:43 +01:00
Oliver Gugger
a266c3a4a9
itest: add assertion for PSBT change outputs
With this commit we add more specific assertions to our PSBT signing
test in order to make sure change outputs have the proper PSBT metadata
associated with them, depending on their address type.
2023-03-20 19:22:37 +01:00
Elle Mouton
a3e9f5b83c
docs: add release note for 7405 2023-03-20 20:14:02 +02:00
Elle Mouton
957df98777
lncli: add new exclude-exhausted-sessions option 2023-03-20 20:14:02 +02:00
Elle Mouton
13c656defe
lnrpc: use new ExcludeExhaustedSessions option 2023-03-20 20:14:01 +02:00
Elle Mouton
e6494889b0
wtclientrpc: add excludeExhaustedSessions option
Add a new `exclude_exhausted_sessions` field to the relevant
wtclient.proto requests. This was chosen instead of "include_exhausted"
so as to not break the API.
2023-03-20 20:14:01 +02:00
Elle Mouton
1af31bfea7
wtclient: fix info log line format 2023-03-20 20:14:01 +02:00
Elle Mouton
8623e6107d
wtclient: don't unnecessarily load exhausted sessions
In this commit, a new `ExhaustedSessionFilter` function is added and
used as a PostEvalFilterFn used when loading sessions from the DB. It
allows us to not unnecessarily load exhausted sessions into memory for
areas of the code where they will not be needed.
2023-03-20 20:14:01 +02:00
Elle Mouton
49cd23725a
watchtower: add PostEvaluateFilterFn call-back option
This commit adds a new PostEvaluateFilterFn call-back option to
`wtdb.ClientSessionListCfg`. This call-back is run _after_ all the other
evaluation call-backs in `wtdb.ClientSessionListCfg` and is only used to
determine if the session should be included in the returned list or not.
2023-03-20 20:14:01 +02:00
Elle Mouton
7bc86ca42e
watchtower: add PreEvaluateFilterFn callback
In this commit, a PreEvaluateFilterFn option is added to the
wtdb.ClientSessionListCfg and it is used instead of a separate
ClientSessionFilterFn parameter. This neatens quiet a few function
signatures.
2023-03-20 20:14:01 +02:00
Oliver Gugger
c4c1f1ac92
Merge pull request #7069 from ellemouton/deleteSessions
watchtower: start using the DeleteSession message
2023-03-20 18:45:36 +01:00
Elle Mouton
ab98fc43fe
docs: add release note for 7069 2023-03-20 16:51:51 +02:00
Elle Mouton
6f4034f7d1
lntest/itest: add session deletion itest 2023-03-20 16:51:51 +02:00
Elle Mouton
31beacc2c4
lnrpc/wtclientrpc: populate sessions from legacy channels 2023-03-20 16:51:51 +02:00
Elle Mouton
bad80ff583
multi: make tower MaxUpdates configurable
This is helpful in an itest environment where we want to quickly
saturate a session.
2023-03-20 16:51:51 +02:00
Elle Mouton
d840761cc4
watchtower: dont load closed channel details
In this commit, the FetchChanSummaries method is adapted to skip loading
any channel summaries if the channel has been marked as closed.
2023-03-20 16:51:51 +02:00
Elle Mouton
26e628c0fe
watchtowers: handle closable sessions
Add a routine to the tower client that informs towers of sessions they
can delete and also deletes any info about the session from the client
DB.
2023-03-20 16:51:51 +02:00
Elle Mouton
8478b56ce6
watchtower: method to dial tower and send DeleteSession
This commit adds a deleteSessionFromTower method which can be used to
dial the tower that we created a given session with and then sends that
tower the DeleteSession method.
2023-03-20 16:51:33 +02:00
Elle Mouton
0209e6feb8
watchtower/wtclient: add Copy method to AddressIterator 2023-03-20 16:51:32 +02:00
Elle Mouton
2b08d3443f
watchtowers: add thread safe min-heap
In this commit, a thread-safe min-heap is implemented. It will carry
sessionCloseItems which carry a sessionID and a block height at which
the session should be closed.
2023-03-20 16:51:32 +02:00
Elle Mouton
16008c0032
watchtower: handle channel closures
Add a channel-close handler that waits for channel close events and
marks channels as closed in the tower client DB.
2023-03-20 16:51:25 +02:00
Elle Mouton
41e36c7ec7
watchtower: add wtclient.ClientSession constructor 2023-03-20 10:46:53 +02:00
Elle Mouton
0ed5c750c8
watchtower: add GetTower to tower iterator
Add a GetTower method to the tower iterator.
2023-03-20 10:46:53 +02:00
Elle Mouton
e432261dab
watchtower: add DeleteSession method
Add a DeleteSession method to the tower client DB. This can be used to
delete a closable session along with any references to the session.
2023-03-20 10:46:52 +02:00
Elle Mouton
3577c829d3
watchtower: add ListClosableSessions method
This commit adds a new ListClosableSessions method to the tower client
DB. This method will return a map of sessionIDs to block heights. The
IDs belong to sessions that are considered closable and the block
heights are the block height at which the last associated channel for
the session was closed in.
2023-03-20 10:46:52 +02:00
Elle Mouton
571966440c
watchtower: add MarkChannelClosed db method
This commit adds a `MarkChannelClosed` method to the tower client DB.
This function can be called when a channel is closed and it will
check the channel's associated sessions to see if any of them are
"closable". Any closable sessions are added to a new
`cClosableSessionsBkt` bucket so that they can be evaluated in future.
Note that only the logic for this function is added in this commit and
it is not yet called.
2023-03-20 10:46:52 +02:00
Elle Mouton
a3050ed213
watchtower: add GetClientSession func to DB
This commit adds a new `GetClientSession` method to the tower client DB
which can be used to fetch a session by its ID from the DB.
2023-03-20 10:46:52 +02:00
Elle Mouton
5283e2c341
watchtower/wtdb: remove unnecessary tower load 2023-03-20 10:46:52 +02:00
Elle Mouton
ee0353dd24
watchtower: build channel to sessionIDs index
In this commit, a migration is added that adds an index from channel to
sessionIDs (using the DB-assigned session IDs). This will make it easier
in future to know which sessions have updates for which channels.
2023-03-20 10:46:52 +02:00
Elle Mouton
b16df45076
watchtower: add sessionID index
In this commit, a new session-ID index is added to the tower client db
with the help of a migration. This index holds a mapping from a
db-assigned-ID (a uint64 encoded using BigSize encoding) to real session
ID (33 bytes). This mapping will help us save space in future when
persisting references to sessions.
2023-03-20 10:46:52 +02:00
yyforyongyu
c4aea6e789
docs: update release note for channel_ready 2023-03-17 18:22:00 +08:00
yyforyongyu
dc3f83c670
funding+lnwire: rename and fix make lint
Fix linter and rename `funding_locked.go` to `channel_ready.go`
2023-03-17 18:21:59 +08:00
yyforyongyu
d4ad5f362f
funding: replace fundingLocked found in docs
This commit is created by running,
```shell
find . -name "*.go" -exec sed -i '' 's/fundingLocked/channelReady/g' {} \;
```
2023-03-17 18:21:59 +08:00
yyforyongyu
465285efb8
funding: replace fundingLocked with channelReady 2023-03-17 18:21:59 +08:00
yyforyongyu
6b9217acfc
multi: replace FundingLocked related docs
This commit replaces `FundingLocked` found in docs using the following
command,
```shell
find . -name "*.go" -exec sed -i '' 's/FundingLocked/ChannelReady/g' {} \;
find . -name "*.go" -exec sed -i '' 's/FundingLock/ChannelReady/g' {} \;
```
2023-03-17 18:21:59 +08:00
yyforyongyu
f8a8326141
multi: replace FundingLocked and funding_locked strings
This commit is created by running the following commands,
```shell
find . -name "*.go" -exec sed -i '' 's/\"FundingLocked/\"ChannelReady/g' {} \;
find . -name "*.go" -exec sed -i '' 's/FundingLocked\"/ChannelReady\"/g' {} \;
find . -name "*.go" -exec sed -i '' 's/\ funding_locked/\ channel_ready/g' {} \;
```
2023-03-17 18:21:59 +08:00
yyforyongyu
015446559b
funding+lnwire: rename FundingLocked related tests
This commit is created by running the following commands,

```shell
gofmt -d -w -r 'fundingLockedAlice -> channelReadyAlice' .
gofmt -d -w -r 'fundingLockedBob -> channelReadyBob' .
gofmt -d -w -r 'assertHandleFundingLocked -> assertHandleChannelReady' .
gofmt -d -w -r 'assertFundingLockedSent -> assertChannelReadySent' .
gofmt -d -w -r 'aliceFundingLocked -> aliceChannelReady' .
gofmt -d -w -r 'bobFundingLocked -> bobChannelReady' .
gofmt -d -w -r 'FuzzFundingLocked -> FuzzChannelReady' .
gofmt -d -w -r 'newMsgFundingLocked -> newMsgChannelReady' .
gofmt -d -w -r 'TestFundingManagerReceiveFundingLockedTwice -> TestFundingManagerReceiveChannelReadyTwice' .
gofmt -d -w -r 'TestFundingManagerRestartAfterReceivingFundingLocked -> TestFundingManagerRestartAfterReceivingChannelReady' .
```
2023-03-17 18:21:59 +08:00
yyforyongyu
539cae1999
multi: rename fundingLockedMsg to channelReadyMsg
This commit is created by running,
```shell
gofmt -d -w -r 'fundingLockedMsg -> channelReadyMsg' .
```
2023-03-17 18:21:59 +08:00
yyforyongyu
112dc1faca
funding: rename FundingLocked related functions and variables
This commit is created by running the following commands,
```shell
gofmt -d -w -r 'sendFundingLocked -> sendChannelReady' .

gofmt -d -w -r 'handleFundingLockedMtx -> handleChannelReadyMtx' .

gofmt -d -w -r 'handleFundingLockedBarriers -> handleChannelReadyBarriers' .

gofmt -d -w -r 'receivedFundingLocked -> receivedChannelReady' .

gofmt -d -w -r 'handleFundingLocked -> handleChannelReady' .

gofmt -d -w -r 'fundingLockedSent -> channelReadySent' .

gofmt -d -w -r 'checkPeerFundingLockInterval -> checkPeerChannelReadyInterval' .
```
2023-03-17 18:21:58 +08:00
yyforyongyu
2dc08a2a76
multi: rename NewFundingLocked to NewChannelReady
This commit is created by the following command,

```shell
gofmt -d -w -r 'NewFundingLocked -> NewChannelReady' .
```
2023-03-17 18:21:58 +08:00
yyforyongyu
c8e8358918
channeldb+lnwire: rename MsgFundingLocked to MsgChannelReady
This commit is created by running,

```shell
gofmt -d -w -r 'MsgFundingLocked -> MsgChannelReady' .

gco master channeldb/migration
```
2023-03-17 18:21:58 +08:00
yyforyongyu
1b7c56b2ed
multi: rename FundingLocked to ChannelReady
This commit is created by running,

```shell
gofmt -d -w -r 'FundingLocked -> ChannelReady' .

gco master channeldb/migration
```
2023-03-17 18:21:58 +08:00