Commit Graph
15887 Commits
Author SHA1 Message Date
yyforyongyu 4ee862e3be blockcache: fix heap escape in GetBlock
This commit fixes a heap escape found in `GetBlock`. This happens
because the `msgBlock` is a pointer returned from `getBlockImpl`, and
the whole `getBlockImpl` escapes to the heap because it's referenced in
two places,
- in the `Cache`, it's used as a reference type to create the new block.
- this pointer is also returned and now needs to stay on the heap.

The fix is simple, we now make a copy of the block and use the copy
instead, freeing `getBlockImpl` from the heap.
2024-01-23 17:08:57 +08:00
yyforyongyu 77e5deae9d gomod: update btcd version to fix mem leak 2024-01-23 17:08:54 +08:00
Elle 51de320d69 Merge pull request #8385 from Roasbeef/ping-async-dc
peer: make PingManager disconnect call async
2024-01-23 09:24:11 +02:00
Keagan McClelland 359f271541 docs: update release notes 2024-01-22 18:20:36 -08:00
Olaoluwa Osuntokun 185119f5c3 peer: refactor main event loop for ping handler
The error was never used as the init couldn't return an error, so we do
away with that. We also modify the main event loop dispatch to more
closely match other areas of the codebase.
2024-01-22 18:20:30 -08:00
Olaoluwa Osuntokun b5cbeb4ad7 peer: make PingManager disconnect call async
In this commit, we make all calls to disconnect after a ping/pong
violation is detected in the `PingManager` async. We do this to avoid
circular waiting that may occur if the disconnect call back ends up
waiting on the peer goroutine to be torn down. If this happens, then the
peer goroutine will be blocked on the ping manager fully tearing down,
which is blocked on the peer disconnect succeeding.

This is a similar class of issue we've delt with recently as pertains to
the peer and the server: sync all back execution must not lead to
a circular waiting loop.

Fixes #8379
2024-01-22 18:20:23 -08:00
Olaoluwa Osuntokun 41c167d37c Merge pull request #8400 from ellemouton/deadlockFix
channeldb: acquire mutexes in the same order throughout
2024-01-22 12:57:48 -08:00
Elle Mouton 63a3882272 docs: add release note 2024-01-22 21:08:37 +02:00
Elle Mouton 6c427a6ba9 multi: update FetchChanInfos to take in an optional tx
In this commit, the FetchChanInfos ChannelGraph method is updated to
take in an optional read transaction for the case where it is called
from within another transaction.
2024-01-22 21:07:55 +02:00
Elle Mouton 8cf4044215 channeldb: rename delChannelEdge to delChannelEdgeUnsafe
In order to emphasise the fact that the ChannelGraph's cacheMu should be
acquired before calling the `delChannelEdge` method, we add the `Unsafe`
postfix and add a comment to alert readers.
2024-01-22 21:07:55 +02:00
Elle Mouton ab06665fde channeldb: acquire mutexes in the same order throughout
In this commit, we ensure that the channeldb cacheMu mutex is only ever
aquired _before_ acquiring the main DB lock in the cases where the two
locks need to be held simultaneously.

With this commit, the deadlock demonstrated in the previous commit is
now fixed.
2024-01-22 21:07:55 +02:00
Elle Mouton 76748bdbf7 channeldb: add ChannelGraph stress test
This commit adds a test that calls many of the ChannelGraph methods
concurrently and in a random order. This test demonstrates that a
deadlock currently exists in the ChannelGraph since the test does not
complete. This is fixed in the next commit.
2024-01-22 21:07:54 +02:00
Yong ec5b824879 Merge pull request #8406 from ziggie1984/fix-channel-opening-issue
Fix case where Opening Channels get stuck forever.
2024-01-23 02:12:44 +08:00
ziggie 13e557d9b0 docs: add release-notes. 2024-01-22 16:45:39 +00:00
ziggie ccac5c349c multi: Add itest for a failed funding flow.
This adds an itest for a failed funding flow by our peer.
2024-01-22 16:45:38 +00:00
ziggie 3530254ff4 peer: add unit test.
Add a unit test for the removal of a pending channel.
2024-01-22 13:01:42 +00:00
ziggie a5d2541292 funding: initialize remove channel. 2024-01-22 12:58:52 +00:00
Oliver Gugger e1259cd3c7 Merge pull request #8411 from guggero/make-help
Makefile: add `make help` command that describes goals
2024-01-22 03:59:41 -06:00
Oliver Gugger 35fa053144 Merge pull request #8413 from ellemouton/add-0-17-4-release-notes
docs: add template for 0.17.4
2024-01-22 03:58:16 -06:00
Elle Mouton 2a237209d2 docs: add template for 0.17.4 2024-01-22 11:08:25 +02:00
Oliver Gugger f35a3718ec Makefile: add make help command that describes goals
This commit adds a description to each make goal that is printed when
`make help` is run.
Idea borrowed from btcsuite/btcd#2107.
2024-01-22 10:31:48 +02:00
Oliver Gugger 2b83ea309a Merge pull request #8407 from mohamedawnallah/fix-typo-channel.go
fix: fix typo "(cltv_expiry" to "(cltv_expiry)" in `channeldb/channel.go` [skip ci]
2024-01-22 00:46:06 -06:00
Oliver Gugger cc18ec4f55 Merge pull request #8354 from mohamedawnallah/add-bitcoind-docker-image-compose-setup
docker: setup `bitcoind` docker image in the `docker-compose.yml` file
2024-01-22 00:43:26 -06:00
Mohamed Awnallah 8407e6989e fix: fix typo "(cltv_expiry" to "(cltv_expiry)" [skip ci] 2024-01-20 17:31:19 +02:00
Elle 0a29b37be6 Merge pull request #7733 from ellemouton/taprootTowers
watchtower: support taproot channel commitments
2024-01-19 22:55:20 +02:00
Oliver Gugger 24a79c78ed Merge pull request #8403 from ellemouton/towerInterfaceGotcha
config: pass tower manager pointer in to PopulateDependencies
2024-01-19 07:59:30 -06:00
Mohamed Awnallah a7914af264 docker: setup bitcoind docker image in the docker compose yaml file 2024-01-19 15:33:47 +02:00
Elle Mouton 2a61c914fb docs: add release note entry for 7733 2024-01-19 15:33:07 +02:00
Elle Mouton 55ee01a6ca itest: add taproot tower itest 2024-01-19 15:33:07 +02:00
Elle Mouton f12cc12da5 server: register a taproot tower client 2024-01-19 15:33:07 +02:00
Elle Mouton 3cb194c45e lnrpc+lncli: update wtclientrpc for taproot towers 2024-01-19 15:33:06 +02:00
Elle Mouton 660f1f361e watchtower/wtclient: prep client for taproot towers 2024-01-19 15:33:06 +02:00
Oliver Gugger c0e3ae6adc Merge pull request #8399 from yyforyongyu/add-signing-key
scripts: add gpg key for yyforyongyu [skip ci]
2024-01-19 07:15:25 -06:00
Elle Mouton 589cebcec2 config: pass tower manager pointer in to PopulateDependencies
In this commit, we let the explicit wtclient.Manager struct be passed in
to PopulateDependencies instead of the tower client interface. We need
to do this since we do allow the tower client interface to be nil if the
client is not active. So to avoid the golang gotcha where the interface
value will be seen as not nil even though the underlying value is nil,
we pass in the explicit pointer instead.
2024-01-19 13:55:53 +02:00
yyforyongyu 6abfa0b1ee scripts: add gpg key for yyforyongyu [skip ci] 2024-01-19 01:23:30 +08:00
Elle Mouton c50aa10194 watchtower/lookout: make justice desciptor taproot ready 2024-01-18 18:06:00 +02:00
Elle Mouton 5960253357 watchtower/blob: add taproot Commitment type 2024-01-18 18:05:58 +02:00
Elle Mouton d84a98e3db watchtower/blob: add taprootJusticeKit implementation 2024-01-18 17:59:14 +02:00
Elle Mouton 0ec3f31780 watchtower/blob: add justiceKitPacketV1 encoding
In preparation for the new Taproot commitment type being supported by
watchtowers, we add a new justice packet type.
2024-01-18 17:58:13 +02:00
Elle Mouton 20a107600f watchtower: add new TaprootCommit Type and flag
This commit adds a new FlagTaprootChannel Flag which is then used to
construct a new blob Type: TypeAltruistTaprootCommit. New watchtower
feature bits are also added (4/5).
2024-01-18 17:56:49 +02:00
Elle Mouton fde982ad78 input: extract to_local script builders
Factor out the building of the delay and revoke scripts from
NewLocalCommitScriptTree so that they can be re-used later on.
2024-01-18 17:56:48 +02:00
Oliver Gugger ba4021cad9 Merge pull request #8388 from morehouse/fix_fuzz_payload
htlcswitch: update fuzzPayload for route blinding
2024-01-18 09:31:22 -06:00
Elle 08c18a338b Merge pull request #8275 from ProofOfKeags/chore/enforce-feature-bits
multi: make legacy feature bits compulsory
2024-01-18 17:26:09 +02:00
Oliver Gugger 4315e80e07 Merge pull request #8394 from cristiantroy/master
fix: typos [skip ci]
2024-01-18 08:52:10 -06:00
cristiantroy afa21953b5 internal/musig2: fix typos [skip ci] 2024-01-18 20:24:52 +08:00
cristiantroy f778f8b24e docs: fix typo in release-notes [skip ci] 2024-01-18 20:24:19 +08:00
Yong 54329a338e Merge pull request #8387 from ziggie1984/buildroute-use-lnd-default
buildroute use lnd default
2024-01-18 18:53:46 +08:00
Oliver Gugger dda5c4515e Merge pull request #8279 from Crypt-iQ/p2tr_weight
sweep: use p2tr output as change weight
2024-01-18 02:11:35 -06:00
Matt Morehouse 0f5ee7cc1e htlcswitch: update fuzzPayload for route blinding
Route blinding added some new fields to hop.Payload and route.Hop, which
we need to copy over to the fuzzPayload tests.
2024-01-16 11:12:11 -06:00
Yong 1bc1295fc0 Merge pull request #8350 from ziggie1984/rename-bumpclosefee
Minor improvements in the lncli api regarding channel closures.
2024-01-17 00:41:29 +08:00