Skip to content
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

Add Support for EIP-1153 (Transient Storage) in the FEVM (FIP-0097) #1084

Merged
merged 19 commits into from
Dec 11, 2024

Conversation

snissn
Copy link
Contributor

@snissn snissn commented Nov 23, 2024

Abstract

EIP-1153 defines transient storage as temporary data accessible only during the originating transaction, cleared automatically at the end of the transaction. This FIP adapts transient storage to the FEVM using TLOAD and TSTORE opcodes, ensuring compatibility with Ethereum contracts and libraries that rely on this feature. Lifecycle validation mechanisms enforce the transaction-scoped behavior of transient storage, achieving functional equivalence with Ethereum’s implementation and seamless integration with Filecoin’s architecture.

Discussion:

- Introduces support for EIP-1153: Transient Storage in the FEVM
- Details lifecycle validation and implementation using `TLOAD` and `TSTORE`
- Ensures compatibility with Ethereum contracts and tooling
- Includes specifications, rationale, and considerations for adoption
Copy link
Member

@rvagg rvagg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 excellent; just some inline notes about some things I think are missing from here

@snissn
Copy link
Contributor Author

snissn commented Nov 25, 2024

Thanks for the comments @rvagg ! Your feedback helps clarify many important aspects of this FIP and leaves to a more robust proposal overall! I got a little "nerd sniped" by the solidity version relationship to this FIP, and hope I didn't get too nuanced and abstract! Please share any additional comments and feedback to ensure all of your requests and ideas have been addressed and accommodated! Thanks again!

@luckyparadise
Copy link
Collaborator

@snissn one nit question I have is using "ephemeral" and "transient". Do they mean the same thing in the context of the FIP or do they mean separate concepts?

Copy link
Member

@jsoares jsoares left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nothing substantive to add to @rvagg's excellent feedback. Provided the outstanding comments are addressed, this looks good to go.

@jsoares
Copy link
Member

jsoares commented Nov 28, 2024

Assigning FIP-0097. Please update PR title, filename, front matter, and readme.

@snissn
Copy link
Contributor Author

snissn commented Dec 5, 2024

@luckyparadise thanks for your question! Reviewing the writing I see that the word usage of ephemeral can be creating confusion witihout adding much to the document.

Transient storage is the technical term that has technical meaning. My intention behind my usage of ephemeral in this FIP write up was to be a descriptive term that doesn't insist on a precise technical purpose per se. I think it's an attempt I made to create a category for memory data and transient data that would be separate from storage data..

I think I can just delete the three instances of the word ephemeral in the FIP write up and it removes ambiguity and nothing is lost. Changed here b69533d

@snissn snissn requested a review from rvagg December 10, 2024 21:22
@anorth anorth changed the title Add Support for EIP-1153 (Transient Storage) in the FEVM Add Support for EIP-1153 (Transient Storage) in the FEVM (FIP-0097) Dec 11, 2024
Copy link
Member

@anorth anorth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Editorial 👍

@rvagg rvagg merged commit a616239 into filecoin-project:master Dec 11, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants