Um eine neue Transaktion zu prüfen, muss eine Node wissen, welche Coins gerade existieren. Bitcoin Core hält diese Antwort – das UTXO-Set – in einer LevelDB-Datenbank im Ordner chainstate seines Datenverzeichnisses.
Was jeder Eintrag hält
Für jeden unspent Output: seinen Outpoint, Betrag, Locking-Script, die Höhe des erzeugenden Blocks und ob er aus einer Coinbase-Transaktion stammt.
Speicher-Cache
Lesen von der Platte ist langsam, daher bleiben kürzlich genutzte Coins im RAM. Die Einstellung -dbcache steuert diesen Cache. Bitcoin Core 31.0 hob den Default von 450 MiB auf 1.024 MiB auf Systemen mit mindestens 4.096 MiB RAM.
Getrennt von Blöcken
Rohblöcke liegen im Ordner blocks. Eine pruned Node kann alte Blöcke löschen, muss aber den vollen Chainstate behalten, weil sie dagegen validiert.