Skip to content

State update model #440

Open
Open
@MatejVukosav

Description

@MatejVukosav

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions