The node must be able to run with fixed storage requirements despite the chain growing infinitely. This requires quite a major restructure of how TinyCash operates.
A "full node" service is required to provide the required info to wallets. This will run outside the emulator but still consume messages from the host chain
The RollApp should have a minimal state comprised of:
tip height
tip block hash
Sliding window of N most recent commitment and nullifier tree roots
In Zebra nullifiers are stored in a set which is always increasing. It we want constant state need to implement a Sparse Merkle Tree or another data structure that allows proofs of non-inclusion as the nullifier set.
The node must be able to run with fixed storage requirements despite the chain growing infinitely. This requires quite a major restructure of how TinyCash operates.
In Zebra nullifiers are stored in a set which is always increasing. It we want constant state need to implement a Sparse Merkle Tree or another data structure that allows proofs of non-inclusion as the nullifier set.