Bitcoin ABC 0.26.3
P2P Digital Currency
|
A Coin in one level of the coins database caching hierarchy. More...
#include <coins.h>
Public Types | |
enum | Flags { DIRTY = (1 << 0) , FRESH = (1 << 1) } |
Public Member Functions | |
CCoinsCacheEntry () | |
CCoinsCacheEntry (Coin coinIn) | |
CCoinsCacheEntry (Coin &&coin_, uint8_t flag) | |
Public Attributes | |
Coin | coin |
uint8_t | flags |
A Coin in one level of the coins database caching hierarchy.
A coin can either be:
Out of these 2^3 = 8 states, only some combinations are valid:
Enumerator | |
---|---|
DIRTY | DIRTY means the CCoinsCacheEntry is potentially different from the version in the parent cache. Failure to mark a coin as DIRTY when it is potentially different from the parent cache will cause a consensus failure, since the coin's state won't get written to the parent when the cache is flushed. |
FRESH | FRESH means the parent cache does not have this coin or that it is a spent coin in the parent cache. If a FRESH coin in the cache is later spent, it can be deleted entirely and doesn't ever need to be flushed to the parent. This is a performance optimization. Marking a coin as FRESH when it exists unspent in the parent cache will cause a consensus failure, since it might not be deleted from the parent when this cache is flushed. |
|
inlineexplicit |