httpx

package
v0.0.0-...-1042b62 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2024 License: Apache-2.0, Apache-2.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleRaw

func HandleRaw(action rawAction) http.HandlerFunc

func NewHistoryMiddleware

func NewHistoryMiddleware(ledgerState *ledger.State, staleThreshold int32, session db.SessionInterface, contextDBTimeout time.Duration) func(http.Handler) http.Handler

NewHistoryMiddleware adds session to the request context and ensures Horizon is not in a stale state, which is when the difference between latest core ledger and latest history ledger is higher than the given threshold

func WrapRaw

func WrapRaw(next http.Handler, action rawAction) http.Handler

Types

type ObjectActionHandler

type ObjectActionHandler struct {
	Action objectAction
}

func (ObjectActionHandler) ServeHTTP

func (handler ObjectActionHandler) ServeHTTP(
	w http.ResponseWriter,
	r *http.Request,
)

type ReplicaSyncCheckMiddleware

type ReplicaSyncCheckMiddleware struct {
	PrimaryHistoryQ *history.Q
	ReplicaHistoryQ *history.Q
	ServerMetrics   *ServerMetrics
}

func (*ReplicaSyncCheckMiddleware) Wrap

func (*ReplicaSyncCheckMiddleware) WrapFunc

WrapFunc executes the middleware on a given HTTP handler function

type Router

type Router struct {
	*chi.Mux
	Internal *chi.Mux
}

func NewRouter

func NewRouter(config *RouterConfig, serverMetrics *ServerMetrics, ledgerState *ledger.State) (*Router, error)

type RouterConfig

type RouterConfig struct {
	DBSession             db.SessionInterface
	PrimaryDBSession      db.SessionInterface
	TxSubmitter           *txsub.System
	RateQuota             *throttled.RateQuota
	MaxConcurrentRequests uint

	BehindCloudflare        bool
	BehindAWSLoadBalancer   bool
	SSEUpdateFrequency      time.Duration
	StaleThreshold          uint
	ConnectionTimeout       time.Duration
	ClientQueryTimeout      time.Duration
	MaxHTTPRequestSize      uint
	NetworkPassphrase       string
	MaxPathLength           uint
	MaxAssetsPerPathRequest int
	PathFinder              paths.Finder
	PrometheusRegistry      *prometheus.Registry
	CoreGetter              actions.CoreStateGetter
	HorizonVersion          string
	FriendbotURL            *url.URL
	HealthCheck             http.Handler
	DisableTxSub            bool
	SkipTxMeta              bool
}

type Server

type Server struct {
	Router  *Router
	Metrics *ServerMetrics
	// contains filtered or unexported fields
}

Server contains the http server related fields for horizon: the Router, rate limiter, etc.

func NewServer

func NewServer(serverConfig ServerConfig, routerConfig RouterConfig, ledgerState *ledger.State) (*Server, error)

func (*Server) RegisterMetrics

func (s *Server) RegisterMetrics(registry *prometheus.Registry)

RegisterMetrics registers the prometheus metrics

func (*Server) Serve

func (s *Server) Serve() error

func (*Server) Shutdown

func (s *Server) Shutdown(ctx context.Context) error

type ServerConfig

type ServerConfig struct {
	Port      uint16
	TLSConfig *TLSConfig
	AdminPort uint16
}

type ServerMetrics

type ServerMetrics struct {
	RequestDurationSummary  *prometheus.SummaryVec
	ReplicaLagErrorsCounter prometheus.Counter
	RequestsInFlightGauge   *prometheus.GaugeVec
	RequestsReceivedCounter *prometheus.CounterVec
}

type StateMiddleware

type StateMiddleware struct {
	HorizonSession      db.SessionInterface
	ClientQueryTimeout  time.Duration
	NoStateVerification bool
}

StateMiddleware is a middleware which enables a state handler if the state has been initialized. Unless NoStateVerification is set, it ensures that the state (ledger entries) has been verified and is correct (Otherwise returns `500 Internal Server Error` to prevent returning invalid data to the user)

func (*StateMiddleware) Wrap

WrapFunc executes the middleware on a given HTTP handler function

func (*StateMiddleware) WrapFunc

WrapFunc executes the middleware on a given HTTP handler function

type TLSConfig

type TLSConfig struct {
	CertPath, KeyPath string
}

type VaryByRemoteIP

type VaryByRemoteIP struct{}

func (VaryByRemoteIP) Key

func (v VaryByRemoteIP) Key(r *http.Request) string

Jump to

Keyboard shortcuts

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