![]() |
PIVX Core
5.6.99
P2P Digital Currency
|
We will instantiate an instance of this class to track transactions that were included in a block. More...
#include <fees.h>
Public Member Functions | |
| void | Initialize (std::vector< double > &defaultBuckets, unsigned int maxConfirms, double decay) |
| Initialize the data structures. More... | |
| void | ClearCurrent (unsigned int nBlockHeight) |
| Clear the state of the curBlock variables to start counting for the new block. More... | |
| void | Record (int blocksToConfirm, double val) |
| Record a new transaction data point in the current block stats. More... | |
| unsigned int | NewTx (unsigned int nBlockHeight, double val) |
| Record a new transaction entering the mempool. More... | |
| void | removeTx (unsigned int entryHeight, unsigned int nBestSeenHeight, unsigned int bucketIndex) |
| Remove a transaction from mempool tracking stats. More... | |
| void | UpdateMovingAverages () |
| Update our estimates by decaying our historical moving average and updating with the data gathered from the current block. More... | |
| double | EstimateMedianVal (int confTarget, double sufficientTxVal, double minSuccess, bool requireGreater, unsigned int nBlockHeight) |
| Calculate a feerate estimate. More... | |
| unsigned int | GetMaxConfirms () |
| Return the max number of confirms we're tracking. More... | |
| void | Write (CAutoFile &fileout) |
| Write state of estimation data to a file. More... | |
| void | Read (CAutoFile &filein) |
| Read saved state of estimation data from a file and replace all internal data structures and variables with this state. More... | |
Private Attributes | |
| std::vector< double > | buckets |
| std::map< double, unsigned int > | bucketMap |
| std::vector< double > | txCtAvg |
| std::vector< int > | curBlockTxCt |
| std::vector< std::vector< double > > | confAvg |
| std::vector< std::vector< int > > | curBlockConf |
| std::vector< double > | avg |
| std::vector< double > | curBlockVal |
| double | decay {0.0} |
| std::vector< std::vector< int > > | unconfTxs |
| std::vector< int > | oldUnconfTxs |
We will instantiate an instance of this class to track transactions that were included in a block.
We will lump transactions into a bucket according to their approximate feerate and then track how long it took for those txs to be included in a block
The tracking of unconfirmed (mempool) transactions is completely independent of the historical tracking of transactions that have been confirmed in a block.
| void TxConfirmStats::ClearCurrent | ( | unsigned int | nBlockHeight | ) |
| double TxConfirmStats::EstimateMedianVal | ( | int | confTarget, |
| double | sufficientTxVal, | ||
| double | minSuccess, | ||
| bool | requireGreater, | ||
| unsigned int | nBlockHeight | ||
| ) |
Calculate a feerate estimate.
Find the lowest value bucket (or range of buckets to make sure we have enough data points) whose transactions still have sufficient likelihood of being confirmed within the target number of confirmations
| confTarget | target number of confirmations |
| sufficientTxVal | required average number of transactions per block in a bucket range |
| minSuccess | the success probability we require |
| requireGreater | return the lowest feerate such that all higher values pass minSuccess OR return the highest feerate such that all lower values fail minSuccess |
| nBlockHeight | the current block height |
Definition at line 76 of file fees.cpp.
|
inline |
| void TxConfirmStats::Initialize | ( | std::vector< double > & | defaultBuckets, |
| unsigned int | maxConfirms, | ||
| double | decay | ||
| ) |
Initialize the data structures.
This is called by BlockPolicyEstimator's constructor with default values.
| defaultBuckets | contains the upper limits for the bucket boundaries |
| maxConfirms | max number of confirms to track |
| decay | how much to decay the historical moving average per block |
| unsigned int TxConfirmStats::NewTx | ( | unsigned int | nBlockHeight, |
| double | val | ||
| ) |
| void TxConfirmStats::Read | ( | CAutoFile & | filein | ) |
| void TxConfirmStats::Record | ( | int | blocksToConfirm, |
| double | val | ||
| ) |
Record a new transaction data point in the current block stats.
| blocksToConfirm | the number of blocks it took this transaction to confirm |
| val | the feerate of the transaction |
Definition at line 52 of file fees.cpp.
| void TxConfirmStats::removeTx | ( | unsigned int | entryHeight, |
| unsigned int | nBestSeenHeight, | ||
| unsigned int | bucketIndex | ||
| ) |
| void TxConfirmStats::UpdateMovingAverages | ( | ) |
| void TxConfirmStats::Write | ( | CAutoFile & | fileout | ) |
|
private |
|
private |
|
private |
|
private |