Merge pull request #4735 from carlaKC/2426-defaultmaxcsv
multi: add control over maximum acceptable local CSV delay
This commit is contained in:
13 files changed
+1042
-778
No files matched your search
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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