Bitcoin ABC  0.29.2
P2P Digital Currency
Classes | Namespaces | Typedefs | Enumerations | Variables
processor.h File Reference
#include <avalanche/config.h>
#include <avalanche/node.h>
#include <avalanche/proof.h>
#include <avalanche/proofcomparator.h>
#include <avalanche/protocol.h>
#include <avalanche/voterecord.h>
#include <blockindex.h>
#include <blockindexcomparators.h>
#include <common/bloom.h>
#include <eventloop.h>
#include <interfaces/chain.h>
#include <interfaces/handler.h>
#include <key.h>
#include <net.h>
#include <primitives/transaction.h>
#include <rwcollection.h>
#include <util/variant.h>
#include <validationinterface.h>
#include <boost/multi_index/composite_key.hpp>
#include <boost/multi_index/hashed_index.hpp>
#include <boost/multi_index/member.hpp>
#include <boost/multi_index/ordered_index.hpp>
#include <boost/multi_index_container.hpp>
#include <atomic>
#include <chrono>
#include <cstdint>
#include <memory>
#include <unordered_map>
#include <variant>
#include <vector>
Include dependency graph for processor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  avalanche::VoteItemUpdate
 
class  avalanche::VoteMapComparator
 
struct  avalanche::query_timeout
 
class  avalanche::Processor
 
struct  avalanche::Processor::Query
 
struct  avalanche::Processor::StakingReward
 
struct  avalanche::Processor::IsWorthPolling
 
struct  avalanche::Processor::GetLocalAcceptance
 

Namespaces

 avalanche
 

Typedefs

using avalanche::AnyVoteItem = std::variant< const ProofRef, const CBlockIndex *, const CTransactionRef >
 
using avalanche::VoteMap = std::map< AnyVoteItem, VoteRecord, VoteMapComparator >
 

Enumerations

enum class  avalanche::VoteStatus : uint8_t {
  avalanche::Invalid , avalanche::Rejected , avalanche::Accepted , avalanche::Finalized ,
  avalanche::Stale
}
 

Variables

static constexpr size_t AVALANCHE_MAX_ELEMENT_POLL = 16
 Maximum item that can be polled at once. More...
 
static constexpr std::chrono::milliseconds AVALANCHE_DEFAULT_QUERY_TIMEOUT
 How long before we consider that a query timed out. More...
 
static constexpr uint32_t AVALANCHE_FINALIZED_ITEMS_FILTER_NUM_ELEMENTS
 The size of the finalized items filter. More...
 

Variable Documentation

◆ AVALANCHE_DEFAULT_QUERY_TIMEOUT

constexpr std::chrono::milliseconds AVALANCHE_DEFAULT_QUERY_TIMEOUT
staticconstexpr
Initial value:
{
10000}

How long before we consider that a query timed out.

Definition at line 57 of file processor.h.

◆ AVALANCHE_FINALIZED_ITEMS_FILTER_NUM_ELEMENTS

constexpr uint32_t AVALANCHE_FINALIZED_ITEMS_FILTER_NUM_ELEMENTS
staticconstexpr
Initial value:
=
static constexpr int AVALANCHE_MAX_INFLIGHT_POLL
How many inflight requests can exist for one item.
Definition: voterecord.h:40

The size of the finalized items filter.

It should be large enough that an influx of inventories cannot roll any particular item out of the filter on demand. For example, transactions will roll blocks out of the filter. Tracking many more items than can possibly be polled at once ensures that recently polled items will come to a stable state on the network before rolling out of the filter.

Definition at line 68 of file processor.h.

◆ AVALANCHE_MAX_ELEMENT_POLL

constexpr size_t AVALANCHE_MAX_ELEMENT_POLL = 16
staticconstexpr

Maximum item that can be polled at once.

Definition at line 52 of file processor.h.