Documentation ¶
Index ¶
Constants ¶
const ( // NetworkStatusOk represents node successfully pinged. NetworkStatusOk = "OK" // NetworkStatusMisconfigured means satellite could not ping // back node due to misconfiguration on the node host. NetworkStatusMisconfigured = "Misconfigured" // NetworkStatusDisabled means QUIC is disabled by config. NetworkStatusDisabled = "Disabled" // NetworkStatusRefreshing means QUIC check is in progress. NetworkStatusRefreshing = "Refreshing" )
Variables ¶
var ( // Error is the default error class for contact package. Error = errs.Class("contact") )
Functions ¶
func GetTags ¶ added in v1.115.1
func GetTags(ctx context.Context, config Config, identity *identity.FullIdentity) (*pb.SignedNodeTagSets, error)
GetTags returns with all the node tags including pre-defined and self-signed tags.
Types ¶
type Chore ¶
type Chore struct {
// contains filtered or unexported fields
}
Chore is the contact chore for nodes announcing themselves to their trusted satellites.
architecture: Chore
func (*Chore) Trigger ¶ added in v0.34.1
Trigger ensures that each cycle is done at least once. If the cycle is currently running it waits for the previous to complete and then runs.
func (*Chore) TriggerWait ¶ added in v0.25.0
TriggerWait ensures that each cycle is done at least once and waits for completion. If the cycle is currently running it waits for the previous to complete and then runs.
type Config ¶
type Config struct { ExternalAddress string `user:"true" help:"the public address of the node, useful for nodes behind NAT" default:""` // Chore config values Interval time.Duration `help:"how frequently the node contact chore should run" releaseDefault:"1h" devDefault:"30s"` Tags SignedTags `help:"protobuf serialized signed node tags in hex (base64) format"` SelfSignedTags []string `help:"coma separated key=value pairs, which will be self signed and used as tags"` }
Config contains configurable values for contact service.
type Endpoint ¶
type Endpoint struct { pb.DRPCContactUnimplementedServer // contains filtered or unexported fields }
Endpoint implements the contact service Endpoints.
architecture: Endpoint
func NewEndpoint ¶
func NewEndpoint(log *zap.Logger, trust trust.TrustedSatelliteSource, pingStats *PingStats) *Endpoint
NewEndpoint returns a new contact service endpoint.
func (*Endpoint) PingNode ¶
func (endpoint *Endpoint) PingNode(ctx context.Context, req *pb.ContactPingRequest) (_ *pb.ContactPingResponse, err error)
PingNode provides an easy way to verify a node is online and accepting requests.
type NodeInfo ¶ added in v1.6.1
type NodeInfo struct { ID storj.NodeID Address string Version pb.NodeVersion Capacity pb.NodeCapacity Operator pb.NodeOperator NoiseKeyAttestation *pb.NoiseKeyAttestation DebounceLimit int FastOpen bool }
NodeInfo contains information necessary for introducing storagenode to satellite.
type PingStats ¶
type PingStats struct {
// contains filtered or unexported fields
}
PingStats contains information regarding when the node was last pinged.
func (*PingStats) WhenLastPinged ¶
WhenLastPinged returns last time someone pinged this node.
type QUICStats ¶ added in v1.67.1
type QUICStats struct {
// contains filtered or unexported fields
}
QUICStats contains information regarding QUIC status of the node.
func NewQUICStats ¶ added in v1.67.1
NewQUICStats returns a new QUICStats.
func (*QUICStats) SetStatus ¶ added in v1.67.1
SetStatus sets the QUIC status during PingMe request.
func (*QUICStats) Status ¶ added in v1.67.1
Status returns the quic status gathered in a PingMe request.
func (*QUICStats) WhenLastPinged ¶ added in v1.67.1
WhenLastPinged returns last time someone pinged this node via QUIC.
type Service ¶ added in v0.22.0
type Service struct {
// contains filtered or unexported fields
}
Service is the contact service between storage nodes and satellites.
func NewService ¶ added in v0.22.0
func NewService(log *zap.Logger, dialer rpc.Dialer, self NodeInfo, trust trust.TrustedSatelliteSource, quicStats *QUICStats, tags *pb.SignedNodeTagSets) *Service
NewService creates a new contact service.
func (*Service) PingSatellites ¶ added in v0.34.6
PingSatellites attempts to ping all satellites in trusted list until backoff reaches maxInterval.
func (*Service) RequestPingMeQUIC ¶ added in v1.47.3
RequestPingMeQUIC sends pings request to satellite for a pingBack via QUIC.
func (*Service) UpdateSelf ¶ added in v0.22.0
func (service *Service) UpdateSelf(capacity *pb.NodeCapacity)
UpdateSelf updates the local node with the capacity.
type SignedTags ¶ added in v1.83.2
type SignedTags pb.SignedNodeTagSets
SignedTags represents base64 encoded signed tags.
func (*SignedTags) Set ¶ added in v1.83.2
func (u *SignedTags) Set(s string) error
Set implements flag.Value interface.
func (*SignedTags) String ¶ added in v1.83.2
func (u *SignedTags) String() string
String implements pflag.Value interface.
func (*SignedTags) Type ¶ added in v1.83.2
func (u *SignedTags) Type() string
Type implements pflag.Value interface.