Open imalygin opened 1 week ago
We discussed at DevCon that this State Module may also need to include the management of states similarly to the SwirldStateManager
which keeps a thread-safe reference to the mutable state and the latest immutable state, but more than that. It could include logic that does things like ensure that only a single loaded state is mutable and that it is always the latest one even if the user of the module loads another, older state from disk.
This is the logical continuation of the Public Merkle API initiative (#10988). Also, it overlaps with #14772.
Currently, a Block node would have to not only use the
swirlds-state-api
module but alsoswirlds-platform-core
as a dependency, which, in turn, contains functionality that is not relevant in the context of the state (consensus, gossip, transaction handling).We need a State module that has not only a set of API interfaces but also all the necessary implementations to represent the full Merkle state.