processor

package
v1.999.0 Latest Latest
Warning

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

Go to latest
Published: Nov 17, 2022 License: GPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewHeartbeatInterceptorProcessor

func NewHeartbeatInterceptorProcessor(args ArgHeartbeatInterceptorProcessor) (*heartbeatInterceptorProcessor, error)

NewHeartbeatInterceptorProcessor creates a new heartbeatInterceptorProcessor

func NewPeerAuthenticationInterceptorProcessor

func NewPeerAuthenticationInterceptorProcessor(args ArgPeerAuthenticationInterceptorProcessor) (*peerAuthenticationInterceptorProcessor, error)

NewPeerAuthenticationInterceptorProcessor creates a new peerAuthenticationInterceptorProcessor

func NewPeerShardInterceptorProcessor

func NewPeerShardInterceptorProcessor(args ArgPeerShardInterceptorProcessor) (*peerShardInterceptorProcessor, error)

NewPeerShardInterceptorProcessor creates an instance of peerShardInterceptorProcessor

func NewTrieNodeChunksProcessor

func NewTrieNodeChunksProcessor(arg TrieNodesChunksProcessorArgs) (*trieNodeChunksProcessor, error)

NewTrieNodeChunksProcessor creates a new trieNodeChunksProcessor instance

Types

type ArgHdrInterceptorProcessor

type ArgHdrInterceptorProcessor struct {
	Headers        dataRetriever.HeadersPool
	BlockBlackList process.TimeCacher
}

ArgHdrInterceptorProcessor is the argument for the interceptor processor used for headers (shard, meta and so on)

type ArgHeartbeatInterceptorProcessor

type ArgHeartbeatInterceptorProcessor struct {
	HeartbeatCacher  storage.Cacher
	ShardCoordinator sharding.Coordinator
	PeerShardMapper  process.PeerShardMapper
}

ArgHeartbeatInterceptorProcessor is the argument for the interceptor processor used for heartbeat

type ArgMiniblockInterceptorProcessor

type ArgMiniblockInterceptorProcessor struct {
	MiniblockCache   storage.Cacher
	Marshalizer      marshal.Marshalizer
	Hasher           hashing.Hasher
	ShardCoordinator sharding.Coordinator
	WhiteListHandler process.WhiteListHandler
}

ArgMiniblockInterceptorProcessor is the argument for the interceptor processor used for miniblocks

type ArgPeerAuthenticationInterceptorProcessor

type ArgPeerAuthenticationInterceptorProcessor struct {
	PeerAuthenticationCacher storage.Cacher
	PeerShardMapper          process.PeerShardMapper
	Marshaller               marshal.Marshalizer
	HardforkTrigger          heartbeat.HardforkTrigger
}

ArgPeerAuthenticationInterceptorProcessor is the argument for the interceptor processor used for peer authentication

type ArgPeerShardInterceptorProcessor

type ArgPeerShardInterceptorProcessor struct {
	PeerShardMapper process.PeerShardMapper
}

ArgPeerShardInterceptorProcessor is the argument for the interceptor processor used for peer shard message

type ArgTxInterceptorProcessor

type ArgTxInterceptorProcessor struct {
	ShardedDataCache dataRetriever.ShardedDataCacherNotifier
	TxValidator      process.TxValidator
}

ArgTxInterceptorProcessor is the argument for the interceptor processor used for transactions (balance txs, smart contract results, reward and so on)

type HdrInterceptorProcessor

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

HdrInterceptorProcessor is the processor used when intercepting headers (shard headers, meta headers) structs which satisfy HeaderHandler interface.

func NewHdrInterceptorProcessor

func NewHdrInterceptorProcessor(argument *ArgHdrInterceptorProcessor) (*HdrInterceptorProcessor, error)

NewHdrInterceptorProcessor creates a new TxInterceptorProcessor instance

func (*HdrInterceptorProcessor) IsInterfaceNil

func (hip *HdrInterceptorProcessor) IsInterfaceNil() bool

IsInterfaceNil returns true if there is no value under the interface

func (*HdrInterceptorProcessor) RegisterHandler

func (hip *HdrInterceptorProcessor) RegisterHandler(handler func(topic string, hash []byte, data interface{}))

RegisterHandler registers a callback function to be notified of incoming headers

func (*HdrInterceptorProcessor) Save

Save will save the received data into the headers cacher as hash<->[plain header structure] and in headersNonces as nonce<->hash

func (*HdrInterceptorProcessor) Validate

Validate checks if the intercepted data can be processed

type InterceptedTransactionHandler

type InterceptedTransactionHandler interface {
	SenderShardId() uint32
	ReceiverShardId() uint32
	Nonce() uint64
	SenderAddress() []byte
	Fee() *big.Int
	Transaction() data.TransactionHandler
}

InterceptedTransactionHandler defines an intercepted data wrapper over transaction handler that has receiver and sender shard getters

type MiniblockInterceptorProcessor

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

MiniblockInterceptorProcessor is the processor used when intercepting miniblocks

func NewMiniblockInterceptorProcessor

func NewMiniblockInterceptorProcessor(argument *ArgMiniblockInterceptorProcessor) (*MiniblockInterceptorProcessor, error)

NewMiniblockInterceptorProcessor creates a new MiniblockInterceptorProcessor instance

func (*MiniblockInterceptorProcessor) IsInterfaceNil

func (mip *MiniblockInterceptorProcessor) IsInterfaceNil() bool

IsInterfaceNil returns true if there is no value under the interface

func (*MiniblockInterceptorProcessor) RegisterHandler

func (mip *MiniblockInterceptorProcessor) RegisterHandler(handler func(topic string, hash []byte, data interface{}))

RegisterHandler registers a callback function to be notified of incoming miniBlocks

func (*MiniblockInterceptorProcessor) Save

Save will save the received miniblocks inside the miniblock cacher after a new validation round that will be done on each miniblock

func (*MiniblockInterceptorProcessor) Validate

Validate checks if the intercepted data can be processed It returns nil as a body might consist of multiple miniblocks Since some might be valid and others not, we rather do the checking when we iterate the slice for processing as it is optimal to do so

type ShardedPool

type ShardedPool interface {
	AddData(key []byte, data interface{}, sizeInBytes int, cacheID string)
}

ShardedPool is a perspective of the sharded data pool

type TrieNodeInterceptorProcessor

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

TrieNodeInterceptorProcessor is the processor used when intercepting trie nodes

func NewTrieNodesInterceptorProcessor

func NewTrieNodesInterceptorProcessor(interceptedNodes storage.Cacher) (*TrieNodeInterceptorProcessor, error)

NewTrieNodesInterceptorProcessor creates a new instance of TrieNodeInterceptorProcessor

func (*TrieNodeInterceptorProcessor) IsInterfaceNil

func (tnip *TrieNodeInterceptorProcessor) IsInterfaceNil() bool

IsInterfaceNil returns true if there is no value under the interface

func (*TrieNodeInterceptorProcessor) RegisterHandler

func (tnip *TrieNodeInterceptorProcessor) RegisterHandler(_ func(topic string, hash []byte, data interface{}))

RegisterHandler registers a callback function to be notified of incoming trie nodes

func (*TrieNodeInterceptorProcessor) Save

Save saves the intercepted trie node in the intercepted nodes cacher

func (*TrieNodeInterceptorProcessor) Validate

Validate checks if the intercepted data can be processed

type TrieNodesChunksProcessorArgs

type TrieNodesChunksProcessorArgs struct {
	Hasher          hashing.Hasher
	ChunksCacher    storage.Cacher
	RequestInterval time.Duration
	RequestHandler  process.RequestHandler
	Topic           string
}

TrieNodesChunksProcessorArgs is the argument DTO used in the trieNodeChunksProcessor constructor

type TxInterceptorProcessor

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

TxInterceptorProcessor is the processor used when intercepting transactions (smart contract results, receipts, transaction) structs which satisfy TransactionHandler interface.

func NewTxInterceptorProcessor

func NewTxInterceptorProcessor(argument *ArgTxInterceptorProcessor) (*TxInterceptorProcessor, error)

NewTxInterceptorProcessor creates a new TxInterceptorProcessor instance

func (*TxInterceptorProcessor) IsInterfaceNil

func (txip *TxInterceptorProcessor) IsInterfaceNil() bool

IsInterfaceNil returns true if there is no value under the interface

func (*TxInterceptorProcessor) RegisterHandler

func (txip *TxInterceptorProcessor) RegisterHandler(_ func(topic string, hash []byte, data interface{}))

RegisterHandler registers a callback function to be notified of incoming transactions

func (*TxInterceptorProcessor) Save

func (txip *TxInterceptorProcessor) Save(data process.InterceptedData, peerOriginator core.PeerID, _ string) error

Save will save the received data into the cacher

func (*TxInterceptorProcessor) Validate

Validate checks if the intercepted data can be processed

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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