I'm currently using the ethereumjs libraries (https://github.com/ethereumjs) to iterate over the blockchain, replay transactions and read the state trie of a contract from the geth leveldb.
Currently I'm iterating over the blockchain sequentially to find state changes of the contract.
Is there any way to only find blocks where state changes occurred? Maybe through the state trie references depicted here (How Ethereum state tree is formed?)?
I know there could be a way using bloom filters if the contract produces logs but what if not? (correct me if I am wrong with this statement)