After developing my overflow project I got a couple of corner case questions about shared objects and how accessing them affects the transaction in consensus.
if a tx attempts to call a method on a shared object, but that tx aborts (failed assert!() e.g.). that will count for the congestion thingy of the consensus protocol?
I’m asking bc if it does it would be something to take into account since it opens a vector attack “DDoS”-like to shared objects. (e.g. public methods on share objects that requires a capability but checks some field inside the capability, like KioskCap works)
And the second question:
A function does access a shared object. But e.g. it only will truly access it on an if statement, if a certain condition is met. Will the the object be considered as accessed by consensus every time the function is called, or only when the execution of the function actually mutates the shared resource?
Cheers!