Skip to content

Commit 074a71f

Browse files
t-bastniftynei
authored andcommitted
Add grace period for older channel parameters
When a node creates a new `channel_update` to change its channel parameters, it will take some time to propagate through the network and payers may use older parameters. It is recommended to keep accepting older parameters for a while to improve payment latency and reliability.
1 parent 2ecc091 commit 074a71f

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

07-routing-gossip.md

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,8 @@ The origin node:
491491
- MUST set `fee_proportional_millionths` to the amount (in millionths of a
492492
satoshi) it will charge per transferred satoshi.
493493
- SHOULD NOT create redundant `channel_update`s
494+
- If it creates a new `channel_update` with updated channel parameters:
495+
- SHOULD keep accepting the previous channel parameters for 10 minutes
494496

495497
The receiving node:
496498
- if the `short_channel_id` does NOT match a previous `channel_announcement`,
@@ -540,14 +542,14 @@ makes sense to have it be a UNIX timestamp (i.e. seconds since UTC
540542
1970-01-01). This cannot be a hard requirement, however, given the possible case
541543
of two `channel_update`s within a single second.
542544

543-
It is assumed that more than one `channel_update` message changing the channel
544-
parameters in the same second may be a DoS attempt, and therefore, the node responsible
545-
for signing such messages may be blacklisted. However, a node may send a same
546-
`channel_update` message with a different signature (changing the nonce in signature
547-
signing), and hence fields apart from signature are checked to see if the channel
548-
parameters have changed for the same timestamp. It is also important to note that
549-
ECDSA signatures are malleable. So, an intermediate node who received the `channel_update`
550-
message can rebroadcast it just by changing the `s` component of signature with `-s`.
545+
It is assumed that more than one `channel_update` message changing the channel
546+
parameters in the same second may be a DoS attempt, and therefore, the node responsible
547+
for signing such messages may be blacklisted. However, a node may send a same
548+
`channel_update` message with a different signature (changing the nonce in signature
549+
signing), and hence fields apart from signature are checked to see if the channel
550+
parameters have changed for the same timestamp. It is also important to note that
551+
ECDSA signatures are malleable. So, an intermediate node who received the `channel_update`
552+
message can rebroadcast it just by changing the `s` component of signature with `-s`.
551553
This should however not result in the blacklist of the `node_id` from where
552554
the message originated.
553555

@@ -565,6 +567,11 @@ the channel when the peer reestablishes contact. Because gossip
565567
messages are batched and replace previous ones, the result may be a
566568
single seemingly-redundant update.
567569

570+
When a node creates a new `channel_update` to change its channel parameters,
571+
it will take some time to propagate through the network and payers may use
572+
older parameters. It is recommended to keep accepting older parameters for
573+
at least 10 minutes to improve payment latency and reliability.
574+
568575
## Query Messages
569576

570577
Negotiating the `gossip_queries` option via `init` enables a number

0 commit comments

Comments
 (0)