As I understand it, lightwallets are inherently difficult for CryptNote currencies because the wallet has to scan every block in the blockchain. This means they can't just request block headers to verify the chain and use bloom filter requests to request certain blocks with their transactions. Is this correct?
What is the best case scenario for an SPV style library then?
If a user is importing an older wallet will they just have to scan the entire blockchain? Or, can they sync all headers then just request the blocks they need using bloom filters or a similar technique?
I've heard some discussion about workarounds to allow sending txs from a lightwallet (request a random subset of TX outputs to be able to mix with). However, I'm more curious about how difficult and what limitations exist with regards to just syncing a wallet in SPV mode.
As an aside, MoneroJ would be an excellent name for a Monero Java library.