api

package
v1.18.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 14, 2023 License: BSD-3-Clause Imports: 88 Imported by: 4

Documentation

Overview

Package api provides the functionality of the Bee client-facing HTTP API.

Copyright 2023 The Swarm Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

Index

Constants

View Source
const (
	SwarmPinHeader            = "Swarm-Pin"
	SwarmTagHeader            = "Swarm-Tag"
	SwarmEncryptHeader        = "Swarm-Encrypt"
	SwarmIndexDocumentHeader  = "Swarm-Index-Document"
	SwarmErrorDocumentHeader  = "Swarm-Error-Document"
	SwarmFeedIndexHeader      = "Swarm-Feed-Index"
	SwarmFeedIndexNextHeader  = "Swarm-Feed-Index-Next"
	SwarmCollectionHeader     = "Swarm-Collection"
	SwarmPostageBatchIdHeader = "Swarm-Postage-Batch-Id"
	SwarmDeferredUploadHeader = "Swarm-Deferred-Upload"

	ImmutableHeader = "Immutable"
	GasPriceHeader  = "Gas-Price"
	GasLimitHeader  = "Gas-Limit"
	ETagHeader      = "ETag"

	AuthorizationHeader      = "Authorization"
	AcceptEncodingHeader     = "Accept-Encoding"
	ContentTypeHeader        = "Content-Type"
	ContentDispositionHeader = "Content-Disposition"
	ContentLengthHeader      = "Content-Length"
	RangeHeader              = "Range"
	OriginHeader             = "Origin"
)

Variables

View Source
var DebugVersion = "0.0.0"
View Source
var Version = "0.0.0"

Version is set in the build process.

Functions

func CalculateNumberOfChunks added in v1.18.0

func CalculateNumberOfChunks(contentLength int64, isEncrypted bool) int64

CalculateNumberOfChunks calculates the number of chunks in an arbitrary content length.

Types

type BeeNodeMode added in v1.6.2

type BeeNodeMode uint
const (
	UnknownMode BeeNodeMode = iota
	LightMode
	FullMode
	DevMode
	UltraLightMode
)

func (BeeNodeMode) String added in v1.6.2

func (b BeeNodeMode) String() string

type BlockListedPeer added in v1.15.0

type BlockListedPeer struct {
	Peer
	Reason   string `json:"reason"`
	Duration int    `json:"duration"`
}

type ChunkInclusionProof added in v1.18.0

type ChunkInclusionProof struct {
	ProofSegments  []string     `json:"proofSegments"`
	ProveSegment   string       `json:"proveSegment"`
	ProofSegments2 []string     `json:"proofSegments2"`
	ProveSegment2  string       `json:"proveSegment2"`
	ChunkSpan      uint64       `json:"chunkSpan"`
	ProofSegments3 []string     `json:"proofSegments3"`
	PostageProof   PostageProof `json:"postageProof"`
	SocProof       []SOCProof   `json:"socProof"`
}

ChunkInclusionProof structure must exactly match corresponding structure (of the same name) in Redistribution.sol smart contract. github.com/ethersphere/storage-incentives/blob/ph_f2/src/Redistribution.sol github.com/ethersphere/storage-incentives/blob/master/src/Redistribution.sol (when merged to master)

type ChunkInclusionProofs added in v1.18.0

type ChunkInclusionProofs struct {
	A ChunkInclusionProof `json:"proof1"`
	B ChunkInclusionProof `json:"proof2"`
	C ChunkInclusionProof `json:"proofLast"`
}

type ExtraOptions added in v1.6.2

type ExtraOptions struct {
	Pingpong        pingpong.Interface
	TopologyDriver  topology.Driver
	LightNodes      *lightnode.Container
	Accounting      accounting.Interface
	Pseudosettle    settlement.Interface
	Swap            swap.Interface
	Chequebook      chequebook.Service
	BlockTime       time.Duration
	Storer          Storer
	Resolver        resolver.Interface
	Pss             pss.Interface
	FeedFactory     feeds.Factory
	Post            postage.Service
	PostageContract postagecontract.Interface
	Staking         staking.Contract
	Steward         steward.Interface
	SyncStatus      func() (bool, error)
	NodeStatus      *status.Service
}

type FileInfo added in v0.6.0

type FileInfo struct {
	Path        string
	Name        string
	ContentType string
	Size        int64
	Reader      io.Reader
}

type Options

type Options struct {
	CORSAllowedOrigins []string
	WsPingPeriod       time.Duration
	Restricted         bool
}

type Peer added in v1.6.2

type Peer struct {
	Address  swarm.Address `json:"address"`
	FullNode bool          `json:"fullNode"`
}

Peer holds information about a Peer.

type PostageProof added in v1.18.0

type PostageProof struct {
	Signature string `json:"signature"`
	PostageId string `json:"postageId"`
	Index     string `json:"index"`
	TimeStamp string `json:"timeStamp"`
}

SOCProof structure must exactly match corresponding structure (of the same name) in Redistribution.sol smart contract.

type Probe added in v1.9.0

type Probe struct {
	// contains filtered or unexported fields
}

Probe structure holds flags which indicate node healthiness (sometimes refert also as liveness) and readiness.

func NewProbe added in v1.9.0

func NewProbe() *Probe

NewProbe returns new Probe.

func (*Probe) Healthy added in v1.9.0

func (p *Probe) Healthy() ProbeStatus

Healthy returns the value of the healthy status.

func (*Probe) Ready added in v1.9.0

func (p *Probe) Ready() ProbeStatus

Ready returns the value of the ready status.

func (*Probe) SetHealthy added in v1.9.0

func (p *Probe) SetHealthy(ps ProbeStatus)

SetHealthy updates the value of the healthy status.

func (*Probe) SetReady added in v1.9.0

func (p *Probe) SetReady(ps ProbeStatus)

SetReady updates the value of the ready status.

type ProbeStatus added in v1.9.0

type ProbeStatus int32

ProbeStatus is the status of a probe. ProbeStatus is treated as a sync/atomic int32.

const (
	// ProbeStatusOK indicates positive ProbeStatus status.
	ProbeStatusOK ProbeStatus = 1

	// ProbeStatusNOK indicates negative ProbeStatus status.
	ProbeStatusNOK ProbeStatus = 0
)

func (ProbeStatus) String added in v1.9.0

func (ps ProbeStatus) String() string

String implements the fmt.Stringer interface.

type RCHashResponse added in v1.17.0

type RCHashResponse struct {
	Hash     swarm.Address        `json:"hash"`
	Proofs   ChunkInclusionProofs `json:"proofs"`
	Duration time.Duration        `json:"duration"`
}

type SOCProof added in v1.18.0

type SOCProof struct {
	Signer     string `json:"signer"`
	Signature  string `json:"signature"`
	Identifier string `json:"identifier"`
	ChunkAddr  string `json:"chunkAddr"`
}

SOCProof structure must exactly match corresponding structure (of the same name) in Redistribution.sol smart contract.

type Service

type Service struct {
	Options

	http.Handler
	// contains filtered or unexported fields
}

func New

func New(
	publicKey, pssPublicKey ecdsa.PublicKey,
	ethereumAddress common.Address,
	logger log.Logger,
	transaction transaction.Service,
	batchStore postage.Storer,
	beeMode BeeNodeMode,
	chequebookEnabled bool,
	swapEnabled bool,
	chainBackend transaction.Backend,
	cors []string,
	stamperStore storage.Store,
) *Service

func (*Service) Close added in v1.6.2

func (s *Service) Close() error

Close hangs up running websockets on shutdown.

func (*Service) Configure added in v1.6.2

func (s *Service) Configure(signer crypto.Signer, auth auth.Authenticator, tracer *tracing.Tracer, o Options, e ExtraOptions, chainID int64, erc20 erc20.Service)

Configure will create a and initialize a new API service.

func (*Service) Metrics added in v1.6.2

func (s *Service) Metrics() []prometheus.Collector

func (*Service) MetricsRegistry added in v1.13.0

func (s *Service) MetricsRegistry() *prometheus.Registry

func (*Service) MountAPI added in v1.6.2

func (s *Service) MountAPI()

func (*Service) MountDebug added in v1.6.2

func (s *Service) MountDebug(restricted bool)

func (*Service) MountTechnicalDebug added in v1.6.2

func (s *Service) MountTechnicalDebug()

func (*Service) MustRegisterMetrics added in v1.6.2

func (s *Service) MustRegisterMetrics(cs ...prometheus.Collector)

func (*Service) SetP2P added in v1.6.2

func (s *Service) SetP2P(p2p p2p.DebugService)

func (*Service) SetProbe added in v1.9.0

func (s *Service) SetProbe(probe *Probe)

func (*Service) SetRedistributionAgent added in v1.12.0

func (s *Service) SetRedistributionAgent(redistributionAgent *storageincentives.Agent)

func (*Service) SetSwarmAddress added in v1.6.2

func (s *Service) SetSwarmAddress(addr *swarm.Address)

type Storer added in v1.17.0

Storer interface provides the functionality required from the local storage component of the node.

type UpgradedResponseWriter added in v0.6.0

type UpgradedResponseWriter interface {
	http.ResponseWriter
	http.Pusher
	http.Hijacker
	http.Flusher
	// staticcheck SA1019 CloseNotifier interface is required by gorilla compress handler
	// nolint:staticcheck
	http.CloseNotifier
}

UpgradedResponseWriter adds more functionality on top of ResponseWriter

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL