Bitcoin ABC 0.33.1
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/stakecontender.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 <txmempool.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
 
struct  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

namespace  avalanche
 

Typedefs

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

Enumerations

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

Variables

static constexpr size_t DEFAULT_AVALANCHE_MAX_ELEMENT_POLL = 1024
 Maximum item that can be polled at once. More...
 
static constexpr size_t AVALANCHE_MAX_ELEMENT_POLL_LEGACY = 16
 Legacy maximum element poll. More...
 
static constexpr size_t AVALANCHE_CONTENDER_MAX_POLLABLE = 12
 Maximum number of stake contenders to poll for, leaving room for polling blocks and proofs in the same poll message. 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_CONTENDER_MAX_POLLABLE

constexpr size_t AVALANCHE_CONTENDER_MAX_POLLABLE = 12
staticconstexpr

Maximum number of stake contenders to poll for, leaving room for polling blocks and proofs in the same poll message.

Definition at line 69 of file processor.h.

◆ 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 74 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 85 of file processor.h.

◆ AVALANCHE_MAX_ELEMENT_POLL_LEGACY

constexpr size_t AVALANCHE_MAX_ELEMENT_POLL_LEGACY = 16
staticconstexpr

Legacy maximum element poll.

TODO: remove after there is no node left on protocol version before AVALANCHE_MAX_ELEMENT_BUMP_VERSION.

Definition at line 63 of file processor.h.

◆ DEFAULT_AVALANCHE_MAX_ELEMENT_POLL

constexpr size_t DEFAULT_AVALANCHE_MAX_ELEMENT_POLL = 1024
staticconstexpr

Maximum item that can be polled at once.

Can be overridden by the -avamaxelementpoll option.

Definition at line 55 of file processor.h.