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

Breakout room meetings #1228

Merged
merged 30 commits into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
f57b1c8
Update Meeting 05.md
darkfire-rain Dec 22, 2024
3357473
Update Meeting 08.md
darkfire-rain Dec 22, 2024
d9b65fd
Create Meeting 55.md
darkfire-rain Dec 22, 2024
1cd796b
EOF implementer meetings
darkfire-rain Dec 22, 2024
71c322b
Update Meeting 63.md
darkfire-rain Dec 22, 2024
cb602d3
Create EOF-pm.md
darkfire-rain Dec 22, 2024
d5a7849
Update Meeting 12.md
darkfire-rain Dec 24, 2024
6ccd55f
Update Meeting 11.md
darkfire-rain Dec 24, 2024
49be50d
Update Meeting 09.md
darkfire-rain Dec 24, 2024
3c36e11
Update Meeting 10.md
darkfire-rain Dec 24, 2024
ff61c0f
Update Meeting 08.md
darkfire-rain Dec 24, 2024
42669e1
Update Meeting 07.md
darkfire-rain Dec 24, 2024
55769b0
Update Meeting 06.md
darkfire-rain Dec 24, 2024
7778415
Update Meeting 05.md
darkfire-rain Dec 24, 2024
5759087
Update Meeting 04.md
darkfire-rain Dec 24, 2024
f130e2a
Update Meeting 03.md
darkfire-rain Dec 24, 2024
debf932
Update Meeting 02.md
darkfire-rain Dec 24, 2024
cea68cb
Update FutureEOA-AA-pm.md
darkfire-rain Dec 24, 2024
bcc334f
Meetings 3-6
darkfire-rain Dec 25, 2024
7dd879f
Update FutureEOA-AA-pm.md
darkfire-rain Dec 25, 2024
979808e
Verkle meetings 23 & 24
darkfire-rain Dec 29, 2024
a72d8a4
Update README.md
darkfire-rain Dec 29, 2024
da39fd9
Create Meeting 25.md
darkfire-rain Dec 29, 2024
53715a5
Meetings 26 & 28
darkfire-rain Dec 29, 2024
5d078d9
Create README.md
darkfire-rain Dec 29, 2024
d66ddd4
Update README.md
darkfire-rain Dec 29, 2024
ef01687
Update README.md
darkfire-rain Dec 29, 2024
f2ec069
Update Meeting 56.md
darkfire-rain Dec 29, 2024
59dbd5a
Update Meeting 57.md
darkfire-rain Dec 29, 2024
d981ba8
Create README.md
darkfire-rain Dec 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions Breakout-Room-Meetings/EOF-pm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# EOF

## Overview

The Ethereum Object Format (EOF) represents a transformative update to the Ethereum Virtual Machine (EVM) bytecode structure. Designed to enhance the efficiency, security, and modularity of smart contracts, EOF restructures how smart contract bytecode is organized. This upgrade addresses traditional limitations of the bytecode format, aiming to make contracts more manageable and secure.

| # | Date | Agenda | Recording | Notes |
| -- | --| -- | -- | -- |
|63| December 17, 2024 | [Agenda](https://github.com/ethereum/pm/issues/1205) | [Recording](https://youtu.be/2Z5YPfOnb74) | [Notes](https://github.com/darkfire-rain/pm/blob/master/Breakout-Room-Meetings/EOF/Meeting%2063.md)|
|62| November 27, 2024 | [Agenda](https://github.com/ethereum/pm/issues/1192) | [Recording](https://youtu.be/yzYUWpa-1QM) | [Notes](https://github.com/darkfire-rain/pm/blob/master/Breakout-Room-Meetings/EOF/Meeting%2062.md)|
|61| October 30, 2024 | [Agenda](https://github.com/ethereum/pm/issues/1184) | [Recording](https://youtu.be/kBQoRdBg4Vg) | [Notes](https://github.com/darkfire-rain/pm/blob/master/Breakout-Room-Meetings/EOF/Meeting%2061.md)|
|60| October 16, 2024 | [Agenda](https://github.com/ethereum/pm/issues/1167) | [Recording](https://youtu.be/FLtlemN2W8w) | [Notes](https://github.com/darkfire-rain/pm/blob/master/Breakout-Room-Meetings/EOF/Meeting%2060.md)|
|59| October 02, 2024 | [Agenda](https://github.com/ethereum/pm/issues/1162) | [Recording](https://youtu.be/TjZv8DMZka4) | [Notes](https://github.com/darkfire-rain/pm/blob/master/Breakout-Room-Meetings/EOF/Meeting%2059.md)|
|58| September 18, 2024 | [Agenda](https://github.com/ethereum/pm/issues/1146) | [Recording](https://youtu.be/MSuxLswMkXA) | [Notes](https://github.com/darkfire-rain/pm/blob/master/Breakout-Room-Meetings/EOF/Meeting%2058.md)|
|57| September 04, 2024 | [Agenda](https://github.com/ethereum/pm/issues/1138) | [Recording](https://youtu.be/7wFucExQb7U) | [Notes](https://github.com/darkfire-rain/pm/blob/master/Breakout-Room-Meetings/EOF/Meeting%2057.md)|
|56| August 21, 2024 | [Agenda](https://github.com/ethereum/pm/issues/1128) | [Recording](https://www.youtube.com/watch?v=03Dkfpvw4Pc) | [Notes](https://github.com/darkfire-rain/pm/blob/master/Breakout-Room-Meetings/EOF/Meeting%2056.md)|
|55| July 24, 2024 | [Agenda](https://github.com/ethereum/pm/issues/1115) | [Recording](https://youtu.be/OaNJOoaeNNY) | [Notes](https://github.com/darkfire-rain/pm/blob/master/Breakout-Room-Meetings/EOF/Meeting%2055.md)|


62 changes: 62 additions & 0 deletions Breakout-Room-Meetings/EOF/Meeting 55.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# EOF implementers call 55

Note: this file is copied from [here](https://github.com/ethereum/pm/issues/1115#issuecomment-2273805574)

## Meeting info

Date: 2024.7.24

Agenda: https://github.com/ethereum/pm/issues/1115

YouTube video: https://youtu.be/OaNJOoaeNNY

## Notes

### Client updates

Discussed EOF container validation

some discussion about testing

### Compiler

need to finalize solidity PR (depends on an evmone release w/ EOF)

### Spec

Contract Detection
- Contracts can either disable safetransferfrom, or call out to another contract with legacy features to get the "isContract" question answered.
- "do nothing" is the most undoable, as we can add ISCONTRACT later. But we cannot do the return code changes.
- do nothing / fix later has momentum

Tracing changes
- There was discussion of process
- PC is zero to section
- Maybe shorter names for section
- Danno will write up a new EIP as a red herring, rather than modify 3155
- goEVM lab wants nomemory and nostack options (maybe just top of stack). Make this the default?

### Testing

Instead of Kurtosis we can use EEST consume
- Kurtosis's main gain is it's a full client setup
- EOF calls to the system contract would be valuable in Kurtosis. Withdrawals/deposts/other pectra calls
- Not valuable at the moment

Run every test via consume

EEST could produce Assertoors

Testing blindspots
- Need to update the checklist
- Quantify the testing progress for next ACDE
- Make sure all EIPs tests are in the testing checklist

Devnet
- We want fuzzing ready
- Do we need to be 100% for devnet?
- Client should pass fuzzing
- Clients should pass reference tests at 100% (EESTs and Ethereum/tests and evmone)
- 7702 will be dominating devnet testing
- Reth and Besu can join a devnet today (configuration wise)
- Need updates from Geth, Nethermind, EthJS, Erigon
58 changes: 58 additions & 0 deletions Breakout-Room-Meetings/EOF/Meeting 56.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# EOF Implementers call 56
Note: This file is copied from [here](https://github.com/ethereum/pm/issues/1128#issuecomment-2302428979)
## Meeting info

**Date**: 2024.08.21

**Agenda**: https://github.com/ethereum/pm/issues/1128

**YouTube Video**: https://www.youtube.com/watch?v=03Dkfpvw4Pc

## Notes

### Client and fuzzing updates

evmone found a bug that fuzzers couldn't find

besu had subcontainer container bugs found via evmon's tests a few weeks ago

Nethermind is re-writing their subcontainer validation to not be recursive

Reth and Geth were not present.

### Spec updates

community strongly wants a EXTCODESIZE/ISCONTRACT solution, Libs may not be happy with legacy "escape hatch" contracts rather than using EIP-165 introspections
- If AA is the reason not to proceed, a clear plan needs to be stated as to how the AA transition is expected to play out.

Delegate call into legacy call rule
- This may break proxies. (EOF proxies, proxying to a legacy contract)
- A detection of EOF vs legacy contract would be useful. EXTCODEHASH would identify EOF
- No opinion about 7702 proxy detection detection, can go with legacy treatment.


### Testing Readiness

With devnet-4 we need to activate on prague alone
- EEST will migrate to just "Prague" for tests,
- EEST will sunset "CancunEIP7692" and "Prague7692" forks
- Will change once 7702 tests are fully merged into tests
- Suddenly 7702 tests will work with EOF

New fixtures release 1.0.8 - Contains Both pragueEIP-7692 and Cancun7692

EOF Container Fuzzing
- EVMONE and Besu

EOF Execution fuzzing
- possibly goevmlab, guido vranken's fuzzer.


### Testing matrix

Devs, please update

Any automation interest?
- Maybe hive/consume?
- Still needs final consume setup in CI
- Consume does not run EOF Validation tests (because engine API is the test interface)
53 changes: 53 additions & 0 deletions Breakout-Room-Meetings/EOF/Meeting 57.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# EOF implementers call 57

Note: this file is copied from [here](https://github.com/ethereum/pm/issues/1138#issuecomment-2329428927)

## Meeting info

Date: 2024.09.04

Agenda: https://github.com/ethereum/pm/issues/1138

YouTube video: https://youtu.be/7wFucExQb7U

## Notes

clients and compilers - no non-test updates

switch to prague

mario discussed 7702/EOF testing features in EEST https://github.com/ethereum/execution-spec-tests/blob/eip-7702-devnet-3/tests/prague/eip7702_set_code_tx/test_set_code_txs.py

Fuzzing - no new updates

Discussed converting EOF format tests into format tests.

- Init containers need extra work, either double wrapping or need to declare deployed container format. Issues include appending data
- For automated testing we will move to assuming the container is deployed, and in cases where that isn't going to work we need to notate the tests with expected outputs

New release of legacy tests - invalid tests have been removed, or fixed, or moved to EEST. No new coverage -- all new coverage comes in EEST.

### ISCONTRACT

Legacy solidity will not easily be able to determine if it's EOF or Legacy, so the code may fail compiling to EOF. Old contracts will need new versions or alternates for EOF.

Most libraries depending on assembly would need to change for EOF anyway (any use of JUMP, CALL*, EXCODE* for example)

May be best solved in solidity? conditional compilation or new is_contract primitive? existing solidity PR Detect EVM version? existing solidity pr

Example: OpenZeppelin, Solady, Tycho do deep code interactions and have taken up to a year to implement.

Need to do outreach to the AA team, as they expressed concern on ACD that this may be problematic. (Piotr to reach out)


What is Erigon's status?
- Unknown status.


More on nethermind's status

- 7702 is in a different branch from EOF. 7702 will land in Nethermind master first.
- Will target prague in EOF branch
- Running published EEST fixtures.

New fixtures will be published this week. Need to fix an EEST bug relating to EXT*CALL opcodes.
99 changes: 99 additions & 0 deletions Breakout-Room-Meetings/EOF/Meeting 58.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# EOF implementers call 58

Note: this file is copied from [here](https://github.com/ethereum/pm/issues/1146#issuecomment-2358853729)

## Meeting info

Date: 2024.9.18

Agenda: https://github.com/ethereum/pm/issues/1146

YouTube video: https://youtu.be/MSuxLswMkXA

## Notes


### Client Discussion

Discussed Split

- pt 2 should follow w/in 3-6 months
- mild preference for one merge, but not enough to block
- concern about scope creep and moving actual shipment to 1 year

### Compiler Updates
None


### Specs

Tracing
- evmone will look into implementing, but may have changes to proposle

HASCODE/ISCONTRACT
Discussed AA concern in discord

AA is concerned about the pattern where non-eoa accounts are barred, HASCODE could be used to perpetuate that and
slow AA adoption

Also, 721 could be solved better with ERC-165 interface

counter: AA is slowed by lack of smart contract signatures

counter: Banning EOAs possible w/o HASCODE

No conclusion yet

Could pectra split allow it to be added in V1?

Some preference to be in a follow-on fork, but preference may have been driven by time to gather data

Split is because of EIP bloat, adding a new EIP would counter the solution

At least 1 client wants to include it for V1

Absence could slow adoption of EOF (Any ERC-721/ERC-1155 or flashloan project for example)

There is concern that 721 and 1155 are badly designed, and so this pattern won't re-occur. An update of 721 could
provide the same protections and conform to modern practices.

AA accounts could implement 165, but then they would have to have the 721 callbacks active.

See note below about EXTDELEGATE and proxies

EXTCALL return codes

intent

- 1 - gas was not burned as part of the violation
- User reverts
- Some failures related to call process
- 2 - all gas consumed as part of the failure
- Out of gas
- RETURNDATA copy oob in legacy
- static call violation
- data stack overflow

No action today

Allow EXTDELEGATECALL to legacy

- This is another use case for HASCODE, to ensure EOF proxies won't delegate to a legacy contract
- This could be solved with a "handshake" method or a trial delegate call

### Testing

PRs will be reviewed
7702 testing
- many clients were rejecting incorrectly
- execute mode in EEST can address this problem - uses JSON-RPC only to interact with node

### Bikeshedding
Can we rename types to stack-io in the spec? types was not terribly clear.
- stack-io
- section-info or section-spec
- code-info
- signature(s)


Standing agenda should move testing to the first items
40 changes: 40 additions & 0 deletions Breakout-Room-Meetings/EOF/Meeting 59.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# EOF implementers call 59

Note: this file is copied from [here](https://github.com/ethereum/pm/issues/1162#issuecomment-2388989786)

## Meeting info

Date: 2024.10.02

Agenda: https://github.com/ethereum/pm/issues/1162

YouTube video: https://youtu.be/TjZv8DMZka4

## Notes

Current release tests (EOF on top of prague) are broken
- Besu had a 7702 bug, all non-7702 tests are fine.
- Next release will be released after devnet 4 is released
- PR reviews are mostly caught up
- Testing focus is on devnet 4 for the next week

Compiler
- Vyper create from blueprint needs a re-work for EOF.
- Create form EXT Contract would have helped.
- Cannot blueprint off of any contract in EOF like you could in legacy
- A factory deployer would be good, delegate call into a contract that EOF creates. As opposed to an initcode only contract


Osaka Migration
- Clients need to target Osaka for EOF activation
- Tests need to target Osaka, including moving tests in source tree
- We have 6 more months to reifine the spec
- We can look into HASCODE
- We can reconsider EXT*CALL return code numbers
- cleanup: EOFCREATE stack order
- cleanup: Remove hashing of container in EOFCREATE
-cleanup: Rename RETURNCONTRACT to RETURNCODE

### Open questions

Implications of gas introspection: regarding a gas to eth EIP.
Loading