Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
This commit updates Eclair's underlying Bitcoin library from version 0.47 to 0.48 and makes small code adjustments to match the new library's API. The changes touch how private keys are derived and how test data is converted. There is no d…
Dependency version bump of cryptographic Bitcoin libraryPrivate key derivation code modifiedTaproot/MuSig2 test vector code adjusted
This commit adds an experimental new Lightning channel type to Eclair called 'zero-fee commitments.' It is a large feature patch implementing a draft BOLT specification (PR 1228), not a fix for a known vulnerability. The change introduces …
Large feature addition (+1618/-276 across 42 files) touching consensus-sensitive transaction construction and signingNew experimental channel type disabled by default; requires explicit opt-in via eclair.confImplements draft BOLT specification (lightning/bolts#1228), not a finalized standard
This commit updates the PostgreSQL database driver used by the Eclair Lightning node software from version 42.7.8 to 42.7.11. The commit message says this fixes a vulnerability that could allow denial-of-service (DoS) attacks if a node con…
Dependency version bump for security fixVendor-disclosed potential DoS vector via untrusted database hostChecksum file updated for reproducible builds
This commit only adjusts a flaky unit test that checks transaction weight estimates. It widens the allowed tolerance for variable-length ECDSA signatures when two signatures are involved instead of one. There is no change to production cod…
This commit adds official Lightning channel splicing support to Eclair and replaces an experimental protocol. It includes backwards-compatibility shims for older Phoenix wallets, changes how reconnection messages request retransmission of …
Protocol state machine changes for interactive transaction signing and reconnection retransmissionBackwards-compatibility shim that multiplexes two protocol versions based on peer feature bitsTLV type-number collision handling between official and experimental splicing protocols
This commit changes how Eclair (a Bitcoin Lightning node) remembers its own closing signatures during a mutual channel close. Previously, the code re-generated signing nonces and re-signed closing transactions when the peer's signature arr…
MuSig2 nonce handling changed: local partial signatures are now stored and reused instead of regeneratedEarly signature validation added for peer's partial signature before final transaction aggregationRemoved CloserNonces helper that generated three random nonces per closing attempt
This commit updates the Eclair Lightning node software to support a new, backwards-compatible draft of the official Bitcoin Lightning 'splicing' protocol. It adds a funding transaction identifier to commitment signatures and introduces a '…
Adds disambiguation of commitment signatures by funding transaction ID, reducing risk of applying a signature to the wrong commitment during multi-funding splicingIntroduces a new odd-length message (start_batch) and odd TLV (FundingTx), which unknown peers should ignore per Lightning spec conventionsMaintains legacy experimental batch TLV for backwards compatibility
This commit adds a new testing-only module that uses a fuzzing tool called Jazzer to automatically throw random data at Eclair's Lightning message parsers. It does not change any production code, network behavior, or security logic. It is …
New test-only fuzzing module addedNo production code changesNo network-facing or cryptographic logic modified
This commit updates Eclair to use a newer version of its underlying Bitcoin library (bitcoin-lib 0.47). Most changes are mechanical: replacing local helper functions with new library-provided equivalents for encoding signatures and signing…
Dependency version bump for bitcoin-lib and secp256k1-kmpRefactor of ECDSA signature encoding/signing code pathsRemoval of local DER conversion helpers in favor of library-provided methods
This commit is a refactoring and observability improvement for the Eclair Lightning node. It adds start/end timestamps to payment events and failures, renames some timestamp fields for consistency, and updates how payment hashes are derive…
Refactoring of payment event data model with new timestamp fieldsPayment hash now derived from preimage instead of passed separatelyRemoval of WaitingToRelayPayment from JSON type hints
This commit updates Eclair to use a newer version of its underlying Bitcoin library (bitcoin-lib 0.46). The main change is a code refactor in how Taproot addresses and scripts are created: instead of passing an optional script tree, caller…
Dependency version bump (bitcoin-lib 0.45.1 -> 0.46)Taproot script construction API refactorNo explicit security claim in commit message or diff
This is a routine dependency update for Eclair, a Bitcoin Lightning node. It bumps the internal 'bitcoin-lib' library from version 0.45 to 0.45.1 and its related 'bitcoin-kmp-jvm' component from 0.28.0 to 0.28.1. The commit message says th…
Dependency version bump onlyNo source code changes in commitNo security-related wording in commit message or diff
This commit adjusts how Eclair estimates the 'weight' (a measure of transaction size used to calculate Bitcoin mining fees) for funding inputs in Lightning channel transactions. It increases the assumed signature size from 72 to 73 bytes, …
Fee-estimation mismatch between implementations could cause interactive-tx negotiation failuresUnder-estimated weight could lead to insufficient fees if a 73-byte high-S signature is accepted by minersChange aligns with BOLT 3 recommendation and LDK behavior
This commit fixes a bug in Eclair, a Bitcoin Lightning Network node implementation. When a user tried to buy extra spending capacity (a 'liquidity purchase') and the remote peer backed out after the local node had already signed, Eclair ke…
Fixes a denial-of-service / availability issue where upstream HTLCs were held until near CLTV expiry after a peer-aborted liquidity purchaseAdds explicit handling for tx_abort after local signing in dual-funded opens and splicesIntroduces LiquidityPurchaseAborted event and matching cleanup in Peer
This commit is a small cleanup pull request titled 'Nits'. It fixes a typo in documentation, corrects a log message to show the right commitment format name, changes a debug log to info level for transaction signing, adds structured loggin…
This commit removes support for older Lightning channel types ('static_remotekey' and 'default' channels) from the Eclair node software. It is a deliberate feature-removal change announced in the previous release. The main risk is operatio…
Removal of legacy commitment format support reduces attack surface for fee-manipulation and transaction-malleability issues present in pre-anchor channels.Simplified fee tolerance removes the 'too low' feerate check, relying on anchor/taproot CPFP/RBF behavior.Explicit channel_type requirement prevents silent downgrade to weaker channel types.
This commit refactors how Eclair stores closed Lightning channels. Instead of keeping all closed channel data in the same table as active channels, it moves them to a dedicated table with only essential summary information. The main stated…
DoS mitigation: channels that never confirmed or had nothing at stake are no longer persisted in the databaseDatabase schema migration removes foreign key constraint on htlc_infosNew closed-channel data class stores only minimal, stringified fields to avoid future backwards-compatibility issues
This commit updates Eclair's underlying bitcoin-lib dependency from version 0.41 to 0.43.2 and adjusts Eclair's code to match the new library's API. The changes are mostly mechanical: switching how Musig2 nonces and Taproot script trees ar…
Dependency version bump of core cryptographic library (bitcoin-lib 0.41 -> 0.43.2, secp256k1-kmp 0.18.0 -> 0.19.0)Refactoring of MuSig2 nonce handling and Taproot script tree constructionRemoval of Kotlin interop conversions around cryptographic types
This commit fixes a bug in Eclair's dual-funded Lightning channel logic. When opening or splicing a channel using taproot (P2TR) inputs, each participant's wallet needs full details about every input in the transaction, not just its own. P…
Fixes a signing failure in taproot interactive dual-funding/splicingPSBT now includes all remote inputs, satisfying BIP-341 all-inputs signature commitmentPreviously tests hid the bug by sharing a single dummy wallet between both parties
This commit only adds a new test case to Eclair's invoice parsing tests. It checks that a specific Bitcoin Lightning invoice with a non-standard 'high-S' signature can still be decoded and that the sender's public key is recovered correctl…
Test-only change: no production code modifiedRelates to BOLT 11 signature malleability / high-S acceptanceReferences upstream BOLT specification change (bolts PR 1284)
Add previous commitments to ChannelFundingConfirmed event (#3303)
Event stream subscribers could use this field to find extra information about previous states that could have been pruned from the current commitments.
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
We add metrics for liquidity ads (purchased amount and mining fee refund).
We refactor the interactive-tx metrics to record them *after* tx validation, instead of *before*. We also remove the input/output count for the "shared" case, since it's always 0 or 1.
76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Lower-priorityAdd metrics on interactive-tx inputs and outputs (#3300)by pm47 · 113d8fba · May 6, 2026 · 2 filesMessage 73 · AdequateTriage 0Details
Commit message · pm47
Add metrics on interactive-tx inputs and outputs (#3300)
We track: - global input/output count by type and distribution of amounts - per-session input/output count by type
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Security candidateFix flaky DER signature weight test (#3299)by Bastien Teinturier · 0f5d4b89 · May 5, 2026 · 1 fileMessage 100 · StrongInformational 15Details
Commit message · Bastien Teinturier
Fix flaky DER signature weight test (#3299)
This test was flaky because for the funding output, we provide two signatures, which means that we need twice the slack for the variable DER encoding length.
100/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
Why it was queued
signing boundarysigning or wallet path
AI analysis · Informational 15/100
This commit only adjusts a flaky unit test that checks transaction weight estimates. It widens the allowed tolerance for variable-length ECDSA signatures when two signatures are involved instead of one. There is no change to production code, no security fix, and no vulnerability.
AI review queuedUse official feature bit for `option_simple_taproot` (#3144)by Bastien Teinturier · 872cb663 · May 5, 2026 · 14 filesMessage 81 · StrongTriage 19Details
Commit message · Bastien Teinturier
Use official feature bit for `option_simple_taproot` (#3144)
Use the official feature bit and name for taproot channels and the corresponding channel types. Activate taproot channels support by default (without support for announcing such channels yet).
See https://github.com/lightning/bolts/pull/995
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathparser or protocol pathsecond-pass: security-sensitive path
Security candidateAdd support for the official splicing protocol (#2887)by Bastien Teinturier · 68b0096a · Apr 30, 2026 · 24 filesMessage 93 · StrongLow 35Details
Commit message · Bastien Teinturier
Add support for the official splicing protocol (#2887)
We replace our experimental version of `splice_init`, `splice_ack` and `splice_locked` by their official version. If our peer is using the experimental feature bit, we convert our outgoing messages to use the experimental encoding and incoming messages to the official messages.
We also change the TLV fields added to `tx_add_input`, `tx_signatures` and `splice_locked` to match the spec version. We always write both the official and experimental TLV to updated nodes (because the experimental one is odd and will be ignored) but we drop the official TLV if our peer is using the experimental feature, because it won't understand the even TLV field.
We do the same thing for the `commit_sig` TLV. For peers who support the official splicing version, we insert the `start_batch` message before the batch of `commit_sig` messages.
This guarantees backwards-compatibility with peers who only support the experimental feature.
We introduce a `retransmit_flags` field to `my_current_funding_locked` and `next_funding` to ask our peer to retransmit `commitment_signed` or `announcement_signatures` if we're expecting them. With this change, we don't need to retransmit `splice_locked` on reconnection anymore to trigger the exchange of `announcement_signatures`. We don't need to retransmit it to let our peer know that we've seen enough confirmations for the splice either, since `my_current_funding_locked` implies that.
This allows us to completely remove retransmission of `splice_locked` on reconnection, and also get rid of the `your_last_funding_locked` TLV, which greatly simplifies the reconnection logic. We do keep them for backwards-compatibility with existing Phoenix users though, but we'll be able to clean it up once they have updated.
Note that this works with taproot channels since we will simply provide nonces in `channel_reestablish` when we need our peer to send announcement signatures (not supported yet since taproot channels are never announced).
We rollback using the `next_commitment_number` to let our peer know that we haven't received their `commit_sig` and instead use the retransmit flags added to the `next_funding` TLV, unless our peer is using the legacy splicing protocol.
93/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
Why it was queued
signing boundarysigning or wallet pathauthentication pathparser or protocol path
AI analysis · Low 35/100
This commit adds official Lightning channel splicing support to Eclair and replaces an experimental protocol. It includes backwards-compatibility shims for older Phoenix wallets, changes how reconnection messages request retransmission of signatures, and renumbers some protocol feature bits. The changes are broad and touch consensus-critical wire protocol and channel state logic, so bugs could affect channel safety, but the commit itself is a feature implementation rather than a clear security fix.
More aggressive peer scorer idle channels management (#3295)
We previously lowered fees from idle channels only if our latest update was from more than 24 hours ago, and closed them if our latest update was more than 5 days ago and using our minimal fees.
The issue is that our channel update may have been refreshed without changing the relay fees, for example if our peer disconnected. We don't track when our relay fees reached the minimum amount, so we may have a recent channel update even though we reached our minimum relay fees weeks ago.
We use smaller durations for those thresholds to see if that helps reclaim liquidity more aggressively.
We also disable old peers revival by default. This feature is useful when feerates have been high for a while and funding was thus put on hold, but when feerates are frequently below our feerate threshold, this is wasting liquidity. It should be enabled after a high-fee period.
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Security candidateStore our closing_complete in the simple close session (#3289)by Fabrice Drouin · da7cd962 · Apr 21, 2026 · 4 filesMessage 96 · StrongLow 32Details
Commit message · Fabrice Drouin
Store our closing_complete in the simple close session (#3289)
In the simple close session, which is never persisted, we just need to remember our closing_complete and the partial signatures it contains, instead of keeping our musig2 nonces and generating our partial signatures a second time to build the final closing tx when we receive our peer's partial signatures. We also check our peer's partial signature and fail early if they're not valid, instead of building a fully sign closing tx and then verify that it is correct.
96/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
Why it was queued
signing boundarynonce handlingsigning or wallet path
AI analysis · Low 32/100
This commit changes how Eclair (a Bitcoin Lightning node) remembers its own closing signatures during a mutual channel close. Previously, the code re-generated signing nonces and re-signed closing transactions when the peer's signature arrived. Now it stores the original closing message and reuses its signatures. It also adds an early check that the peer's partial signature is valid before trying to build a final signed transaction. The change is a defensive correctness improvement rather than a clear fix for an active exploit.
We connect to bitcoind over ZMQ right after spawning all actors in the system, which can consume a lot of our available sockets/bandwidth. We increase the default timeout from 5 seconds to 30 seconds.
76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Add threshold for disabling `from_future_htlc` (#3293)
When funding a transaction using `from_future_htlc`, we are taking the risk that the remote node doesn't fulfill the corresponding HTLCs. If we detect that too many peers fail such HTLCs, this may indicate a bug on the wallet side, so we automatically disable `from_future_htlc` to limit our exposure.
We also ensure that nodes that already had one suspicious payment are blacklisted for other payments. This issue can happen when wallet users use multiple devices in unsupported scenarios.
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
We add release notes about the peer scorer for node operators who like living on the bleeding edge. We also remove the workaround for the lack of DB data on restart.
We also add metrics to track rolling profit and payment volume.
76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
There's a race condition between Bob and Carol's router states, which aren't updated exactly at the same time. Retrying the condition should fix this race condition.
86/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Don't load network graph twice on start-up (#3290)
We previously read the whole network graph from DB (channels and nodes) twice: once before starting any actor to verify that the DB has not been corrupted, and then again when initializing the `Router` actor.
We now keep the result of the first DB read instead of throwing it away and provide it as argument to the `Router`, which doesn't need to read from the DB on start-up anymore.
91/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Don't try reconnecting automatically to mobile wallets (#3287)
It's useless as they will always have a different IP address, and they will be offline most of the time anyway. They will initiate connections either when the app is started or when they receive a push notification so we never need to initiate connections from the server side.
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Lower-priorityAdd delays when reading past payment events for stats (#3288)by Bastien Teinturier · 1a88ebe1 · Apr 15, 2026 · 7 filesMessage 81 · StrongTriage 0Details
Commit message · Bastien Teinturier
Add delays when reading past payment events for stats (#3288)
When we restart, we load past payments events into the peer stats tracker to inform our scoring algorithm. We read them in chunks, but it can be quite expensive in terms of bandwidth. Since this is low priority and there are a lot of DB reads already happening when starting up, we add a large initial delay and a small-ish chunk delay.
With the default values, all past events should be loaded ~20 minutes after starting up, and the first run of the scoring algorithm happens 1 hour after starting up, so this should work well.
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
It fixes compatibility issues with alpine (which uses musl and not glibc), and is easier to maintain. Note that this makes the image about 190 Mb bigger.
76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
AI review queuedAdd fuzz tests for onion, route blinding and lightning message codecs (#3282)by Nishant Bansal · 0778eafa · Apr 13, 2026 · 4 filesMessage 91 · StrongTriage 12Details
Commit message · Nishant Bansal
Add fuzz tests for onion, route blinding and lightning message codecs (#3282)
- Expand LightningMessageCodecs fuzz tests to cover all message types - Add fuzz tests for payment and message onion payload codecs - Add fuzz tests for route blinding codecs - Add fuzz tests for onion failure message codecs
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
fuzzing or regression evidenceparser or protocol pathsecond-pass: security-sensitive path
If the test runs too quickly and the message is processed in less than 1 millisecond, there is a race condition since reading from the database excludes the upper timestamp bound (`timestamp < now`).
We also remove our usage of the `BETWEEN` keyword for postgres. The `BETWEEN` keyword is inclusive of both bounds, while we want to exclude the upper bound to allow pagination.
86/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
second-pass: broader security terminology
Lower-priorityAdd fee field to `findroute` full format response (#3283)by rorp · 9314fe99 · Apr 8, 2026 · 4 filesMessage 73 · AdequateTriage 0Details
Commit message · rorp
Add fee field to `findroute` full format response (#3283)
This can be helpful when analysis routes find by path-finding.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
``` A node receiving a ping message: - if num_pong_bytes is less than 65532: - MUST respond by sending a pong message, with byteslen equal to num_pong_bytes. - otherwise (num_pong_bytes is not less than 65532): - MUST ignore the ping. ```
These reply-less pings are used to insert cover traffic to thwart network-level traffic analysis. We wanted to allow them in #3278 but we missed this ping flood protection that needed to be updated.
We also had an off-by-one in the maximum pong length that is now fixed.
88/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
Why it was queued
cryptography-sensitive path
Security candidateAdd backwards-compatible parts of the official splicing protocol (#3261)by Bastien Teinturier · 129df369 · Apr 3, 2026 · 12 filesMessage 86 · StrongLow 35Details
Commit message · Bastien Teinturier
Add backwards-compatible parts of the official splicing protocol (#3261)
* Add `funding_txid` to `commit_sig`
In https://github.com/lightning/bolts/pull/1160 we add a TLV field to `commit_sig` messages to let the receiver know to which `funding_txid` this signature applies. This is more resilient than relying on the order of the `commit_sig` messages in the batch. This is an odd TLV, so we can start writing it right now without creating compatibility issues.
We also slightly refactor existing code to make it easier to introduce a backwards-compat layer when migrating to the official splicing. We also increase the default number of RBF attempts allowed.
* Insert a `start_batch` message during splices
In https://github.com/lightning/bolts/pull/1160, we introduce a message to let our peer know how many `commit_sig` messages they will receive and treat them as a batch. This replaces our previous version that did something similar, but by adding a batch TLV in every `commit_sig` message we send.
We currently do both: we keep inserting the experimental batch TLV, and we start by sending a `start_batch` message (with the same information). Since it is an odd message (127), it should be safely ignored if our peer doesn't understand it.
86/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
Why it was queued
signing boundaryparser or protocol path
AI analysis · Low 35/100
This commit updates the Eclair Lightning node software to support a new, backwards-compatible draft of the official Bitcoin Lightning 'splicing' protocol. It adds a funding transaction identifier to commitment signatures and introduces a 'start_batch' message so peers know when multiple signatures belong together. It also keeps the older experimental batching mechanism for compatibility with older Phoenix wallets. The changes are primarily a protocol upgrade and compatibility shim, not a clear security fix, though they reduce ambiguity about which signature applies to which funding transaction during splices.
Lower-priorityFollow BOLT1 handling for "no reply" pings: ignore, don't warn. (#3278)by Rusty Russell · 6336d80c · Apr 2, 2026 · 2 filesMessage 81 · StrongTriage 0Details
Commit message · Rusty Russell
Follow BOLT1 handling for "no reply" pings: ignore, don't warn. (#3278)
These "oversize ping replies" are how we ask for no replies, such as when we're sending dummy traffic. From the rationale:
This allows a convenient cutoff for `num_pong_bytes` to indicate that no reply should be sent.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Co-authored-by: t-bast <bastien@acinq.fr>
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Add a fuzzing module based on Jazzer to allow fuzzing parts of eclair. This commit includes fuzz tests for codecs to be used as examples. It is a separate module (minimal interaction with the other modules). We include helper scripts to run many fuzz tests in parallel or generate reports.
76/100 · AdequateMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
fuzzing or regression evidencecryptography-sensitive pathparser or protocol path
AI analysis · Informational 15/100
This commit adds a new testing-only module that uses a fuzzing tool called Jazzer to automatically throw random data at Eclair's Lightning message parsers. It does not change any production code, network behavior, or security logic. It is purely a defensive testing improvement.
Lower-priorityInitialize peer stats with past events (#3272)by Bastien Teinturier · a05f5830 · Mar 31, 2026 · 3 filesMessage 88 · StrongTriage 0Details
Commit message · Bastien Teinturier
Initialize peer stats with past events (#3272)
We initialize peer statistics by reading past events from the `AuditDb`. We read events in chunks to avoid overloading the DB or the RAM. We only return peer statistics to callers once we've finished reading past data from the DB.
Note that on-chain statistics need to be computed whenever statistics are requested, because they require merging data from two distincts events (transaction published and transaction confirmed), which requires keeping state between those events and thus requires the DB (because the node may restart after publishing a transaction and before it confirms).
88/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference