Documentation ¶
Index ¶
- Variables
- type Config
- type Endpoint
- func (endpoint *Endpoint) Delete(ctx context.Context, delete *pb.PieceDeleteRequest) (_ *pb.PieceDeleteResponse, err error)deprecated
- func (endpoint *Endpoint) DeletePieces(ctx context.Context, req *pb.DeletePiecesRequest) (_ *pb.DeletePiecesResponse, err error)
- func (endpoint *Endpoint) Download(stream pb.DRPCPiecestore_DownloadStream) (err error)
- func (endpoint *Endpoint) IsExpired(expiration time.Time) bool
- func (endpoint *Endpoint) RestoreTrash(ctx context.Context, restoreTrashReq *pb.RestoreTrashRequest) (res *pb.RestoreTrashResponse, err error)
- func (endpoint *Endpoint) Retain(ctx context.Context, retainReq *pb.RetainRequest) (res *pb.RetainResponse, err error)
- func (endpoint *Endpoint) TestLiveRequestCount() int32
- func (endpoint *Endpoint) Upload(stream pb.DRPCPiecestore_UploadStream) (err error)
- func (endpoint *Endpoint) VerifyOrder(ctx context.Context, limit *pb.OrderLimit, order *pb.Order, ...) (err error)
- func (endpoint *Endpoint) VerifyOrderLimitSignature(ctx context.Context, limit *pb.OrderLimit) (err error)
- func (endpoint *Endpoint) VerifyPieceHash(ctx context.Context, limit *pb.OrderLimit, hash *pb.PieceHash, ...) (err error)
- type OldConfig
Constants ¶
This section is empty.
Variables ¶
var ( // ErrVerifyNotAuthorized is returned when the one submitting the action is not authorized to perform that action. ErrVerifyNotAuthorized = errs.Class("not authorized") // ErrVerifyUntrusted is returned when action is not trusted. ErrVerifyUntrusted = errs.Class("untrusted") // ErrVerifyDuplicateRequest is returned when serial number has been already used to submit an action. ErrVerifyDuplicateRequest = errs.Class("duplicate request") )
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { DatabaseDir string `help:"directory to store databases. if empty, uses data path" default:""` ExpirationGracePeriod time.Duration `help:"how soon before expiration date should things be considered expired" default:"48h0m0s"` MaxConcurrentRequests int `help:"how many concurrent requests are allowed, before uploads are rejected. 0 represents unlimited." default:"0"` DeleteWorkers int `help:"how many piece delete workers" default:"1"` DeleteQueueSize int `help:"size of the piece delete queue" default:"10000"` OrderLimitGracePeriod time.Duration `help:"how long after OrderLimit creation date are OrderLimits no longer accepted" default:"1h0m0s"` CacheSyncInterval time.Duration `help:"how often the space used cache is synced to persistent storage" releaseDefault:"1h0m0s" devDefault:"0h1m0s"` StreamOperationTimeout time.Duration `help:"how long to spend waiting for a stream operation before canceling" default:"30m"` RetainTimeBuffer time.Duration `help:"allows for small differences in the satellite and storagenode clocks" default:"48h0m0s"` ReportCapacityThreshold memory.Size `help:"threshold below which to immediately notify satellite of capacity" default:"500MB" hidden:"true"` MaxUsedSerialsSize memory.Size `help:"amount of memory allowed for used serials store - once surpassed, serials will be dropped at random" default:"1MB"` Trust trust.Config Monitor monitor.Config Orders orders.Config }
Config defines parameters for piecestore endpoint.
type Endpoint ¶
type Endpoint struct { pb.DRPCContactUnimplementedServer // contains filtered or unexported fields }
Endpoint implements uploading, downloading and deleting for a storage node..
architecture: Endpoint
func NewEndpoint ¶
func NewEndpoint(log *zap.Logger, signer signing.Signer, trust *trust.Pool, monitor *monitor.Service, retain *retain.Service, pingStats pingStatsSource, store *pieces.Store, pieceDeleter *pieces.Deleter, ordersStore *orders.FileStore, usage bandwidth.DB, usedSerials *usedserials.Table, config Config) (*Endpoint, error)
NewEndpoint creates a new piecestore endpoint.
func (*Endpoint) Delete
deprecated
func (endpoint *Endpoint) Delete(ctx context.Context, delete *pb.PieceDeleteRequest) (_ *pb.PieceDeleteResponse, err error)
Delete handles deleting a piece on piece store requested by uplink.
Deprecated: use DeletePieces instead.
func (*Endpoint) DeletePieces ¶ added in v0.28.4
func (endpoint *Endpoint) DeletePieces( ctx context.Context, req *pb.DeletePiecesRequest, ) (_ *pb.DeletePiecesResponse, err error)
DeletePieces delete a list of pieces on satellite request.
func (*Endpoint) Download ¶
func (endpoint *Endpoint) Download(stream pb.DRPCPiecestore_DownloadStream) (err error)
Download handles Downloading a piece on piecestore.
func (*Endpoint) IsExpired ¶
IsExpired checks whether the date has already expired (with a threshold) at the time of calling this function.
func (*Endpoint) RestoreTrash ¶ added in v0.27.0
func (endpoint *Endpoint) RestoreTrash(ctx context.Context, restoreTrashReq *pb.RestoreTrashRequest) (res *pb.RestoreTrashResponse, err error)
RestoreTrash restores all trashed items for the satellite issuing the call.
func (*Endpoint) Retain ¶ added in v0.15.0
func (endpoint *Endpoint) Retain(ctx context.Context, retainReq *pb.RetainRequest) (res *pb.RetainResponse, err error)
Retain keeps only piece ids specified in the request.
func (*Endpoint) TestLiveRequestCount ¶ added in v0.21.0
TestLiveRequestCount returns the current number of live requests.
func (*Endpoint) Upload ¶
func (endpoint *Endpoint) Upload(stream pb.DRPCPiecestore_UploadStream) (err error)
Upload handles uploading a piece on piece store.
func (*Endpoint) VerifyOrder ¶
func (endpoint *Endpoint) VerifyOrder(ctx context.Context, limit *pb.OrderLimit, order *pb.Order, largestOrderAmount int64) (err error)
VerifyOrder verifies that the order corresponds to the order limit and has all the necessary fields.
func (*Endpoint) VerifyOrderLimitSignature ¶
func (endpoint *Endpoint) VerifyOrderLimitSignature(ctx context.Context, limit *pb.OrderLimit) (err error)
VerifyOrderLimitSignature verifies that the order limit signature is valid.
type OldConfig ¶ added in v0.11.0
type OldConfig struct { Path string `help:"path to store data in" default:"$CONFDIR/storage"` WhitelistedSatellites storj.NodeURLs `help:"a comma-separated list of approved satellite node urls (unused)" devDefault:"" releaseDefault:""` AllocatedDiskSpace memory.Size `user:"true" help:"total allocated disk space in bytes" default:"1TB"` AllocatedBandwidth memory.Size `user:"true" help:"total allocated bandwidth in bytes (deprecated)" default:"0B"` KBucketRefreshInterval time.Duration `help:"how frequently Kademlia bucket should be refreshed with node stats" default:"1h0m0s"` }
OldConfig contains everything necessary for a server.