Replies: 5 comments 14 replies
-
To further complicate the matters: we can't do a part of the terminus-reaction/graph-restructuring/maintenance anytime before the terminus (to split the overall work in several batches), because any tx in the blocks starting from this time (when we're, supposedly, partially re-evaluating/re-structuring the graph) and until the block right at/past the terminus could, potentially, render all of this "preliminary" work 1) useless and 2) incorrect (e.g. by someone creating a Stream towards an address which would've, otherwise, become insolvent at the terminus time in question).
Sounds like the Ethereum-like blockchains are, practically, living off of hope that no contract of such size will (intentionally or not) Do you happen to know Peter's take on this situation? If not, I'll ask this on StackExchange. Also, now, I wonder how big of a factor this is for the efforts invested in the swift deprecation of the |
Beta Was this translation helpful? Give feedback.
-
The The specific thing I'm brainstorming on is:
What if this termination wouldn't instantly result in an physical state change? Do we really have to physically terminate streams when What if we replicate our "hot/cold" status ideas from core and (1) we create a hot state for the stream (e.g. PREDICTED_AS_TERMINATED) and (2) a cold state (e.g. TERMINATED) which can be done again, by an incentivized state-optimizer-node at a later date. |
Beta Was this translation helpful? Give feedback.
-
Follow-on question to @razgraf and @IaroslavMazur: If the cold state will basically never be read in practice, then why bother with clearing the termini? Why not let them have stale values? For example, if my terminus was March 1, why should the SabVM client set it to zero? One reason is clearing state size. Another is the accuracy of Archive node data. What else? |
Beta Was this translation helpful? Give feedback.
-
Unfortunately, this cold<>state duality has (bad) implications for the efficiency of the subgraph traversal algorithm. Posted my findings here: |
Beta Was this translation helpful? Give feedback.
-
Massa is a non-EVM L1 that provides cron jobs via "autonomous" smart contracts that can self-execute themselves in the future. They've also bumped into this the same problem of scheduled task congestion. From their docs:
|
Beta Was this translation helpful? Give feedback.
-
The problem is thus:
My conversations with Peter Szilagyi let me believe that there is a similar risk with SELFDESTRUCT in the vanilla EVM. What would happen if a contract with a lot of stored state (such as Tether) would self-destruct? Deleting so much state from disk would take time, certainly more time than it takes to mine an EVM block.
More research needed.
Credits to @razgraf who pointed out this problem in offline conversations about SabVM, and to @IaroslavMazur who noticed it independently here.
Related: slide 12 in my Figma presentation
Beta Was this translation helpful? Give feedback.
All reactions