20 Commits
Author SHA1 Message Date
Boris Nagaev 593e8c01cf docs/release-notes: fix PR reference 2026-02-04 15:20:03 -05:00
Olaoluwa Osuntokun 56a7f45b99 graphdb: fix backwards-compat for channel edge feature deserialization
This commit fixes a backwards compatibility issue that prevented nodes
from upgrading from v0.19.x to v0.20.x.

In v0.19.x, channel edge features were serialized as raw feature bytes
without a length prefix. In v0.20.x (commit 2f2845dfc), the serialization
changed to use Features.Encode() which adds a 2-byte big-endian length
prefix before the feature bits. The deserialization code was updated to
use Features.Decode() which expects this length prefix.

When v0.20.x reads a database created by v0.19.x, Decode() tries to read
a length prefix that doesn't exist, causing an EOF error:

    unable to decode features: EOF

The fix adds a deserializeChanEdgeFeatures() helper that detects which
format is being read and decodes accordingly:

- New format (v0.20+): First 2 bytes encode the length of the remaining
  bytes. Detected when uint16(bytes[0:2]) == len(bytes)-2.

- Legacy format (pre-v0.20): Raw feature bits without length prefix.
  Uses DecodeBase256 with the known length.

The format detection is safe because in the legacy format, the first byte
always has at least one bit set (the serialization uses minimum bytes),
so the first two bytes can never encode a value equal to len-2.

Fixes #10528.
2026-02-03 09:12:04 -08:00
Olaoluwa Osuntokun 4aef4d00ac docs/release-notes: add release notes entry 2026-01-15 16:22:26 -08:00
Olaoluwa Osuntokun ab6ff825c6 Merge pull request #10470 from Roasbeef/discovery-panic-recovery
discovery: add panic recovery for gossip message processing
2026-01-12 17:10:35 -08:00
Olaoluwa Osuntokun 7da41cb367 docs/release-notes: add release notes 2026-01-12 17:10:17 -08:00
ziggieXXX 7bbf26c0e2 Merge pull request #10469 from Roasbeef/lnwire-timestamp-validation
lnwire: enforce non-zero timestamp in gossip messages
2026-01-12 13:57:12 +01:00
Olaoluwa Osuntokun cad1b957bf discovery: enforce non-zero timestamp in gossip messages
In this commit, we add validation for channel updates and node
announcements to ensure that we reject gossip messages with zero
timestamps at the discovery layer.

From BOLT 7:
  "MUST set timestamp to greater than 0, AND to greater than any
  previously-sent channel_update for this short_channel_id."

This validation is performed in the gossip handlers (handleNodeAnnouncement
and handleChanUpdate) rather than at the wire protocol level. This approach
ensures we can still decode messages from disk or embedded in onion errors
while rejecting invalid gossip from peers.

Remote peers sending zero-timestamp gossip will have their ban score
incremented.
2026-01-09 17:10:37 -08:00
Abdullahi Yunus 68f558c865 docs: add release note 2025-12-24 18:08:46 +01:00
ziggie e5b0704d73 docs: add release-notes for LND 20.1 2025-12-16 08:21:11 +01:00
Elle Mouton da9868b06d docs: update release notes 2025-12-11 18:13:47 +02:00
ziggie ac30443cc1 docs: add release-notes for LND 20.1 2025-12-10 09:49:57 +01:00
ziggie f289e4920e docs: add release-notes for LND 20.1 2025-12-09 11:51:47 +01:00
Elle bc670fab82 Merge pull request #10396 from ziggie1984/enhance-lsp-heuritic
Enhance Lsp Heuristic when probing a payment
2025-12-09 10:43:43 +02:00
Elle Mouton 3e0bc6b18c docs: add release note 2025-12-03 13:09:22 +02:00
ziggie 17b77b64a3 docs: add release-notes for LND 20.1 2025-12-02 20:38:55 +01:00
ziggie de0424eca8 docs: add release-notes for LND 20.1 2025-12-01 18:07:57 +01:00
ziggie 565633578f docs: add release-notes for LND 20.1 2025-11-28 09:22:20 +01:00
bitromortac b513efc5c1 docs: add release-notes for lnd v0.20.1 2025-11-26 16:58:45 +01:00
ziggie db3add1c9c docs: add release-notes for LND 20.1 2025-11-22 01:19:44 +01:00
ziggie 4f40d45d06 docs: add release-notes for 20.1 2025-11-19 16:09:33 +01:00