Description
Discussed in https://github.com/orgs/calimero-network/discussions/436
Originally posted by miraclx May 12, 2024
At the moment of writing we're broadcasting transactions and hoping for eventual state equivalence on N peers just from that transaction.
Factoring local non-determinism due to #190, the question arises of:
what's a better model? broadcasting the state diff after an update with a proof, or keeping with the transaction execution model.
The state diff would mean you don't have to re-execute the transaction on your end, you just apply the diff on ideally, a CRDT tree representing the contract state (#186)
The downside though, I think. Is there's a chance the weight of the state diff might be much, much more than just the state transition.
#199 exists as a model for keeping the state transition small, can't say the same for the state diff. Worth thinking about.
And with regards to non-determinism, this means we don't have the issue highlighted in #271 since you adopt the state instead of recomputing on non-deterministic data.