From 9d8ff1fae56a28dfba3d2445cfcb25df166aecdd Mon Sep 17 00:00:00 2001 From: eugene Date: Mon, 31 Jan 2022 12:44:32 -0500 Subject: [PATCH] config: clamp channel-commit-interval to reasonable time --- config.go | 12 ++++++++++++ sample-lnd.conf | 5 +++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/config.go b/config.go index 49abb2056..0e77cee1f 100644 --- a/config.go +++ b/config.go @@ -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) } diff --git a/sample-lnd.conf b/sample-lnd.conf index 822d47784..714aaea7d 100644 --- a/sample-lnd.conf +++ b/sample-lnd.conf @@ -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.