htlcswitch: thread clock from switch to mailbox
This commit is contained in:
5 files changed
+55
-4
No files matched your search
@@ -15,6 +15,7 @@ import (
|
||||
"github.com/lightningnetwork/lnd/chainntnfs"
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/channeldb/kvdb"
|
||||
"github.com/lightningnetwork/lnd/clock"
|
||||
"github.com/lightningnetwork/lnd/contractcourt"
|
||||
"github.com/lightningnetwork/lnd/htlcswitch/hop"
|
||||
"github.com/lightningnetwork/lnd/lntypes"
|
||||
@@ -36,6 +37,10 @@ const (
|
||||
// DefaultAckInterval is the duration between attempts to ack any settle
|
||||
// fails in a forwarding package.
|
||||
DefaultAckInterval = 15 * time.Second
|
||||
|
||||
// DefaultHTLCExpiry is the duration after which Adds will be cancelled
|
||||
// if they could not get added to an outgoing commitment.
|
||||
DefaultHTLCExpiry = time.Minute
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -174,6 +179,15 @@ type Config struct {
|
||||
// RejectHTLC is a flag that instructs the htlcswitch to reject any
|
||||
// HTLCs that are not from the source hop.
|
||||
RejectHTLC bool
|
||||
|
||||
// Clock is a time source for the switch.
|
||||
Clock clock.Clock
|
||||
|
||||
// HTLCExpiry is the interval after which Adds will be cancelled if they
|
||||
// have not been yet been delivered to a link. The computed deadline
|
||||
// will expiry this long after the Adds are added to a mailbox via
|
||||
// AddPacket.
|
||||
HTLCExpiry time.Duration
|
||||
}
|
||||
|
||||
// Switch is the central messaging bus for all incoming/outgoing HTLCs.
|
||||
@@ -301,6 +315,8 @@ func New(cfg Config, currentHeight uint32) (*Switch, error) {
|
||||
s.mailOrchestrator = newMailOrchestrator(&mailOrchConfig{
|
||||
fetchUpdate: s.cfg.FetchLastChannelUpdate,
|
||||
forwardPackets: s.ForwardPackets,
|
||||
clock: s.cfg.Clock,
|
||||
expiry: s.cfg.HTLCExpiry,
|
||||
})
|
||||
|
||||
return s, nil
|
||||
|
||||
Reference in new issue
Block a user