Documentation ¶
Index ¶
Constants ¶
const Subsystem = "B12-RTE"
Subsystem defines the logging code for this subsystem.
Variables ¶
var ( // ErrNoChannels is returned when we don't have any open channels, so // won't be reachable by onion message. ErrNoChannels = errors.New("can't create blinded route with no " + "channels") // ErrNoPeerChannels is returned when a peer does not have any public // channels, so it can't be used to relay onion messages. ErrNoPeerChannels = errors.New("peer has no channels") // ErrNoNodeInfo is returned when we don't have node information // available for a peer (graph sync is imperfect). ErrNoNodeInfo = errors.New("no node information available") // ErrFeatureMismatch is returned when a peer doesn't have the feautres // we need for onion relay. ErrFeatureMismatch = errors.New("insufficient node features") // ErrNoRelayingPeers is returned when we have no peers that are // eligible for inclusion in a route with the feature set we require. ErrNoRelayingPeers = errors.New("no relaying peers") // ErrNoPath is returned when a request for a blinded route doesn't // have sufficient hops. ErrNoPath = errors.New("at least one hop required in route request") // ErrSessionKeyRequired is returned when a session key is missing from // a routes request. ErrSessionKeyRequired = errors.New("session key required") // ErrBlindingKeyRequired is returned when a blinding key is missing // from a routes request. ErrBlindingKeyRequired = errors.New("blinding key required") // ErrNoIntroductionNode is returned when our introduction node is not // the final hop in a path provided for a send to a blinded route. ErrNoIntroductionNode = errors.New("introduction node should be " + "final hop when sending to a blinded path") )
Functions ¶
func DisableLog ¶
func DisableLog()
DisableLog disables all library log output. Logging output is disabled by default until UseLogger is called.
Types ¶
type BlindedRouteGenerator ¶
type BlindedRouteGenerator struct {
// contains filtered or unexported fields
}
BlindedRouteGenerator produces blinded routes.
func NewBlindedRouteGenerator ¶
func NewBlindedRouteGenerator(lnd Lnd, pubkey *btcec.PublicKey) *BlindedRouteGenerator
NewBlindedRouteGenerator creates a blinded route generator.
func (*BlindedRouteGenerator) ReplyPath ¶
func (b *BlindedRouteGenerator) ReplyPath(ctx context.Context, features []lndwire.FeatureBit) (*sphinx.BlindedPath, error)
ReplyPath produces a blinded route to our node with the set of features requested.
type BlindedRouteRequest ¶
type BlindedRouteRequest struct {
// contains filtered or unexported fields
}
BlindedRouteRequest contains a request to produce a blinded route.
func NewBlindedRouteRequest ¶
func NewBlindedRouteRequest(sessionKey, blindingKey *btcec.PrivateKey, hops []*btcec.PublicKey, replyPath, blindedDest *lnwire.ReplyPath, finalPayloads []*lnwire.FinalHopPayload) *BlindedRouteRequest
NewBlindedRouteRequest produces a request to create a blinded path.
type BlindedRouteResponse ¶
type BlindedRouteResponse struct { // OnionMessage is the onion message to be sent on the wire. OnionMessage *lnwire.OnionMessage // FirstNode is the unblinded public key of the node that the onion // message should be sent to. FirstNode *btcec.PublicKey }
BlindedRouteRequest contains the output of a request for a blinded route.
func CreateBlindedRoute ¶
func CreateBlindedRoute(req *BlindedRouteRequest) (*BlindedRouteResponse, error)
CreateBlindedRoute creates a blinded route from the request provided.
type Generator ¶
type Generator interface { // ReplyPath produces a blinded route to our node with the set of // features requested. ReplyPath(ctx context.Context, features []lndwire.FeatureBit) (*sphinx.BlindedPath, error) }
Generator is an interface implemented by blinded route producers.
type Lnd ¶
type Lnd interface { // ListChannels lists our current set of channels. ListChannels(ctx context.Context, activeOnly, publicOnly bool) ([]lndclient.ChannelInfo, error) // GetNodeInfo looks up a node in the public ln graph. GetNodeInfo(ctx context.Context, pubkey route.Vertex, includeChannels bool) (*lndclient.NodeInfo, error) }
Lnd describes the lnd dependencies required to find a route.