tlnpeer: increase max_accepted_htlcs (5->30) - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 762ebb12b253dd53517dbd99b13efcc0e0168b05 DIR parent f397b315ac437d47e1583d3320c5c5058ba820f7 HTML Author: SomberNight <somber.night@protonmail.com> Date: Fri, 5 Mar 2021 16:12:01 +0100 lnpeer: increase max_accepted_htlcs (5->30) Counter-intuitively, the motivation is to be able to *send* more htlcs, for MPP trickery. We don't offer more htlcs than this limit, to be conservative with what we send, and to interoperate with clightning. defaults of other clients: eclair: 30 clightning: 30 lnd: 483 Diffstat: M electrum/lnchannel.py | 1 + M electrum/lnpeer.py | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) --- DIR diff --git a/electrum/lnchannel.py b/electrum/lnchannel.py t@@ -781,6 +781,7 @@ class Channel(AbstractChannel): if len(self.hm.htlcs_by_direction(htlc_receiver, direction=RECEIVED, ctn=ctn)) + 1 > chan_config.max_accepted_htlcs: raise PaymentFailure('Too many HTLCs already in channel') # however, c-lightning is a lot stricter, so extra checks: + # https://github.com/ElementsProject/lightning/blob/4dcd4ca1556b13b6964a10040ba1d5ef82de4788/channeld/full_channel.c#L581 if strict: max_concurrent_htlcs = min(self.config[htlc_proposer].max_accepted_htlcs, self.config[htlc_receiver].max_accepted_htlcs) DIR diff --git a/electrum/lnpeer.py b/electrum/lnpeer.py t@@ -529,6 +529,10 @@ class Peer(Logger): static_remotekey = None dust_limit_sat = bitcoin.DUST_LIMIT_DEFAULT_SAT_LEGACY reserve_sat = max(funding_sat // 100, dust_limit_sat) + # for comparison of defaults, see + # https://github.com/ACINQ/eclair/blob/afa378fbb73c265da44856b4ad0f2128a88ae6c6/eclair-core/src/main/resources/reference.conf#L66 + # https://github.com/ElementsProject/lightning/blob/0056dd75572a8857cff36fcbdb1a2295a1ac9253/lightningd/options.c#L657 + # https://github.com/lightningnetwork/lnd/blob/56b61078c5b2be007d318673a5f3b40c6346883a/config.go#L81 local_config = LocalConfig.from_seed( channel_seed=channel_seed, static_remotekey=static_remotekey, t@@ -536,7 +540,7 @@ class Peer(Logger): to_self_delay=self.network.config.get('lightning_to_self_delay', 7 * 144), dust_limit_sat=dust_limit_sat, max_htlc_value_in_flight_msat=funding_sat * 1000, - max_accepted_htlcs=5, + max_accepted_htlcs=30, initial_msat=initial_msat, reserve_sat=reserve_sat, funding_locked_received=False,