Modules

Structs

  • | A UTXO entry. | | Serialized format: | | - VARINT((coinbase ? 1 : 0) | (height << 1)) | | - the non-spent CTxOut (via TxOutCompression) |
  • | A Coin in one level of the coins database | caching hierarchy. | | A coin can either be: | | - unspent or spent (in which case the | Coin object will be nulled out - see Coin.Clear()) | | - DIRTY or not DIRTY | | - FRESH or not FRESH | | Out of these 2^3 = 8 states, only some | combinations are valid: | | - unspent, FRESH, DIRTY (e.g. a new coin | created in the cache) | | - unspent, not FRESH, DIRTY (e.g. a coin | changed in the cache during a reorg) | | - unspent, not FRESH, not DIRTY (e.g. | an unspent coin fetched from the parent | cache) | | - spent, FRESH, not DIRTY (e.g. a spent | coin fetched from the parent cache) | | - spent, not FRESH, DIRTY (e.g. a coin | is spent and spentness needs to be flushed | to the parent) |
  • | CoinsView backed by another CoinsView |
  • | CoinsView that adds a memory cache for | transactions to another CoinsView | | By deleting the copy constructor, we | prevent accidentally using it when | one intends to create a cache on top of | a base cache. |
  • | Cursor for iterating over CoinsView | state |
  • | CCoinsView backed by the coin database | (chainstate/) |
  • | Specialization of CCoinsViewCursor | to iterate over a CCoinsViewDB |
  • | This is a minimally invasive approach | to shutdown on LevelDB read errors from | the chainstate, while keeping user | interface out of the common library, | which is shared between bitcoind, and | bitcoin-qt and non-server tools. | | Writes do not need similar protection, | as failure to write is handled by the | caller. |
  • | A convenience class for constructing | the CCoinsView* hierarchy used to facilitate | access to the UTXO set. | | This class consists of an arrangement | of layered CCoinsView objects, preferring | to store and retrieve coins in memory | via m_cacheview but ultimately falling | back on cache misses to the canonical | store of UTXOs on disk, m_dbview. |
  • | Legacy class to deserialize pre-pertxout | database entries without reindex. |

Enums

Constants

Traits

Functions

  • | Utility function to find any unspent output | with a given txid. | | This function can be quite expensive because in | the event of a transaction which is not found | in the cache, it can cause up to | MAX_OUTPUTS_PER_BLOCK lookups to database, so | it should be used with care.
  • | Utility function to add all of a transaction’s | outputs to a cache. | | When check is false, this assumes that | overwrites are only possible for coinbase | transactions. | | When check is true, the underlying view may be | queried to determine whether an addition is an | overwrite. | | TODO: pass in a boolean to limit these possible | overwrites to known (pre-BIP34) cases.

Type Definitions