Merge pull request #4735 from carlaKC/2426-defaultmaxcsv

multi: add control over maximum acceptable local CSV delay
This commit is contained in:
Carla Kirk-Cohen authored and GitHub committed 2020-11-05 12:39:35 +02:00
commit a0ab96de5d
13 files changed
+1042 -778

No files matched your search

+14 -4
View File
@@ -91,6 +91,8 @@ var (
bobAddr, _ = net.ResolveTCPAddr("tcp", "10.0.0.2:9000")
aliceAddr, _ = net.ResolveTCPAddr("tcp", "10.0.0.3:9000")
defaultMaxLocalCsvDelay uint16 = 10000
)
// assertProperBalance asserts than the total value of the unspent outputs
@@ -447,7 +449,9 @@ func testDualFundingReservationWorkflow(miner *rpctest.Harness,
MaxAcceptedHtlcs: input.MaxHTLCNumber / 2,
CsvDelay: csvDelay,
}
err = aliceChanReservation.CommitConstraints(channelConstraints)
err = aliceChanReservation.CommitConstraints(
channelConstraints, defaultMaxLocalCsvDelay,
)
if err != nil {
t.Fatalf("unable to verify constraints: %v", err)
}
@@ -481,7 +485,9 @@ func testDualFundingReservationWorkflow(miner *rpctest.Harness,
if err != nil {
t.Fatalf("bob unable to init channel reservation: %v", err)
}
err = bobChanReservation.CommitConstraints(channelConstraints)
err = bobChanReservation.CommitConstraints(
channelConstraints, defaultMaxLocalCsvDelay,
)
if err != nil {
t.Fatalf("unable to verify constraints: %v", err)
}
@@ -893,7 +899,9 @@ func testSingleFunderReservationWorkflow(miner *rpctest.Harness,
MaxAcceptedHtlcs: input.MaxHTLCNumber / 2,
CsvDelay: csvDelay,
}
err = aliceChanReservation.CommitConstraints(channelConstraints)
err = aliceChanReservation.CommitConstraints(
channelConstraints, defaultMaxLocalCsvDelay,
)
if err != nil {
t.Fatalf("unable to verify constraints: %v", err)
}
@@ -934,7 +942,9 @@ func testSingleFunderReservationWorkflow(miner *rpctest.Harness,
if err != nil {
t.Fatalf("unable to create bob reservation: %v", err)
}
err = bobChanReservation.CommitConstraints(channelConstraints)
err = bobChanReservation.CommitConstraints(
channelConstraints, defaultMaxLocalCsvDelay,
)
if err != nil {
t.Fatalf("unable to verify constraints: %v", err)
}
+5 -6
View File
@@ -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