Documentation
¶
Overview ¶
Package policy evaluates the set of conditions and requirements set by the node operator that a channel opening request must satisfy.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Channels ¶
type Channels struct {
Number *Range[uint32] `yaml:"number,omitempty"`
Capacity *StatRange[int64] `yaml:"capacity,omitempty"`
ZeroBaseFees *bool `yaml:"zero_base_fees,omitempty"`
BlockHeight *StatRange[uint32] `yaml:"block_height,omitempty"`
TimeLockDelta *StatRange[uint32] `yaml:"time_lock_delta,omitempty"`
MinHTLC *StatRange[int64] `yaml:"min_htlc,omitempty"`
MaxHTLC *StatRange[uint64] `yaml:"max_htlc,omitempty"`
LastUpdateDiff *StatRange[uint32] `yaml:"last_update_diff,omitempty"`
Together *Range[int] `yaml:"together,omitempty"`
IncomingFeeRates *StatRange[int64] `yaml:"incoming_fee_rates,omitempty"`
OutgoingFeeRates *StatRange[int64] `yaml:"outgoing_fee_rates,omitempty"`
IncomingBaseFees *StatRange[int64] `yaml:"incoming_base_fees,omitempty"`
OutgoingBaseFees *StatRange[int64] `yaml:"outgoing_base_fees,omitempty"`
IncomingDisabled *StatRange[float64] `yaml:"incoming_disabled,omitempty"`
OutgoingDisabled *StatRange[float64] `yaml:"outgoing_disabled,omitempty"`
}
Channels represents a set of requirements that the initiator's node channels must satisfy.
type Conditions ¶
type Conditions struct {
IsPrivate *bool `yaml:"is_private,omitempty"`
WantsZeroConf *bool `yaml:"wants_zero_conf,omitempty"`
Is *[]string `yaml:"is,omitempty"`
IsNot *[]string `yaml:"is_not,omitempty"`
Request *Request `yaml:"request,omitempty"`
Node *Node `yaml:"node,omitempty"`
}
Conditions represents a set of requirements that must be met to apply a policy.
func (*Conditions) Match ¶
func (c *Conditions) Match( req *lnrpc.ChannelAcceptRequest, node *lnrpc.GetInfoResponse, peer *lnrpc.NodeInfo, ) bool
Match returns true if all the conditions Match.
type Node ¶
type Node struct {
Age *Range[uint32] `yaml:"age,omitempty"`
Capacity *Range[int64] `yaml:"capacity,omitempty"`
Hybrid *bool `yaml:"hybrid,omitempty"`
FeatureFlags *[]lnrpc.FeatureBit `yaml:"feature_flags,omitempty"`
Channels *Channels `yaml:"channels,omitempty"`
}
Node represents a set of requirements the node requesting to open a channel must satisfy.
type Number ¶
type Number interface {
constraints.Integer | constraints.Float
}
Number is an integer or float.
type Operation ¶
type Operation string
Operation is a mathematical operation applied to a set of values.
const ( // Middle value in a list ordered from smallest to largest. Median Operation = "median" // Average of a list of numbers. Mean Operation = "mean" // Most frequently occurring value on a list. Mode Operation = "mode" // Difference between the biggest and the smallest number. RangeOp Operation = "range" )
Operations to measure the central tendency of a data set.
type Policy ¶
type Policy struct {
Conditions *Conditions `yaml:"conditions,omitempty"`
Request *Request `yaml:"request,omitempty"`
Node *Node `yaml:"node,omitempty"`
AllowList *[]string `yaml:"allow_list,omitempty"`
BlockList *[]string `yaml:"block_list,omitempty"`
ZeroConfList *[]string `yaml:"zero_conf_list,omitempty"`
RejectAll *bool `yaml:"reject_all,omitempty"`
RejectPrivateChannels *bool `yaml:"reject_private_channels,omitempty"`
AcceptZeroConfChannels *bool `yaml:"accept_zero_conf_channels,omitempty"`
MinAcceptDepth *uint32 `yaml:"min_accept_depth,omitempty"`
}
Policy represents a set of requirements that a channel opening request must satisfy. They are enforced only if the conditions are met or do not exist.
func (*Policy) Evaluate ¶
func (p *Policy) Evaluate( req *lnrpc.ChannelAcceptRequest, resp *lnrpc.ChannelAcceptResponse, node *lnrpc.GetInfoResponse, peer *lnrpc.NodeInfo, ) error
Evaluate set of policies.
type Range ¶
type Range[T Number] struct { Min *T `yaml:"min,omitempty"` Max *T `yaml:"max,omitempty"` }
Range represents the limits of a series.
type Request ¶
type Request struct {
ChannelCapacity *Range[uint64] `yaml:"channel_capacity,omitempty"`
ChannelReserve *Range[uint64] `yaml:"channel_reserve,omitempty"`
CSVDelay *Range[uint32] `yaml:"csv_delay,omitempty"`
PushAmount *Range[uint64] `yaml:"push_amount,omitempty"`
MaxAcceptedHTLCs *Range[uint32] `yaml:"max_accepted_htlcs,omitempty"`
MinHTLC *Range[uint64] `yaml:"min_htlc,omitempty"`
MaxValueInFlight *Range[uint64] `yaml:"max_value_in_flight,omitempty"`
DustLimit *Range[uint64] `yaml:"dust_limit,omitempty"`
CommitmentTypes *[]lnrpc.CommitmentType `yaml:"commitment_types,omitempty"`
}
Request represents the desired values in a channel request.
type StatRange ¶
type StatRange[T Number] struct { Min *T `yaml:"min,omitempty"` Max *T `yaml:"max,omitempty"` Operation Operation `yaml:"operation,omitempty"` }
StatRange is like a range but received multiple values and applies an operation to them.