What are differences between MemoryBlockStore and SPVBlockStore in bitcoinj?
Which should be used for downloading the blockchain and why?
Can I use same SPVChain format file for all wallets?
MemoryBlockStore keeps StoredBlocks in memory and it is used primarily for unit testing.
Whereas SPVBlockStore holds a limited number of block headers in a memory mapped ring buffer. With such a store, you may not be able to process very deep re-orgs and could be disconnected from the chain (requiring a replay), but as they are virtually unheard of this is not a significant risk. You can find the reference document from the following link: