multi: add max local csv config option
To allow nodes more control over the amount of time that their funds will be locked up, we add a MaxLocalCSVDelay option which sets the maximum csv delay we will accept for all channels. We default to the existing constant of 10000, and set a sane minimum on this value so that clients cannot set unreasonably low maximum csv delays which will result in their node rejecting all channels.
This commit is contained in:
8 files changed
+235
-19
No files matched your search
@@ -383,15 +383,14 @@ func (r *ChannelReservation) SetNumConfsRequired(numConfs uint16) {
|
||||
// of satoshis that can be transferred in a single commitment. This function
|
||||
// will also attempt to verify the constraints for sanity, returning an error
|
||||
// if the parameters are seemed unsound.
|
||||
func (r *ChannelReservation) CommitConstraints(c *channeldb.ChannelConstraints) error {
|
||||
func (r *ChannelReservation) CommitConstraints(c *channeldb.ChannelConstraints,
|
||||
maxLocalCSVDelay uint16) error {
|
||||
r.Lock()
|
||||
defer r.Unlock()
|
||||
|
||||
// Fail if we consider csvDelay excessively large.
|
||||
// TODO(halseth): find a more scientific choice of value.
|
||||
const maxDelay = 10000
|
||||
if c.CsvDelay > maxDelay {
|
||||
return ErrCsvDelayTooLarge(c.CsvDelay, maxDelay)
|
||||
// Fail if the csv delay for our funds exceeds our maximum.
|
||||
if c.CsvDelay > maxLocalCSVDelay {
|
||||
return ErrCsvDelayTooLarge(c.CsvDelay, maxLocalCSVDelay)
|
||||
}
|
||||
|
||||
// The channel reserve should always be greater or equal to the dust
|
||||
|
||||
Reference in new issue
Block a user