multi: add new ChannelCloseConfs param, thread thru as needed
In this commit, we add a new param that'll allow us to scale up the number of confirmations before we act on a new close. We'll use this later to improve the current on chain handling logic.
This commit is contained in:
1 parent
622fa4476f
commit
c0f48d23b4
4 files changed
+22
No files matched your search
@@ -234,6 +234,12 @@ type ChainArbitratorConfig struct {
|
|||||||
// AuxCloser is an optional interface that can be used to finalize
|
// AuxCloser is an optional interface that can be used to finalize
|
||||||
// cooperative channel closes.
|
// cooperative channel closes.
|
||||||
AuxCloser fn.Option[AuxChanCloser]
|
AuxCloser fn.Option[AuxChanCloser]
|
||||||
|
|
||||||
|
// ChannelCloseConfs is an optional override for the number of
|
||||||
|
// confirmations required for channel closes. When set, this overrides
|
||||||
|
// the normal capacity-based scaling. This is only available in
|
||||||
|
// dev/integration builds for testing purposes.
|
||||||
|
ChannelCloseConfs fn.Option[uint32]
|
||||||
}
|
}
|
||||||
|
|
||||||
// ChainArbitrator is a sub-system that oversees the on-chain resolution of all
|
// ChainArbitrator is a sub-system that oversees the on-chain resolution of all
|
||||||
@@ -1143,6 +1149,7 @@ func (c *ChainArbitrator) WatchNewChannel(newChan *channeldb.OpenChannel) error
|
|||||||
auxLeafStore: c.cfg.AuxLeafStore,
|
auxLeafStore: c.cfg.AuxLeafStore,
|
||||||
auxResolver: c.cfg.AuxResolver,
|
auxResolver: c.cfg.AuxResolver,
|
||||||
auxCloser: c.cfg.AuxCloser,
|
auxCloser: c.cfg.AuxCloser,
|
||||||
|
chanCloseConfs: c.cfg.ChannelCloseConfs,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -1321,6 +1328,7 @@ func (c *ChainArbitrator) loadOpenChannels() error {
|
|||||||
auxLeafStore: c.cfg.AuxLeafStore,
|
auxLeafStore: c.cfg.AuxLeafStore,
|
||||||
auxResolver: c.cfg.AuxResolver,
|
auxResolver: c.cfg.AuxResolver,
|
||||||
auxCloser: c.cfg.AuxCloser,
|
auxCloser: c.cfg.AuxCloser,
|
||||||
|
chanCloseConfs: c.cfg.ChannelCloseConfs,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -241,6 +241,12 @@ type chainWatcherConfig struct {
|
|||||||
|
|
||||||
// auxCloser is used to finalize cooperative closes.
|
// auxCloser is used to finalize cooperative closes.
|
||||||
auxCloser fn.Option[AuxChanCloser]
|
auxCloser fn.Option[AuxChanCloser]
|
||||||
|
|
||||||
|
// chanCloseConfs is an optional override for the number of
|
||||||
|
// confirmations required for channel closes. When set, this overrides
|
||||||
|
// the normal capacity-based scaling. This is only available in
|
||||||
|
// dev/integration builds for testing purposes.
|
||||||
|
chanCloseConfs fn.Option[uint32]
|
||||||
}
|
}
|
||||||
|
|
||||||
// chainWatcher is a system that's assigned to every active channel. The duty
|
// chainWatcher is a system that's assigned to every active channel. The duty
|
||||||
|
|||||||
@@ -372,6 +372,12 @@ type Config struct {
|
|||||||
// closure initiated by the remote peer.
|
// closure initiated by the remote peer.
|
||||||
CoopCloseTargetConfs uint32
|
CoopCloseTargetConfs uint32
|
||||||
|
|
||||||
|
// ChannelCloseConfs is an optional override for the number of
|
||||||
|
// confirmations required for channel closes. When set, this overrides
|
||||||
|
// the normal capacity-based scaling. This is only available in
|
||||||
|
// dev/integration builds for testing purposes.
|
||||||
|
ChannelCloseConfs fn.Option[uint32]
|
||||||
|
|
||||||
// ServerPubKey is the serialized, compressed public key of our lnd node.
|
// ServerPubKey is the serialized, compressed public key of our lnd node.
|
||||||
// It is used to determine which policy (channel edge) to pass to the
|
// It is used to determine which policy (channel edge) to pass to the
|
||||||
// ChannelLink.
|
// ChannelLink.
|
||||||
|
|||||||
@@ -1369,6 +1369,7 @@ func newServer(ctx context.Context, cfg *Config, listenAddrs []net.Addr,
|
|||||||
return c
|
return c
|
||||||
},
|
},
|
||||||
)(implCfg.AuxChanCloser),
|
)(implCfg.AuxChanCloser),
|
||||||
|
ChannelCloseConfs: s.cfg.Dev.ChannelCloseConfs(),
|
||||||
}, dbs.ChanStateDB)
|
}, dbs.ChanStateDB)
|
||||||
|
|
||||||
// Select the configuration and funding parameters for Bitcoin.
|
// Select the configuration and funding parameters for Bitcoin.
|
||||||
@@ -4413,6 +4414,7 @@ func (s *server) peerConnected(conn net.Conn, connReq *connmgr.ConnReq,
|
|||||||
MaxOutgoingCltvExpiry: s.cfg.MaxOutgoingCltvExpiry,
|
MaxOutgoingCltvExpiry: s.cfg.MaxOutgoingCltvExpiry,
|
||||||
MaxChannelFeeAllocation: s.cfg.MaxChannelFeeAllocation,
|
MaxChannelFeeAllocation: s.cfg.MaxChannelFeeAllocation,
|
||||||
CoopCloseTargetConfs: s.cfg.CoopCloseTargetConfs,
|
CoopCloseTargetConfs: s.cfg.CoopCloseTargetConfs,
|
||||||
|
ChannelCloseConfs: s.cfg.Dev.ChannelCloseConfs(),
|
||||||
MaxAnchorsCommitFeeRate: chainfee.SatPerKVByte(
|
MaxAnchorsCommitFeeRate: chainfee.SatPerKVByte(
|
||||||
s.cfg.MaxCommitFeeRateAnchors * 1000).FeePerKWeight(),
|
s.cfg.MaxCommitFeeRateAnchors * 1000).FeePerKWeight(),
|
||||||
ChannelCommitInterval: s.cfg.ChannelCommitInterval,
|
ChannelCommitInterval: s.cfg.ChannelCommitInterval,
|
||||||
|
|||||||
Reference in new issue
Block a user