Fri May 12, 2017 7:36 pm
The spent tree differs from the blockchain in that it only traces the transaction graph without information on the transactions. With this,
double spends can be detected.
It requires only 64 bit per transaction + 64 bit per input for a total of about 6gb, needed only to check double spents
Not much memory is used, because only the tail of the spend-tree is normally addresses (as memory mapped files). The rarely used early parts are not loaded into memory. The fact that it is ordered as the blockchain itself makes it highly cache efficient.
It is true that the spent tree uses this memory *in addition* to the need to access outputs for script verification, but as this normally occurs "in-between-blocks" this is much less stringent.