config: clamp channel-commit-interval to reasonable time

This commit is contained in:
eugene 2022-01-31 12:44:32 -05:00
parent e7505c3e6b
commit 9d8ff1fae5
No known key found for this signature in database
GPG Key ID: 118759E83439A9B1
2 changed files with 15 additions and 2 deletions

View File

@ -172,6 +172,10 @@ const (
// channel state update and signing a new commitment.
defaultChannelCommitInterval = 50 * time.Millisecond
// maxChannelCommitInterval is the maximum time the commit interval can
// be configured to.
maxChannelCommitInterval = time.Hour
// defaultChannelCommitBatchSize is the default maximum number of
// channel state updates that is accumulated before signing a new
// commitment.
@ -1562,6 +1566,14 @@ func ValidateConfig(cfg Config, interceptor signal.Interceptor, fileParser,
maxRemoteHtlcs)
}
// Clamp the ChannelCommitInterval so that commitment updates can still
// happen in a reasonable timeframe.
if cfg.ChannelCommitInterval > maxChannelCommitInterval {
return nil, mkErr("channel-commit-interval (%v) must be less "+
"than %v", cfg.ChannelCommitInterval,
maxChannelCommitInterval)
}
if err := cfg.Gossip.Parse(); err != nil {
return nil, mkErr("error parsing gossip syncer: %v", err)
}

View File

@ -293,8 +293,9 @@
; The maximum time that is allowed to pass between receiving a channel state
; update and signing the next commitment. Setting this to a longer duration
; allows for more efficient channel operations at the cost of latency.
; channel-commit-interval=50ms
; allows for more efficient channel operations at the cost of latency. This is
; capped at 1 hour. The default is 50 milliseconds.
; channel-commit-interval=1h
; The maximum number of channel state updates that is accumulated before signing
; a new commitment.