-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Update EIP-7830: Move to Review #9265
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,7 @@ title: Contract size limit increase for EOF | |
description: Raise the limit for only EOF contracts to 64 KiB | ||
author: Alex Beregszaszi (@axic), Danno Ferrin (@shemnon) | ||
discussions-to: https://ethereum-magicians.org/t/eip-7830-contract-size-limit-increase-for-eof/21927 | ||
status: Draft | ||
status: Review | ||
type: Standards Track | ||
category: Core | ||
created: 2024-11-29 | ||
|
@@ -29,8 +29,6 @@ Storage cost is already paid per contract byte. | |
|
||
[EIP-170](./eip-170.md) specifies `MAX_CODE_SIZE` as 24576 bytes, and [EIP-3860](./eip-3860.md) specifies `MAX_INITCODE_SIZE` as `2 * MAX_CODE_SIZE` (49152 bytes). | ||
|
||
<!-- TODO: if profiling analysis shows we need to charge more for EOF analysis, this is where we can specify it. Either globally or for 0xef00 contracs --> | ||
|
||
Starting `FORK_BLOCK`, for EOF initcode/code (code starting with the `0xEF 0x00` bytes) the limit is changed:`MAX_CODE_SIZE` is set to 65536 bytes (64 KiB). This means `MAX_INITCODE_SIZE` becomes 131072 bytes (128 KiB). | ||
|
||
## Rationale | ||
|
@@ -60,16 +58,12 @@ A simple analysis shows contract deployements for 64 KiB contracts to be between | |
|
||
Note that the Max 30M gas contract size of 135 KiB is outside the limits of what is proposed in this EIP and is included to show what it would take to exceed current gas limits. | ||
|
||
<!-- https://docs.google.com/spreadsheets/d/1C2dd5sVnZNKXOpRknHhxt6MnTTN50c3b9d6ZU2rvqDQ/edit?usp=sharing --> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @shemnon this is not accessible. If you want to make it public, can you post it on the magicians thread? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Made viewable, but being in a comment it will be deleted when going to final/last call. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It actually needs to deleted now going into review. Hence why I asked to post it on the magicians thread if it is still relevant. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's posted to the thread, you can delete. |
||
|
||
## Backwards Compatibility | ||
|
||
This is a backwards compatible change. Existing contracts are unaffected, and only new deployments see the effect. | ||
|
||
## Security Considerations | ||
|
||
<!-- TODO --> | ||
|
||
Given the analysis cost is paid as part of deployment, the size of contract should have no effect on the runtime. | ||
|
||
A more thorough analysis may be needed to detemine whether the proposed limit poses any risk because of client storage architectures. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shemnon @chfast @gumb0 do we expect more cost for EOF analysis? I doubt.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We haven't measured this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reminder: validation is only performed when a contract is brought in via a transaction. A factory create from an existing contract has no validation burden.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tracked in ipsilon/eof#175