CatapultServer  v0.5.0.1 (Elephant)
DispatcherService.h
Go to the documentation of this file.
1 
21 #pragma once
23 
24 namespace catapult { namespace sync {
25 
29 }}
catapult::consumers::ReceiptValidationMode::Enabled
Enabled, generate and validate receipts.
catapult::config::NodeConfiguration::TransactionElementTraceInterval
uint32_t TransactionElementTraceInterval
Multiple of elements at which a transaction element should be traced through queue and completion.
Definition: NodeConfiguration.h:116
catapult::extensions::CreateUndoEntityObserver
std::unique_ptr< const observers::EntityObserver > CreateUndoEntityObserver(const plugins::PluginManager &manager)
Creates an undo entity observer using pluginManager.
Definition: PluginUtils.cpp:53
catapult::disruptor::ConsumerInput
Consumer input composed of a range of entities augmented with metadata.
Definition: ConsumerInput.h:30
catapult::extensions::ServiceRegistrarPhase::Post_Remote_Peers
Requires remote peers (and entity sinks) to be registered.
catapult::extensions::CreateExecutionConfiguration
chain::ExecutionConfiguration CreateExecutionConfiguration(const plugins::PluginManager &pluginManager)
Creates an execution configuration based on pluginManager.
Definition: ExecutionConfigurationFactory.cpp:27
catapult::sync::RollbackCounterType
RollbackCounterType
Rollback counter types.
Definition: RollbackStats.h:28
CATAPULT_LOG
#define CATAPULT_LOG(SEV)
Writes a log entry to the default logger with SEV severity.
Definition: Logging.h:340
catapult::model::BlockChainConfiguration::ShouldEnableVerifiableReceipts
bool ShouldEnableVerifiableReceipts
true if block chain should calculate receipts so that state changes are fully verifiable at each bloc...
Definition: BlockChainConfiguration.h:42
catapult::sync::AddSupplementalDataResiliency
void AddSupplementalDataResiliency(consumers::BlockChainSyncHandlers &syncHandlers, const config::CatapultDataDirectory &dataDirectory, const cache::CatapultCache &cache, const extensions::LocalNodeChainScore &score)
Updates syncHandlers to support supplemental data resiliency given dataDirectory, cache and score.
Definition: DispatcherSyncHandlers.cpp:47
ServiceRegistrar.h
NodeInteractionResult.h
catapult::extensions::AddDispatcherCounters
void AddDispatcherCounters(ServiceLocator &locator, const std::string &dispatcherName, const std::string &counterPrefix)
Adds dispatcher counters with prefix counterPrefix to locator for a dispatcher named dispatcherName.
Definition: DispatcherUtils.cpp:43
catapult::sync::CreateCommitStepHandler
consumers::BlockChainSyncHandlers::CommitStepFunc CreateCommitStepHandler(const config::CatapultDataDirectory &dataDirectory)
Creates a commit step handler around dataDirectory.
Definition: DispatcherSyncHandlers.cpp:31
catapult::utils::UniqueToShared
std::shared_ptr< T > UniqueToShared(std::unique_ptr< T > &&pointer)
Converts a unique pointer to a shared pointer of the same type.
Definition: MemoryUtils.h:47
catapult::extensions::ServiceState::cache
auto & cache() const
Gets the cache.
Definition: ServiceState.h:99
Parser.debug
def debug(*args)
Definition: Parser.py:46
catapult::model::BlockChainConfiguration
Block chain configuration settings.
Definition: BlockChainConfiguration.h:33
catapult::extensions::ServiceState::stateChangeSubscriber
auto & stateChangeSubscriber() const
Gets the state change subscriber.
Definition: ServiceState.h:134
BlockChainConfiguration.h
catapult::extensions::CreateBatchTransactionTask
thread::Task CreateBatchTransactionTask(TransactionBatchRangeDispatcher &dispatcher, const std::string &name)
Creates a task with name that dispatches all transactions batched in dispatcher.
Definition: DispatcherUtils.cpp:54
BlockDifficultyCache.h
catapult::consumers::BlockChainSyncHandlers::DifficultyChecker
DifficultyCheckerFunc DifficultyChecker
Checks all difficulties in a block chain for correctness.
Definition: BlockChainSyncHandlers.h:97
m_state
extensions::ServiceState & m_state
Definition: DispatcherService.cpp:226
catapult::disruptor
Definition: ConsumerUtils.h:25
UtUpdater.h
catapult::config::NodeConfiguration::ShouldAbortWhenDispatcherIsFull
bool ShouldAbortWhenDispatcherIsFull
true if the process should terminate when any dispatcher is full.
Definition: NodeConfiguration.h:119
AggregateEntityValidator.h
catapult::config::CatapultDataDirectory
Catapult data directory.
Definition: CatapultDataDirectory.h:61
catapult::consumers::CreateBlockChainCheckConsumer
disruptor::ConstBlockConsumer CreateBlockChainCheckConsumer(uint32_t maxChainSize, const utils::TimeSpan &maxBlockFutureTime, const chain::TimeSupplier &timeSupplier)
Definition: BlockChainCheckConsumer.cpp:91
ChainUtils.h
catapult::consumers::CreateBlockStatelessValidationConsumer
disruptor::ConstBlockConsumer CreateBlockStatelessValidationConsumer(const std::shared_ptr< const validators::stateless::AggregateEntityValidator > &pValidator, const std::shared_ptr< const validators::ParallelValidationPolicy > &pValidationPolicy, const RequiresValidationPredicate &requiresValidationPredicate)
Definition: StatelessValidationConsumer.cpp:65
Local
ionet::Node Local
Definition: tools/network/main.cpp:42
catapult::utils::TimeSpan::FromMilliseconds
static constexpr TimeSpan FromMilliseconds(uint64_t milliseconds)
Creates a time span from the given number of milliseconds.
Definition: TimeSpan.h:59
catapult::config::NodeConfiguration
Node configuration settings.
Definition: NodeConfiguration.h:33
BatchRangeDispatcher.h
ServiceLocator.h
BlockConsumers.h
catapult::consumers::CreateReclaimMemoryInspector
disruptor::DisruptorInspector CreateReclaimMemoryInspector()
Creates an inspector that reclaims memory.
Definition: ReclaimMemoryInspector.cpp:43
catapult::consumers::BlockChainSyncHandlers::Processor
BlockChainProcessor Processor
Processes (validates and executes) a block chain.
Definition: BlockChainSyncHandlers.h:100
catapult::consumers::CreateBlockChainSyncConsumer
disruptor::DisruptorConsumer CreateBlockChainSyncConsumer(cache::CatapultCache &cache, state::CatapultState &state, io::BlockStorageCache &storage, uint32_t maxRollbackBlocks, const BlockChainSyncHandlers &handlers)
Definition: BlockChainSyncConsumer.cpp:296
catapult::extensions::CreateHashCheckOptions
consumers::HashCheckOptions CreateHashCheckOptions(const utils::TimeSpan &cacheDuration, const config::NodeConfiguration &nodeConfig)
Creates hash check options based on cacheDuration and nodeConfig.
Definition: DispatcherUtils.cpp:30
catapult::sync::RollbackInfo::save
void save()
Adds counter to committed statistics and resets the counter.
Definition: RollbackInfo.cpp:49
catapult::extensions::IncrementNodeInteraction
void IncrementNodeInteraction(ionet::NodeContainer &nodes, const ionet::NodeInteractionResult &result)
Increments the interaction counter indicated by result in the node container (nodes).
Definition: NodeInteractionUtils.cpp:27
PluginUtils.h
CatapultDataDirectory.h
catapult::sync::RollbackInfo::reset
void reset()
Adds counter to ignored statistics and resets the counter.
Definition: RollbackInfo.cpp:42
catapult::consumers::ReceiptValidationMode
ReceiptValidationMode
Possible receipt validation modes.
Definition: BlockChainProcessor.h:71
catapult::disruptor::ConsumerDispatcherOptions::DispatcherName
const char * DispatcherName
Name of the dispatcher.
Definition: ConsumerDispatcherOptions.h:39
ExecutionConfigurationFactory.h
catapult::consumers::CreateNewBlockConsumer
disruptor::DisruptorConsumer CreateNewBlockConsumer(const NewBlockSink &newBlockSink, disruptor::InputSource sinkSourceMask)
catapult::consumers::CreateBlockHashCalculatorConsumer
disruptor::BlockConsumer CreateBlockHashCalculatorConsumer(const GenerationHash &generationHash, const model::TransactionRegistry &transactionRegistry)
Definition: HashCalculatorConsumer.cpp:72
catapult::sync::ToRequiresValidationPredicate
model::MatchingEntityPredicate ToRequiresValidationPredicate(const chain::KnownHashPredicate &knownHashPredicate)
Converts a known hash predicate (knownHashPredicate) to a requires validation predicate.
Definition: PredicateUtils.cpp:28
catapult::extensions::ServiceState::config
const auto & config() const
Gets the config.
Definition: ServiceState.h:89
catapult::disruptor::ConsumerDispatcherOptions
Consumer dispatcher options.
Definition: ConsumerDispatcherOptions.h:27
catapult::config::NodeConfiguration::TransactionDisruptorSize
uint32_t TransactionDisruptorSize
Size of the transaction disruptor circular buffer.
Definition: NodeConfiguration.h:113
catapult::consumers::CreateBlockChainProcessor
BlockChainProcessor CreateBlockChainProcessor(const BlockHitPredicateFactory &blockHitPredicateFactory, const chain::BatchEntityProcessor &batchEntityProcessor, ReceiptValidationMode receiptValidationMode)
Definition: BlockChainProcessor.cpp:190
catapult::chain::ExecutionConfiguration
Configuration for executing entities.
Definition: ExecutionConfiguration.h:30
catapult::consumers::CreateBlockHashCheckConsumer
disruptor::ConstBlockConsumer CreateBlockHashCheckConsumer(const chain::TimeSupplier &timeSupplier, const HashCheckOptions &options)
Definition: HashCheckConsumer.cpp:56
catapult::sync::RollbackInfo::increment
void increment()
Increments counter.
Definition: RollbackInfo.cpp:38
catapult::config::NodeConfiguration::BlockDisruptorSize
uint32_t BlockDisruptorSize
Size of the block disruptor circular buffer.
Definition: NodeConfiguration.h:107
BlockExecutor.h
catapult::chain::CreateBatchEntityProcessor
BatchEntityProcessor CreateBatchEntityProcessor(const ExecutionConfiguration &config)
Creates a batch entity processor around config.
Definition: BatchEntityProcessor.cpp:64
m_nodeConfig
const config::NodeConfiguration & m_nodeConfig
Definition: DispatcherService.cpp:227
catapult::extensions::SubscriberToSink
chain::FailedTransactionSink SubscriberToSink(subscribers::TransactionStatusSubscriber &subscriber)
Converts subscriber to a sink.
Definition: DispatcherUtils.cpp:37
TransactionStatusSubscriber.h
MemoryUtCache.h
RollbackInfo.h
DispatcherSyncHandlers.h
catapult::disruptor::DisruptorConsumersFromTransactionConsumers
std::vector< DisruptorConsumer > DisruptorConsumersFromTransactionConsumers(const std::vector< TransactionConsumer > &transactionConsumers)
Maps transactionConsumers to disruptor consumers so that they can be used to create a ConsumerDispatc...
Definition: DisruptorConsumer.cpp:50
catapult::consumers::BlockChainSyncHandlers
Handlers used by the block chain sync consumer.
Definition: BlockChainSyncHandlers.h:74
forwardsValidation.info
def info(*args)
Definition: forwardsValidation.py:12
catapult::extensions::ServiceState::score
auto & score() const
Gets the score.
Definition: ServiceState.h:114
NodeContainer.h
catapult::consumers::BlockChainSyncHandlers::StateChange
StateChangeFunc StateChange
Called with state change info to indicate a state change.
Definition: BlockChainSyncHandlers.h:106
catapult::extensions::CreateStatelessValidator
std::unique_ptr< const validators::stateless::AggregateEntityValidator > CreateStatelessValidator(const plugins::PluginManager &manager)
Creates an entity stateless validator using pluginManager.
Definition: PluginUtils.cpp:45
catapult::cache::CatapultCache
Central cache holding all sub caches.
Definition: CatapultCache.h:40
catapult::sync::RollbackResult
RollbackResult
Rollback results.
Definition: RollbackInfo.h:31
catapult::extensions::ServiceState
State that is used as part of service registration.
Definition: ServiceState.h:51
NodeInteractionUtils.h
BlockScorer.h
catapult::sync::RollbackInfo
Container for both committed and ignored rollback statistics.
Definition: RollbackInfo.h:40
PredicateUtils.h
MultiServicePool.h
catapult::consumers::UndoBlock
void UndoBlock(const model::BlockElement &blockElement, const chain::BlockExecutionContext &executionContext, UndoBlockType undoBlockType)
Undoes blockElement using the specified execution context (executionContext) for undo of specified ty...
Definition: UndoBlock.cpp:26
catapult::consumers::CreateTransactionHashCalculatorConsumer
disruptor::TransactionConsumer CreateTransactionHashCalculatorConsumer(const GenerationHash &generationHash, const model::TransactionRegistry &transactionRegistry)
Definition: HashCalculatorConsumer.cpp:103
DispatcherUtils.h
catapult::extensions::ServiceState::nodes
auto & nodes() const
Gets the nodes.
Definition: ServiceState.h:94
catapult::config::NodeConfiguration::ShouldAuditDispatcherInputs
bool ShouldAuditDispatcherInputs
true if all dispatcher inputs should be audited.
Definition: NodeConfiguration.h:122
catapult::consumers::BlockChainSyncHandlers::UndoBlock
UndoBlockFunc UndoBlock
Undoes a block and updates a cache.
Definition: BlockChainSyncHandlers.h:103
AccountStateCache.h
catapult::cache::AccountStateCache
Synchronized cache composed of stateful account information.
Definition: AccountStateCache.h:72
catapult::consumers
Definition: AuditConsumer.cpp:28
catapult::consumers::CreateTransactionHashCheckConsumer
disruptor::TransactionConsumer CreateTransactionHashCheckConsumer(const chain::TimeSupplier &timeSupplier, const HashCheckOptions &options, const chain::KnownHashPredicate &knownHashPredicate)
Definition: HashCheckConsumer.cpp:107
catapult::consumers::ReceiptValidationMode::Disabled
Disabled, skip validation of receipts.
catapult::extensions::ServiceState::hooks
const auto & hooks() const
Gets the server hooks.
Definition: ServiceState.h:170
ReadOnlyCatapultCache.h
catapult::consumers::BlockChainSyncHandlers::CommitStep
CommitStepFunc CommitStep
Called with the commit operation step.
Definition: BlockChainSyncHandlers.h:115
catapult::consumers::CreateBlockChainSyncCleanupConsumer
disruptor::ConstDisruptorConsumer CreateBlockChainSyncCleanupConsumer(const std::string &dataDirectory)
Creates a consumer that cleans up temporary state produced by the block chain sync consumer given dat...
Definition: BlockChainSyncCleanupConsumer.cpp:29
catapult::chain::TimeSupplier
supplier< Timestamp > TimeSupplier
Supplies a timestamp.
Definition: ChainFunctions.h:39
PluginManager.h
catapult::consumers::BlockChainProcessor
std::function< validators::ValidationResult(const WeakBlockInfo &, disruptor::BlockElements &, observers::ObserverState &)> BlockChainProcessor
Definition: BlockChainProcessor.h:62
catapult::consumers::BlockHitPredicateFactory
std::function< BlockHitPredicate(const cache::ReadOnlyCatapultCache &)> BlockHitPredicateFactory
A factory for creating a predicate for determining whether or not two blocks form a hit.
Definition: BlockChainProcessor.h:68
Node
ionet::Node Node
Definition: PacketWriters.cpp:45
UndoBlock.h
catapult
Definition: AddressExtractionExtension.cpp:28
LocalNodeChainScore.h
catapult::consumers::CreateNewTransactionsConsumer
disruptor::DisruptorConsumer CreateNewTransactionsConsumer(const NewTransactionsSink &newTransactionsSink)
Definition: NewTransactionsConsumer.cpp:79
m_consumers
std::vector< BlockConsumer > m_consumers
Definition: DispatcherService.cpp:228
catapult::sync::RollbackInfo::counter
size_t counter(RollbackResult rollbackResult, RollbackCounterType rollbackCounterType) const
Returns rollback counter for result (rollbackResult) and counter type (rollbackCounterType).
Definition: RollbackInfo.cpp:32
catapult::consumers::ToNodeInteractionResult
ionet::NodeInteractionResult ToNodeInteractionResult(const Key &sourcePublicKey, const disruptor::ConsumerCompletionResult &result)
Converts a consumer completion result to a node interaction result with public key sourcePublicKey.
Definition: ConsumerUtils.cpp:28
catapult::consumers::BlockChainSyncHandlers::PreStateWritten
PreStateWrittenFunc PreStateWritten
Called after state change but before state written checkpoint.
Definition: BlockChainSyncHandlers.h:109
catapult::config::NodeConfiguration::BlockElementTraceInterval
uint32_t BlockElementTraceInterval
Multiple of elements at which a block element should be traced through queue and completion.
Definition: NodeConfiguration.h:110
DispatcherService.h
catapult::model::CalculateFullRollbackDuration
utils::TimeSpan CalculateFullRollbackDuration(const BlockChainConfiguration &config)
Calculates the duration of a full rollback for the block chain described by config.
Definition: BlockChainConfiguration.cpp:109
DECLARE_SERVICE_REGISTRAR
#define DECLARE_SERVICE_REGISTRAR(NAME)
Declares a service registrar entry point with NAME.
Definition: ServiceRegistrar.h:61
catapult::extensions::ServiceState::transactionStatusSubscriber
auto & transactionStatusSubscriber() const
Gets the transaction status subscriber.
Definition: ServiceState.h:129
ImportanceView.h
catapult::sync::Dispatcher
DECLARE_SERVICE_REGISTRAR() Dispatcher()
Definition: DispatcherService.cpp:409
catapult::cache::BlockDifficultyCache
Synchronized cache composed of block difficulty information.
Definition: BlockDifficultyCache.h:45
catapult::validators::CreateParallelValidationPolicy
std::shared_ptr< const ParallelValidationPolicy > CreateParallelValidationPolicy(const std::shared_ptr< thread::IoThreadPool > &pPool)
Creates a parallel validation policy using pPool for parallelization.
Definition: ParallelValidationPolicy.cpp:190
catapult::sync::CreateUtUpdaterThrottle
chain::UtUpdater::Throttle CreateUtUpdaterThrottle(const config::CatapultConfiguration &config)
Creates a ut updater throttle based on config.
Definition: PredicateUtils.cpp:47
ConsumerUtils.h
catapult::extensions::ServiceState::pluginManager
const auto & pluginManager() const
Gets the plugin manager.
Definition: ServiceState.h:150
StateChangeSubscriber.h
catapult::consumers::BlockChainSyncHandlers::TransactionsChange
TransactionsChangeFunc TransactionsChange
Called with the hashes of confirmed transactions and the infos of reverted transactions when transact...
Definition: BlockChainSyncHandlers.h:112
catapult::consumers::CreateTransactionStatelessValidationConsumer
disruptor::TransactionConsumer CreateTransactionStatelessValidationConsumer(const std::shared_ptr< const validators::stateless::AggregateEntityValidator > &pValidator, const std::shared_ptr< const validators::ParallelValidationPolicy > &pValidationPolicy, const chain::FailedTransactionSink &failedTransactionSink)
Definition: StatelessValidationConsumer.cpp:77
catapult::consumers::CreateAuditConsumer
disruptor::ConstDisruptorConsumer CreateAuditConsumer(const std::string &auditDirectory)
Creates an audit consumer that saves all consumer inputs to auditDirectory.
Definition: AuditConsumer.cpp:69
ServiceState.h
catapult::cache::ReadOnlyCatapultCache
A read-only overlay on top of a catapult cache.
Definition: ReadOnlyCatapultCache.h:27
AuditConsumer.h
ReclaimMemoryInspector.h
catapult::cache::ImportanceView
A view on top of an account state cache for retrieving importances.
Definition: ImportanceView.h:29
catapult::consumers::BlockHitPredicate
predicate< const model::Block &, const model::Block &, const GenerationHash & > BlockHitPredicate
A predicate for determining whether or not two blocks form a hit.
Definition: BlockChainProcessor.h:65
catapult::extensions::ServiceState::timeSupplier
auto timeSupplier() const
Gets the time supplier.
Definition: ServiceState.h:124
TransactionConsumers.h
catapult::disruptor::DisruptorConsumersFromBlockConsumers
std::vector< DisruptorConsumer > DisruptorConsumersFromBlockConsumers(const std::vector< BlockConsumer > &blockConsumers)
Maps blockConsumers to disruptor consumers so that they can be used to create a ConsumerDispatcher.
Definition: DisruptorConsumer.cpp:44
catapult::chain::CheckDifficulties
size_t CheckDifficulties(const cache::BlockDifficultyCache &cache, const std::vector< const model::Block * > &blocks, const model::BlockChainConfiguration &config)
Definition: ChainUtils.cpp:57
catapult::cache::ImportanceView::getAccountImportanceOrDefault
Importance getAccountImportanceOrDefault(const Key &publicKey, Height height) const
Gets the importance for publicKey at height or a default importance if no importance is set.
Definition: ImportanceView.cpp:76