Documentation ¶
Index ¶
- type Config
- type Engine
- type HTTPHeader
- type RPCEngineBuilder
- func (builder *RPCEngineBuilder) Build() (*Engine, error)
- func (builder *RPCEngineBuilder) Handler() accessproto.AccessAPIServer
- func (builder *RPCEngineBuilder) WithBlockSignerDecoder(signerIndicesDecoder hotstuff.BlockSignerDecoder) *RPCEngineBuilder
- func (builder *RPCEngineBuilder) WithLegacy() *RPCEngineBuilder
- func (builder *RPCEngineBuilder) WithMetrics() *RPCEngineBuilder
- func (builder *RPCEngineBuilder) WithNewHandler(handler accessproto.AccessAPIServer) *RPCEngineBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { UnsecureGRPCListenAddr string // the non-secure GRPC server address as ip:port SecureGRPCListenAddr string // the secure GRPC server address as ip:port TransportCredentials credentials.TransportCredentials // the secure GRPC credentials HTTPListenAddr string // the HTTP web proxy address as ip:port RESTListenAddr string // the REST server address as ip:port (if empty the REST server will not be started) CollectionAddr string // the address of the upstream collection node HistoricalAccessAddrs string // the list of all access nodes from previous spork MaxMsgSize uint // GRPC max message size ExecutionClientTimeout time.Duration // execution API GRPC client timeout CollectionClientTimeout time.Duration // collection API GRPC client timeout ConnectionPoolSize uint // size of the cache for storing collection and execution connections MaxHeightRange uint // max size of height range requests PreferredExecutionNodeIDs []string // preferred list of upstream execution node IDs FixedExecutionNodeIDs []string // fixed list of execution node IDs to choose from if no node node ID can be chosen from the PreferredExecutionNodeIDs ArchiveAddressList []string // the archive node address list to send script executions. when configured, script executions will be all sent to the archive node }
Config defines the configurable options for the access node server A secure GRPC server here implies a server that presents a self-signed TLS certificate and a client that authenticates the server via a pre-shared public key
type Engine ¶
Engine exposes the server with a simplified version of the Access API. An unsecured GRPC server (default port 9000), a secure GRPC server (default port 9001) and an HTTP Web proxy (default port 8000) are brought up.
func (*Engine) OnFinalizedBlock ¶ added in v0.31.0
OnFinalizedBlock responds to block finalization events.
func (*Engine) RestApiAddress ¶ added in v0.23.2
RestApiAddress returns the listen address of the REST API server. Guaranteed to be non-nil after Engine.Ready is closed.
func (*Engine) SecureGRPCAddress ¶ added in v0.20.0
SecureGRPCAddress returns the listen address of the secure GRPC server. Guaranteed to be non-nil after Engine.Ready is closed.
func (*Engine) UnsecureGRPCAddress ¶ added in v0.20.0
UnsecureGRPCAddress returns the listen address of the unsecure GRPC server. Guaranteed to be non-nil after Engine.Ready is closed.
type HTTPHeader ¶
type RPCEngineBuilder ¶ added in v0.27.0
type RPCEngineBuilder struct { *Engine // contains filtered or unexported fields }
func NewBuilder ¶ added in v0.27.0
func NewBuilder(log zerolog.Logger, state protocol.State, config Config, collectionRPC accessproto.AccessAPIClient, historicalAccessNodes []accessproto.AccessAPIClient, blocks storage.Blocks, headers storage.Headers, collections storage.Collections, transactions storage.Transactions, executionReceipts storage.ExecutionReceipts, executionResults storage.ExecutionResults, chainID flow.ChainID, accessMetrics module.AccessMetrics, collectionGRPCPort uint, executionGRPCPort uint, retryEnabled bool, rpcMetricsEnabled bool, apiRatelimits map[string]int, apiBurstLimits map[string]int, me module.Local, ) (*RPCEngineBuilder, error)
NewBuilder returns a new RPC engine builder.
func NewRPCEngineBuilder ¶ added in v0.27.0
func NewRPCEngineBuilder(engine *Engine, me module.Local, finalizedHeaderCache module.FinalizedHeaderCache) *RPCEngineBuilder
NewRPCEngineBuilder helps to build a new RPC engine.
func (*RPCEngineBuilder) Build ¶ added in v0.27.0
func (builder *RPCEngineBuilder) Build() (*Engine, error)
func (*RPCEngineBuilder) Handler ¶ added in v0.28.0
func (builder *RPCEngineBuilder) Handler() accessproto.AccessAPIServer
func (*RPCEngineBuilder) WithBlockSignerDecoder ¶ added in v0.27.0
func (builder *RPCEngineBuilder) WithBlockSignerDecoder(signerIndicesDecoder hotstuff.BlockSignerDecoder) *RPCEngineBuilder
WithBlockSignerDecoder specifies that signer indices in block headers should be translated to full node IDs with the given decoder. Caution: you can inject either a `BlockSignerDecoder` (via method `WithBlockSignerDecoder`) or an `AccessAPIServer` (via method `WithNewHandler`); but not both. If both are specified, the builder will error during the build step.
Returns self-reference for chaining.
func (*RPCEngineBuilder) WithLegacy ¶ added in v0.27.0
func (builder *RPCEngineBuilder) WithLegacy() *RPCEngineBuilder
WithLegacy specifies that a legacy access API should be instantiated Returns self-reference for chaining.
func (*RPCEngineBuilder) WithMetrics ¶ added in v0.27.0
func (builder *RPCEngineBuilder) WithMetrics() *RPCEngineBuilder
WithMetrics specifies the metrics should be collected. Returns self-reference for chaining.
func (*RPCEngineBuilder) WithNewHandler ¶ added in v0.27.0
func (builder *RPCEngineBuilder) WithNewHandler(handler accessproto.AccessAPIServer) *RPCEngineBuilder
WithNewHandler specifies that the given `AccessAPIServer` should be used for serving API queries. Caution: you can inject either a `BlockSignerDecoder` (via method `WithBlockSignerDecoder`) or an `AccessAPIServer` (via method `WithNewHandler`); but not both. If both are specified, the builder will error during the build step.
Returns self-reference for chaining.