node

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2023 License: GPL-3.0 Imports: 55 Imported by: 0

Documentation

Index

Constants

View Source
const SendTransactionsPipe = "send transactions pipe"

SendTransactionsPipe is the pipe used for sending new transactions

Variables

View Source
var ErrEmptyQueryHandlerName = errors.New("empty query handler name")

ErrEmptyQueryHandlerName signals that an empty string can not be used to be used in the query handler container

View Source
var ErrGenesisBlockNotInitialized = errors.New("genesis block is not initialized")

ErrGenesisBlockNotInitialized signals that genesis block is not initialized

View Source
var ErrInvalidChainID = errors.New("invalid chain ID in Node")

ErrInvalidChainID signals that an invalid chain ID has been provided

View Source
var ErrInvalidTransactionVersion = errors.New("invalid transaction version")

ErrInvalidTransactionVersion signals that an invalid transaction version has been provided

View Source
var ErrInvalidValue = errors.New("invalid value")

ErrInvalidValue signals that an invalid value has been provided such as NaN to an integer field

View Source
var ErrNegativeOrZeroConsensusGroupSize = errors.New("group size should be a strict positive number")

ErrNegativeOrZeroConsensusGroupSize signals that 0 elements consensus group is not supported

View Source
var ErrNilAccountsAdapter = errors.New("trying to set nil accounts adapter")

ErrNilAccountsAdapter signals that a nil accounts adapter has been provided

View Source
var ErrNilAntifloodHandler = errors.New("nil antiflood handler")

ErrNilAntifloodHandler signals that a nil antiflood handler has been provided

View Source
var ErrNilBlockProcessor = errors.New("trying to set nil block processor")

ErrNilBlockProcessor signals that a nil block processor has been provided

View Source
var ErrNilBlockTracker = errors.New("trying to set nil block tracker")

ErrNilBlockTracker signals that a nil block tracker has been provided

View Source
var ErrNilBlockchain = errors.New("nil blockchain")

ErrNilBlockchain signals that a nil blockchain structure has been provided

View Source
var ErrNilBootStorer = errors.New("nil boot storer")

ErrNilBootStorer signals that a nil boot storer was provided

View Source
var ErrNilDataPool = errors.New("trying to set nil data pool")

ErrNilDataPool signals that a nil data pool has been provided

View Source
var ErrNilEpochStartTrigger = errors.New("nil start of epoch trigger")

ErrNilEpochStartTrigger signals that a nil start of epoch trigger has been provided

View Source
var ErrNilForkDetector = errors.New("nil fork detector")

ErrNilForkDetector signals that a nil forkdetector object has been provided

View Source
var ErrNilHardforkTrigger = errors.New("nil hardfork trigger")

ErrNilHardforkTrigger signals that a nil hardfork trigger has been provided

View Source
var ErrNilHasher = errors.New("trying to set nil hasher")

ErrNilHasher signals that a nil hasher has been provided

View Source
var ErrNilHeaderIntegrityVerifier = errors.New("nil header integrity verifier")

ErrNilHeaderIntegrityVerifier signals that a nil header integrity verifier has been provided

View Source
var ErrNilHeaderSigVerifier = errors.New("nil header sig verifier")

ErrNilHeaderSigVerifier signals that a nil header sig verifier has been provided

View Source
var ErrNilHistoryRepository = errors.New("history repository is nil")

ErrNilHistoryRepository signals that history repository is nil

View Source
var ErrNilInterceptorsContainer = errors.New("nil interceptors container")

ErrNilInterceptorsContainer signals that a nil interceptors container has been provided

View Source
var ErrNilKeyGenForBalances = errors.New("trying to set a nil key gen for signing")

ErrNilKeyGenForBalances signals that a nil keygen for balances has been provided

View Source
var ErrNilMarshalizer = errors.New("trying to set nil marshalizer")

ErrNilMarshalizer signals that a nil marshalizer has been provided

View Source
var ErrNilMessenger = errors.New("nil messenger")

ErrNilMessenger signals that a nil messenger has been provided

View Source
var ErrNilMultiSig = errors.New("trying to set nil multiSigner")

ErrNilMultiSig signals that a nil multiSigner object has been provided

View Source
var ErrNilNetworkShardingCollector = errors.New("nil network sharding collector")

ErrNilNetworkShardingCollector defines the error for setting a nil network sharding collector

View Source
var ErrNilNodeStopChannel = errors.New("nil node stop channel")

ErrNilNodeStopChannel signals that a nil channel for node process stop has been provided

View Source
var ErrNilNodesCoordinator = errors.New("trying to set nil nodes coordinator")

ErrNilNodesCoordinator signals that a nil nodes coordinator has been provided

View Source
var ErrNilPeerDenialEvaluator = errors.New("nil peer denial evaluator")

ErrNilPeerDenialEvaluator signals that a nil peer denial evaluator was provided

View Source
var ErrNilPeerHonestyHandler = errors.New("nil peer honesty handler")

ErrNilPeerHonestyHandler signals that a nil peer honesty handler has been provided

View Source
var ErrNilPeerSignatureHandler = errors.New("trying to set nil peerSignatureHandler")

ErrNilPeerSignatureHandler signals that a nil peerSignatureHandler object has been provided

View Source
var ErrNilPendingMiniBlocksHandler = errors.New("trying to set nil pending miniblocks handler")

ErrNilPendingMiniBlocksHandler signals that a nil pending miniblocks handler has been provided

View Source
var ErrNilPrivateKey = errors.New("trying to set nil private key")

ErrNilPrivateKey signals that a nil private key has been provided

View Source
var ErrNilPubkeyConverter = errors.New("trying to use a nil pubkey converter")

ErrNilPubkeyConverter signals that a nil public key converter has been provided

View Source
var ErrNilPublicKey = errors.New("trying to set nil public key")

ErrNilPublicKey signals that a nil public key has been provided

View Source
var ErrNilQueryHandler = errors.New("nil query handler")

ErrNilQueryHandler signals that a nil query handler has been provided

View Source
var ErrNilRequestHandler = errors.New("trying to set nil request handler")

ErrNilRequestHandler signals that a nil request handler has been provided

View Source
var ErrNilRequestedItemsHandler = errors.New("nil requested items handler")

ErrNilRequestedItemsHandler signals that a nil requested items handler was provided

View Source
var ErrNilResolversFinder = errors.New("nil resolvers finder")

ErrNilResolversFinder signals that a nil resolvers finder has been provided

View Source
var ErrNilRounder = errors.New("trying to set nil rounder")

ErrNilRounder signals that a nil rounder has been provided

View Source
var ErrNilShardCoordinator = errors.New("trying to set nil shard coordinator")

ErrNilShardCoordinator signals that a nil shard coordinator has been provided

View Source
var ErrNilSingleSig = errors.New("trying to set nil singlesig")

ErrNilSingleSig signals that a nil singlesig object has been provided

View Source
var ErrNilSingleSignKeyGen = errors.New("trying to set nil single sign key generator")

ErrNilSingleSignKeyGen signals that a nil single key generator has been provided

View Source
var ErrNilStatusHandler = errors.New("nil AppStatusHandler")

ErrNilStatusHandler is returned when the status handler is nil

View Source
var ErrNilStore = errors.New("nil data store")

ErrNilStore signals that a nil store has been provided

View Source
var ErrNilSyncTimer = errors.New("trying to set nil sync timer")

ErrNilSyncTimer signals that a nil sync timer has been provided

View Source
var ErrNilTimeCache = errors.New("nil time cache")

ErrNilTimeCache signals that a nil time cache was provided

View Source
var ErrNilTxAccumulator = errors.New("nil tx accumulator")

ErrNilTxAccumulator signals that a nil Accumulator instance has been provided

View Source
var ErrNilTxFeeHandler = errors.New("trying to set a nil tx fee handler")

ErrNilTxFeeHandler signals that a nil tx fee handler was provided

View Source
var ErrNilUint64ByteSliceConverter = errors.New("trying to set nil uint64 - byte slice converter")

ErrNilUint64ByteSliceConverter signals that a nil uint64 <-> byte slice converter has been provided

View Source
var ErrNilValidatorStatistics = errors.New("nil validator statistics")

ErrNilValidatorStatistics signals that a nil validator statistics has been provided

View Source
var ErrNilWatchdog = errors.New("nil watchdog")

ErrNilWatchdog signals that a nil watchdog has been provided

View Source
var ErrNilWhiteListHandler = errors.New("nil whitelist handler")

ErrNilWhiteListHandler signals that white list handler is nil

View Source
var ErrNoTxToProcess = errors.New("no transaction to process")

ErrNoTxToProcess signals that no transaction were sent for processing

View Source
var ErrQueryHandlerAlreadyExists = errors.New("query handler already exists")

ErrQueryHandlerAlreadyExists signals that the query handler is already registered

View Source
var ErrSystemBusyGeneratingTransactions = errors.New("system busy while generating bulk transactions")

ErrSystemBusyGeneratingTransactions signals that to many transactions are trying to get generated

View Source
var ErrUnknownPeerID = errors.New("unknown peer ID")

ErrUnknownPeerID signals that the provided peer is unknown by the current node

View Source
var ErrValidatorAlreadySet = errors.New("topic validator has already been set")

ErrValidatorAlreadySet signals that a topic validator has already been set

View Source
var ErrZeroRoundDurationNotSupported = errors.New("0 round duration time is not supported")

ErrZeroRoundDurationNotSupported signals that 0 seconds round duration is not supported

Functions

This section is empty.

Types

type Accumulator

type Accumulator interface {
	AddData(data interface{})
	OutputChannel() <-chan []interface{}
	IsInterfaceNil() bool
}

Accumulator defines the interface able to accumulate data and periodically evict them

type HardforkTrigger

type HardforkTrigger interface {
	TriggerReceived(payload []byte, data []byte, pkBytes []byte) (bool, error)
	RecordedTriggerMessage() ([]byte, bool)
	Trigger(epoch uint32) error
	CreateData() []byte
	AddCloser(closer update.Closer) error
	NotifyTriggerReceived() <-chan struct{}
	IsSelfTrigger() bool
	IsInterfaceNil() bool
}

HardforkTrigger defines the behavior of a hardfork trigger

type NetworkShardingCollector

type NetworkShardingCollector interface {
	UpdatePeerIdPublicKey(pid core.PeerID, pk []byte)
	UpdatePublicKeyShardId(pk []byte, shardId uint32)
	UpdatePeerIdShardId(pid core.PeerID, shardId uint32)
	GetPeerInfo(pid core.PeerID) core.P2PPeerInfo
	IsInterfaceNil() bool
}

NetworkShardingCollector defines the updating methods used by the network sharding component The interface assures that the collected data will be used by the p2p network sharding components

type Node

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

Node is a structure that passes the configuration parameters and initializes

required services as requested

func NewNode

func NewNode(opts ...Option) (*Node, error)

NewNode creates a new Node instance

func (*Node) AddQueryHandler

func (n *Node) AddQueryHandler(name string, handler debug.QueryHandler) error

AddQueryHandler adds a query handler in cache

func (*Node) ApplyOptions

func (n *Node) ApplyOptions(opts ...Option) error

ApplyOptions can set up different configurable options of a Node instance

func (*Node) CreateShardedStores

func (n *Node) CreateShardedStores() error

CreateShardedStores instantiate sharded cachers for Transactions and Headers

func (*Node) CreateTransaction

func (n *Node) CreateTransaction(
	nonce uint64,
	value string,
	receiver string,
	sender string,
	gasPrice uint64,
	gasLimit uint64,
	dataField []byte,
	signatureHex string,
	chainID string,
	version uint32,
) (*transaction.Transaction, []byte, error)

CreateTransaction will return a transaction from all the required fields

func (*Node) DecodeAddressPubkey

func (n *Node) DecodeAddressPubkey(pk string) ([]byte, error)

DecodeAddressPubkey will try to decode the provided address public key string

func (*Node) DirectTrigger

func (n *Node) DirectTrigger(epoch uint32) error

DirectTrigger will start the hardfork trigger

func (*Node) EncodeAddressPubkey

func (n *Node) EncodeAddressPubkey(pk []byte) (string, error)

EncodeAddressPubkey will encode the provided address public key bytes to string

func (*Node) GenerateAndSendBulkTransactions

func (n *Node) GenerateAndSendBulkTransactions(
	receiverHex string,
	value *big.Int,
	numOfTxs uint64,
	sk crypto.PrivateKey,
	whiteList func([]*transaction.Transaction),
	chainID []byte,
	minTxVersion uint32,
) error

GenerateAndSendBulkTransactions is a method for generating and propagating a set of transactions to be processed. It is mainly used for demo purposes

func (*Node) GenerateTransaction

func (n *Node) GenerateTransaction(senderHex string, receiverHex string, value *big.Int, transactionData string, privateKey crypto.PrivateKey, chainID []byte, minTxVersion uint32) (*transaction.Transaction, error)

GenerateTransaction generates a new transaction with sender, receiver, amount and code

func (*Node) GetAccount

func (n *Node) GetAccount(address string) (state.UserAccountHandler, error)

GetAccount will return account details for a given address

func (*Node) GetAppStatusHandler

func (n *Node) GetAppStatusHandler() core.AppStatusHandler

GetAppStatusHandler will return the current status handler

func (*Node) GetBalance

func (n *Node) GetBalance(address string) (*big.Int, error)

GetBalance gets the balance for a specific address

func (*Node) GetBlockByHash added in v0.0.2

func (n *Node) GetBlockByHash(hash string, withTxs bool) (*apiBlock.APIBlock, error)

GetBlockByHash return the block for a given hash

func (*Node) GetBlockByNonce added in v0.0.2

func (n *Node) GetBlockByNonce(nonce uint64, withTxs bool) (*apiBlock.APIBlock, error)

GetBlockByNonce returns the block for a given nonce

func (*Node) GetHeartbeats

func (n *Node) GetHeartbeats() []heartbeatData.PubKeyHeartbeat

GetHeartbeats returns the heartbeat status for each public key defined in genesis.json

func (*Node) GetPeerInfo

func (n *Node) GetPeerInfo(pid string) ([]core.QueryP2PPeerInfo, error)

GetPeerInfo returns information about a peer id

func (*Node) GetQueryHandler

func (n *Node) GetQueryHandler(name string) (debug.QueryHandler, error)

GetQueryHandler returns the query handler if existing

func (*Node) GetTransaction

func (n *Node) GetTransaction(txHash string) (*transaction.ApiTransactionResult, error)

GetTransaction gets the transaction based on the given hash. It will search in the cache and the storage and will return the transaction in a format which can be respected by all types of transactions (normal, reward or unsigned)

func (*Node) GetValueForKey

func (n *Node) GetValueForKey(address string, key string) (string, error)

GetValueForKey will return the value for a key from a given account

func (*Node) IsInterfaceNil

func (n *Node) IsInterfaceNil() bool

IsInterfaceNil returns true if there is no value under the interface

func (*Node) IsSelfTrigger

func (n *Node) IsSelfTrigger() bool

IsSelfTrigger returns true if the trigger's registered public key matches the self public key

func (*Node) SendBulkTransactions

func (n *Node) SendBulkTransactions(txs []*transaction.Transaction) (uint64, error)

SendBulkTransactions sends the provided transactions as a bulk, optimizing transfer between nodes

func (*Node) StartConsensus

func (n *Node) StartConsensus() error

StartConsensus will start the consensus service for the current node

func (*Node) StartHeartbeat

func (n *Node) StartHeartbeat(hbConfig config.HeartbeatConfig, versionNumber string, prefsConfig config.PreferencesConfig) error

StartHeartbeat starts the node's heartbeat processing/signaling module TODO(next PR) remove the instantiation of the heartbeat component from here

func (*Node) ValidateTransaction

func (n *Node) ValidateTransaction(tx *transaction.Transaction) error

ValidateTransaction will validate a transaction

func (*Node) ValidatorStatisticsApi

func (n *Node) ValidatorStatisticsApi() (map[string]*state.ValidatorApiResponse, error)

ValidatorStatisticsApi will return the statistics for all the validators from the initial nodes pub keys

type Option

type Option func(*Node) error

Option represents a functional configuration parameter that can operate

over the None struct.

func WithAccountsAdapter

func WithAccountsAdapter(accounts state.AccountsAdapter) Option

WithAccountsAdapter sets up the accounts adapter option for the Node

func WithAddressPubkeyConverter

func WithAddressPubkeyConverter(pubkeyConverter core.PubkeyConverter) Option

WithAddressPubkeyConverter sets up the address public key converter adapter option for the Node

func WithAppStatusHandler

func WithAppStatusHandler(aph core.AppStatusHandler) Option

WithAppStatusHandler sets up which handler will monitor the status of the node

func WithBlockBlackListHandler

func WithBlockBlackListHandler(blackListHandler process.TimeCacher) Option

WithBlockBlackListHandler sets up a block black list handler for the Node

func WithBlockChain

func WithBlockChain(blkc data.ChainHandler) Option

WithBlockChain sets up the blockchain option for the Node

func WithBlockProcessor

func WithBlockProcessor(blockProcessor process.BlockProcessor) Option

WithBlockProcessor sets up the block processor option for the Node

func WithBlockTracker

func WithBlockTracker(blockTracker process.BlockTracker) Option

WithBlockTracker sets up the block tracker for the Node

func WithBootStorer

func WithBootStorer(bootStorer process.BootStorer) Option

WithBootStorer sets up a boot storer for the Node

func WithBootstrapRoundIndex

func WithBootstrapRoundIndex(bootstrapRoundIndex uint64) Option

WithBootstrapRoundIndex sets up a bootstrapRoundIndex option for the Node

func WithChainID

func WithChainID(chainID []byte) Option

WithChainID sets up the chain ID on which the current node is supposed to work on

func WithConsensusGroupSize

func WithConsensusGroupSize(consensusGroupSize int) Option

WithConsensusGroupSize sets up the consensus group size option for the Node

func WithConsensusType

func WithConsensusType(consensusType string) Option

WithConsensusType sets up the consensus type option for the Node

func WithDataPool

func WithDataPool(dataPool dataRetriever.PoolsHolder) Option

WithDataPool sets up the data pools option for the Node

func WithDataStore

func WithDataStore(store dataRetriever.StorageService) Option

WithDataStore sets up the storage options for the Node

func WithEpochStartEventNotifier

func WithEpochStartEventNotifier(epochStartEventNotifier epochStart.RegistrationHandler) Option

WithEpochStartEventNotifier sets up the notifier for the epoch start event

func WithEpochStartTrigger

func WithEpochStartTrigger(epochStartTrigger epochStart.TriggerHandler) Option

WithEpochStartTrigger sets up an start of epoch trigger option for the node

func WithForkDetector

func WithForkDetector(forkDetector process.ForkDetector) Option

WithForkDetector sets up the multiSigner option for the Node

func WithGenesisTime

func WithGenesisTime(genesisTime time.Time) Option

WithGenesisTime sets up the genesis time option for the Node

func WithHardforkTrigger

func WithHardforkTrigger(hardforkTrigger HardforkTrigger) Option

WithHardforkTrigger sets up a hardfork trigger

func WithHasher

func WithHasher(hasher hashing.Hasher) Option

WithHasher sets up the hasher option for the Node

func WithHeaderIntegrityVerifier

func WithHeaderIntegrityVerifier(headerIntegrityVerifier spos.HeaderIntegrityVerifier) Option

WithHeaderIntegrityVerifier sets up a header integrity verifier for the Node

func WithHeaderSigVerifier

func WithHeaderSigVerifier(headerSigVerifier spos.RandSeedVerifier) Option

WithHeaderSigVerifier sets up a header sig verifier for the Node

func WithHistoryRepository added in v0.0.2

func WithHistoryRepository(historyRepo fullHistory.HistoryRepository) Option

WithHistoryRepository sets up a history repository for the node

func WithIndexer

func WithIndexer(indexer indexer.Indexer) Option

WithIndexer sets up a indexer for the Node

func WithInitialNodesPubKeys

func WithInitialNodesPubKeys(pubKeys map[uint32][]string) Option

WithInitialNodesPubKeys sets up the initial nodes public key option for the Node

func WithInputAntifloodHandler

func WithInputAntifloodHandler(antifloodHandler P2PAntifloodHandler) Option

WithInputAntifloodHandler sets up an antiflood handler for the Node on the input side

func WithInterceptorsContainer

func WithInterceptorsContainer(interceptorsContainer process.InterceptorsContainer) Option

WithInterceptorsContainer sets up the interceptors container option for the Node

func WithInternalMarshalizer

func WithInternalMarshalizer(marshalizer marshal.Marshalizer, sizeCheckDelta uint32) Option

WithInternalMarshalizer sets up the marshalizer option for the Node

func WithKeyGen

func WithKeyGen(keyGen crypto.KeyGenerator) Option

WithKeyGen sets up the single sign key generator option for the Node

func WithKeyGenForAccounts

func WithKeyGenForAccounts(keyGenForAccounts crypto.KeyGenerator) Option

WithKeyGenForAccounts sets up the balances key generator option for the Node

func WithMessenger

func WithMessenger(mes P2PMessenger) Option

WithMessenger sets up the messenger option for the Node

func WithMinTransactionVersion

func WithMinTransactionVersion(minTransactionVersion uint32) Option

WithMinTransactionVersion sets up the minimum transaction version on which the current node is supposed to work on

func WithMultiSigner

func WithMultiSigner(multiSigner crypto.MultiSigner) Option

WithMultiSigner sets up the multiSigner option for the Node

func WithNetworkShardingCollector

func WithNetworkShardingCollector(networkShardingCollector NetworkShardingCollector) Option

WithNetworkShardingCollector sets up a network sharding updater for the Node

func WithNodeStopChannel

func WithNodeStopChannel(channel chan endProcess.ArgEndProcess) Option

WithNodeStopChannel sets up the channel which will handle closing the node

func WithNodesCoordinator

func WithNodesCoordinator(nodesCoordinator sharding.NodesCoordinator) Option

WithNodesCoordinator sets up the nodes coordinator

func WithPeerDenialEvaluator

func WithPeerDenialEvaluator(handler p2p.PeerDenialEvaluator) Option

WithPeerDenialEvaluator sets up a peer denial evaluator for the Node

func WithPeerHonestyHandler

func WithPeerHonestyHandler(peerHonestyHandler consensus.PeerHonestyHandler) Option

WithPeerHonestyHandler sets up a peer honesty handler for the Node

func WithPeerSignatureHandler added in v0.0.2

func WithPeerSignatureHandler(peerSignatureHandler crypto.PeerSignatureHandler) Option

WithPeerSignatureHandler sets up a peerSignatureHandler for the Node

func WithPendingMiniBlocksHandler

func WithPendingMiniBlocksHandler(pendingMiniBlocksHandler process.PendingMiniBlocksHandler) Option

WithPendingMiniBlocksHandler sets up the pending miniblocks handler for the Node

func WithPrivKey

func WithPrivKey(sk crypto.PrivateKey) Option

WithPrivKey sets up the multi sign private key option for the Node

func WithPubKey

func WithPubKey(pk crypto.PublicKey) Option

WithPubKey sets up the multi sign pub key option for the Node

func WithPublicKeySize

func WithPublicKeySize(publicKeySize int) Option

WithPublicKeySize sets up a publicKeySize option for the Node

func WithRequestHandler

func WithRequestHandler(requestHandler process.RequestHandler) Option

WithRequestHandler sets up the request handler for the Node

func WithRequestedItemsHandler

func WithRequestedItemsHandler(requestedItemsHandler dataRetriever.RequestedItemsHandler) Option

WithRequestedItemsHandler sets up a requested items handler for the Node

func WithResolversFinder

func WithResolversFinder(resolversFinder dataRetriever.ResolversFinder) Option

WithResolversFinder sets up the resolvers finder option for the Node

func WithRoundDuration

func WithRoundDuration(roundDuration uint64) Option

WithRoundDuration sets up the round duration option for the Node

func WithRounder

func WithRounder(rounder consensus.Rounder) Option

WithRounder sets up the rounder option for the Node

func WithShardCoordinator

func WithShardCoordinator(shardCoordinator sharding.Coordinator) Option

WithShardCoordinator sets up the shard coordinator for the Node

func WithSignatureSize

func WithSignatureSize(signatureSize int) Option

WithSignatureSize sets up a signatureSize option for the Node

func WithSingleSigner

func WithSingleSigner(singleSigner crypto.SingleSigner) Option

WithSingleSigner sets up a singleSigner option for the Node

func WithSyncer

func WithSyncer(syncer ntp.SyncTimer) Option

WithSyncer sets up the syncTimer option for the Node

func WithTxAccumulator

func WithTxAccumulator(accumulator Accumulator) Option

WithTxAccumulator sets up a transaction accumulator handler for the Node

func WithTxFeeHandler

func WithTxFeeHandler(feeHandler process.FeeHandler) Option

WithTxFeeHandler sets up the tx fee handler for the Node

func WithTxSignMarshalizer

func WithTxSignMarshalizer(marshalizer marshal.Marshalizer) Option

WithTxSignMarshalizer sets up the marshalizer used in transaction singning

func WithTxSingleSigner

func WithTxSingleSigner(txSingleSigner crypto.SingleSigner) Option

WithTxSingleSigner sets up a txSingleSigner option for the Node

func WithUint64ByteSliceConverter

func WithUint64ByteSliceConverter(converter typeConverters.Uint64ByteSliceConverter) Option

WithUint64ByteSliceConverter sets up the uint64 <-> []byte converter

func WithValidatorPubkeyConverter

func WithValidatorPubkeyConverter(pubkeyConverter core.PubkeyConverter) Option

WithValidatorPubkeyConverter sets up the validator public key converter adapter option for the Node

func WithValidatorStatistics

func WithValidatorStatistics(validatorStatistics process.ValidatorStatisticsProcessor) Option

WithValidatorStatistics sets up the validator statistics for the node

func WithValidatorsProvider

func WithValidatorsProvider(validatorsProvider process.ValidatorsProvider) Option

WithValidatorsProvider sets up the validators provider for the node

func WithVmMarshalizer

func WithVmMarshalizer(marshalizer marshal.Marshalizer) Option

WithVmMarshalizer sets up the marshalizer used in Vm communication (SC)

func WithWatchdogTimer

func WithWatchdogTimer(watchdog core.WatchdogTimer) Option

WithWatchdogTimer sets up a watchdog for the Node

func WithWhiteListHandler

func WithWhiteListHandler(whiteListHandler process.WhiteListHandler) Option

WithWhiteListHandler sets up a white list handler option

func WithWhiteListHandlerVerified

func WithWhiteListHandlerVerified(whiteListHandler process.WhiteListHandler) Option

WithWhiteListHandlerVerified sets up a white list handler option

type P2PAntifloodHandler

type P2PAntifloodHandler interface {
	CanProcessMessage(message p2p.MessageP2P, fromConnectedPeer core.PeerID) error
	CanProcessMessagesOnTopic(peer core.PeerID, topic string, numMessages uint32, totalSize uint64, sequence []byte) error
	ResetForTopic(topic string)
	SetMaxMessagesForTopic(topic string, maxNum uint32)
	ApplyConsensusSize(size int)
	BlacklistPeer(peer core.PeerID, reason string, duration time.Duration)
	IsInterfaceNil() bool
}

P2PAntifloodHandler defines the behavior of a component able to signal that the system is too busy (or flooded) processing p2p messages

type P2PMessenger

type P2PMessenger interface {
	io.Closer
	Bootstrap() error
	Broadcast(topic string, buff []byte)
	BroadcastOnChannel(channel string, topic string, buff []byte)
	BroadcastOnChannelBlocking(channel string, topic string, buff []byte) error
	CreateTopic(name string, createChannelForTopic bool) error
	HasTopic(name string) bool
	HasTopicValidator(name string) bool
	RegisterMessageProcessor(topic string, handler p2p.MessageProcessor) error
	PeerAddresses(pid core.PeerID) []string
	IsConnectedToTheNetwork() bool
	ID() core.PeerID
	Peers() []core.PeerID
	IsInterfaceNil() bool
}

P2PMessenger defines a subset of the p2p.Messenger interface

type Throttler

type Throttler interface {
	CanProcess() bool
	StartProcessing()
	EndProcessing()
	IsInterfaceNil() bool
}

Throttler can monitor the number of the currently running go routines

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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