-
Notifications
You must be signed in to change notification settings - Fork 208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
API for deleting StorageNodes #7405
Comments
Question: Is there a need for recursive delete, or just a single storage node? |
@michaelfig @gibson042, thinking about this, should a |
Ugh, that would bring in all kinds of complexity (e.g., write then delete then write again). I'd really prefer to keep stomping on any writes that precede |
I'm really concerned that contract code does not have the concept of what the block boundary is, and they may expect the write performed in a previous delivery, but executed in the same block, to be visible off-chain. |
Keep in mind that basically every write is accompanied by a I may be convinced to handle |
First, a clarification. My understanding is that vstorage has 2 features:
vstorage accomplishes the first by offering a I believe that a node should not switch semantics over time. If a node has I would expect that a deletion of a Then there is the question of intent for a delete of an append node. I think that's where my previous observation comes in that we could optimize our storage cost by actually removing the cell in the subsequent block (if the last value of the cell is a deletion). From what I understand of the vstorage model, we could theoretically generalize this and always rewrite all cell nodes that were just updated the previous block to the latest value from the cell only (low level write, without events generated), but given how an IAVL DB works, that may actually be counter productive. |
What is the Problem Being Solved?
Once a StorageNode is made, there's no clear way to delete it from RPC. #5945 describes
setValue(undefined)
but that will only delete ifsequence: set
whereas the contracts all usesequence: append
presently.Description of the Design
An API method to delete the node.
A way to trigger that from a wrapping
Recorder
.Security Considerations
Scaling Considerations
Test Plan
The text was updated successfully, but these errors were encountered: