AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Informational 20 Bitcoin

Rework channel lifecyle events (#3237)

Public commit record

What the developer wrote

Authored by Bastien Teinturier

88/100 · Strong
Rework channel lifecyle events (#3237)

We emit several events during the channel lifecycle, which have become
a bit of a mess over the years, especially with the addition of 0-conf,
splicing and on-the-fly funding.

We now use the following events:

- `ChannelCreated` once the funding transaction is created
- `ChannelFundingConfirmed` once the funding transaction is confirmed,
which is also emitted for splice transactions
- `ChannelReadyForPayments` once the channel is ready for payments,
after exchanging `channel_ready` for the channel creation or
`splice_locked` for splice transactions

The order between `ChannelFundingConfirmed` and `ChannelReadyForPayments`
depends on whether 0-conf is used or not.

We remove `ChannelOpened`, which was actually a subset of the existing
`ChannelReadyForPayments` event (which was added afterwards).

We add a few fields to existing channel events, which we don't yet
store in the DB to avoid modifying it, but will store later when we
modify the schema of the `AuditDb`.

We now store an entry in the `AuditDb` whenever a splice transaction
confirms, which allows tracking the full history of a channel's changes.
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
The short version

What changed, and why it matters

This commit is a routine internal refactoring of Eclair's channel-lifecycle event system. It renames and splits events (for example replacing 'channel-opened' with 'channel-confirmed' and 'channel-ready') so the software can correctly track normal channels, zero-confirmation channels, and splice transactions. It also records more details in the audit database, such as the funding transaction ID for each splice. There is no direct security vulnerability in the diff; it is a maintainability and observability improvement.

Recommended action

Treat as a normal feature/refactoring commit. Review release notes and update any plugins or external tools that subscribed to the old 'channel-opened' websocket event. No security patch or incident response is indicated.

Security signals we found

01

Event schema change only: no privilege escalation, memory safety, or consensus bug evident

02

Audit logging is expanded (more fields persisted), which improves traceability

03

One removed event (ChannelOpened) and two new events (ChannelFundingConfirmed, ChannelReadyForPayments) may require downstream consumers/plugins to update, but this is an API compatibility note, not a vulnerability

04

ClosingType now exposes closingTxId consistently; this is a data-quality improvement

Risk score

Why this scored 20/100

Our methodology →
Potential impact 2/30
Exploitability 0/25
Stealth signal 0/15
Affected reach 5/15
Confidence 9/10
Evidence quality 4/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.