diff --git a/.github/ACDbot/meeting_topic_mapping.json b/.github/ACDbot/meeting_topic_mapping.json index 142a9ac0..eb336e23 100644 --- a/.github/ACDbot/meeting_topic_mapping.json +++ b/.github/ACDbot/meeting_topic_mapping.json @@ -93,7 +93,8 @@ "discourse_topic_id": 22896, "start_time": "2025-02-27T14:00:00Z", "duration": 90, - "issue_title": "Execution Layer Meeting 206", + "issue_number": 1306, + "issue_title": "All Core Devs - Execution (ACDE) #206, February 27, 2025", "Youtube_upload_processed": false, "transcript_processed": false, "upload_attempt_count": 0, diff --git a/Breakout-Room-Meetings/ETH-Simulate/EthSimulate-pm.md b/Breakout-Room-Meetings/ETH-Simulate/EthSimulate-pm.md new file mode 100644 index 00000000..f042f865 --- /dev/null +++ b/Breakout-Room-Meetings/ETH-Simulate/EthSimulate-pm.md @@ -0,0 +1,49 @@ +# Eth_Simulate Meeting + +## Purpose +This meeting is for the discussion of eth_simulateV1 implementation and potential eth_simulateV2 implementations. It focuses on discussing and prioritizing ideas for the next version of eth_simulate (eth_simulateV2). The goal is to refine the proposed features, evaluate their feasibility, and align on a roadmap for implementation. The team will also discuss technical challenges, potential improvements, and how these features can enhance the functionality and usability of eth_simulate. + +## Breakout Room Meetings + +| # | Date | Agenda | Recording | Notes | +| -- | --| -- | -- | -- | +| 38 |February 17, 2025| [Agenda](https://github.com/ethereum/pm/issues/1293) | [Recording](https://www.youtube.com/watch?v=Yer5Rue4M5s) | [Notes](https://github.com/ethereum/pm/issues/1293#issuecomment-2664759485) | +| 37 |February 10, 2025| [Agenda](https://github.com/ethereum/pm/issues/1278) | [Recording](https://youtu.be/YgU7S01PUZc?si=_Vj0Aa8YKnYXJq1C) | [Notes]([./Meeting%2063.md](https://github.com/ethereum/pm/issues/1278#issuecomment-2650875573)) | +| 36 |February 03, 2025| [Agenda](https://github.com/ethereum/pm/issues/1273) | [Recording](https://youtu.be/i2JBDF_MBVU?si=zBjWUwY4F_WfLzrw) | [Notes]([./Meeting%2063.md](https://github.com/ethereum/pm/issues/1273#issuecomment-2631171565)) | +| 35 |January 27, 2025| [Agenda](https://github.com/ethereum/pm/issues/1248) | N/A | [Notes]([./Meeting%2063.md](https://github.com/ethereum/pm/issues/1248#issuecomment-2615709046)) | +| 34 |January 13, 2025| [Agenda](https://github.com/ethereum/pm/issues/1241) | [Recording](https://youtu.be/HKjT5O74lx4?si=j6qTuDzHlZxxVA9x) | [Notes]([./Meeting%2063.md](https://github.com/ethereum/pm/issues/1241#issuecomment-2590226750)) | +| 33 |January 06, 2025| N/A | [Recording](https://youtu.be/OpybdKZ4Ft8?si=dCBReLxqE5n85C_j) | [Notes](https://hackmd.io/QmTl38cVRteyG24a27VB8Q) | +| 32 |December 30, 2024| N/A | [Recording](https://youtu.be/-1GHixe7iLo?si=Ud7cf_qnWJDMQKIF) | N/A | +| 31 |December 23, 2024| N/A | [Recording](https://youtu.be/u3XDtboT5HI?si=GQPtb37uAQB7FYxW) | N/A | +| 30 |December 16, 2024| N/A | [Recording](https://youtu.be/jeJJkXEP0lI?si=lMiu_CiqFFLGfIMF) | N/A | +| 29 |December 09, 2024| N/A | [Recording](https://youtu.be/wsZQfdWrCec?si=HiyD_NLOI0WXPo5K) | N/A | +| 28 |December 02, 2024| N/A | [Recording](https://youtu.be/qzKvckuf6IU?si=22xGaQE8aem3lT1T) | N/A | +| 27 |November 25, 2024| N/A | [Recording](https://youtu.be/ihBB7qyTER8?si=54Kpxk2-X-77zLtF) | N/A | +| 26 |September 30, 2024| N/A | [Recording](https://youtu.be/Dlrrr_-AVBg?si=M4xQcVtmyOOMN7gc) | N/A | +| 25 |September 23, 2024| N/A | [Recording](https://youtu.be/Y5fSw77h7Vo?si=YECm6eN5xRwvgwLl) | N/A | +| 24 |September 09, 2024| N/A | [Recording](https://youtu.be/Z2nIOUEUJYs?si=HHYzNjQjzkYoXaoj) | N/A | +| 23 |August 26, 2024| N/A | [Recording](https://youtu.be/0J-T7M65Ba4?si=T4pZMi6v-fGWYUx6) | N/A | +| 22 |August 19, 2024| N/A | [Recording](https://www.youtube.com/watch?v=h0Q_ZgO1Sk4&t=29s) | N/A | +| 21 |August 12, 2024| N/A | [Recording](https://www.youtube.com/watch?v=z8pwY5bIWM0) | N/A | +| 20 |August 05, 2024| N/A | [Recording](https://www.youtube.com/watch?v=y2I-cQvuvKk&t=83s) | N/A | +| 19 |July 29, 2024| N/A | [Recording](https://www.youtube.com/watch?v=rGuW3F32BPM) | N/A | +| 18 |July 22, 2024| N/A | [Recording](https://www.youtube.com/watch?v=haTEV9vWizM&t=27s) | N/A | +| 17 |July 15, 2024| N/A | [Recording](https://www.youtube.com/watch?v=8gqCJagYvA0&t=52s) | N/A | +| 16 |July 08, 2024| N/A | [Recording](https://www.youtube.com/watch?v=3BVuXm3rBp0&t=50s) | N/A | +| 15 |June 17, 2024| N/A | [Recording](https://www.youtube.com/watch?v=hhkekW60mpk&t=19s) | N/A | +| 14 |June 10, 2024| N/A | [Recording](https://www.youtube.com/watch?v=fqX_66c1XIg&t=13s) | N/A | +| 13 |June 03, 2024| N/A | [Recording](https://www.youtube.com/watch?v=aFF8nmI5ytE&t=18s) | N/A | +| 12 |May 27, 2024| N/A | [Recording](https://www.youtube.com/watch?v=mCVNuzoHEYk) | N/A | +| 11 |May 20, 2024| N/A | [Recording](https://www.youtube.com/watch?v=7wGzih4ypr8&t=18s) | N/A | +| 10 |May 13, 2024| N/A | [Recording](https://www.youtube.com/watch?v=62HFmRwyBHA&t=24s) | N/A | +| 09 |May 06, 2024| N/A | [Recording](https://www.youtube.com/watch?v=NquF9IfhLlM&t=271s) | N/A | +| 08 |April 29, 2024| N/A | [Recording](https://www.youtube.com/watch?v=0c8fDlhKO4Q&t=17s) | N/A | +| 07 |April 22, 2024| N/A | [Recording](https://www.youtube.com/watch?v=MyINXuELmO0&t=13s) | N/A | +| 06 |April 15, 2024| N/A | [Recording](https://www.youtube.com/watch?v=uhtoBvufvNs&t=12s) | N/A | +| 05 |April 08, 2024| N/A | [Recording](https://www.youtube.com/watch?v=2E10m2zpojM&t=7s) | N/A | +| 04 |March 25, 2024| N/A | [Recording](https://www.youtube.com/watch?v=8uXmfXv4jvs&t=75s) | N/A | +| 03 |March 18, 2024| N/A | [Recording](https://www.youtube.com/watch?v=1neJY8bbEoA&t=9s) | N/A | +| 02 |March 04, 2024| N/A | [Recording](https://www.youtube.com/watch?v=LUS9Hky_0OI&t=27s) | N/A | +| 01 |February 26, 2024| N/A | [Recording](https://www.youtube.com/watch?v=XtubgsWxAI8&t=212s) | N/A | + + diff --git a/Breakout-Room-Meetings/ETH-Simulate/Meeting 33.md b/Breakout-Room-Meetings/ETH-Simulate/Meeting 33.md new file mode 100644 index 00000000..5089ad3a --- /dev/null +++ b/Breakout-Room-Meetings/ETH-Simulate/Meeting 33.md @@ -0,0 +1,56 @@ +## Eth_Simulate Meeting Meeting 33 + +Note: This file is copied from [here](https://hackmd.io/QmTl38cVRteyG24a27VB8Q) + +### Meeting Info + +- Agenda: ethereum# +- Date & Time: January 06, 2025, 12:00 UTC +- Recording: [here](https://youtu.be/OpybdKZ4Ft8?si=dCBReLxqE5n85C_j) +## Notes +### Summary +## Ideas for eth_simulateV2 + +List of suggested ideas for the possible next version of `eth_simulate`: + +## Contract Creation Events +Emit an event when a contract is created. Currently, it is impossible to see if a transaction creates a contract, except when the transaction creates only one contract using the standard method. + +## Multi Gas Calculation +Currently, if you override `ecrecover`, it consumes more gas than it should. We could make it consume the correct amount as `ecrecover` normally would, but then adjust it to account for the correct gas amounts against the global gas limit of the call. + +## Stack Traces +When execution fails, all you get is the error being thrown. It would be highly useful to have access to a full stack trace. + +## Full Tracing +Enable full tracing support for all transactions. + +## Phantom Blocks +Currently, you cannot create blocks far in the future. Phantom blocks would allow for the creation of future blocks while padding the missing blocks with a "phantom blocks" concept. + +## Witness Creation +Enable witness generation for `eth_simulate` results to allow receivers to verify the correctness of the results. + +## Dynamic Timestamp and Block Number Increment +Currently, to create future blocks and timestamps that depend on the head, you must query the head and then quickly make an `eth_simulate` call with the correct values. It would be useful to allow timestamps and block numbers to be defined dynamically, such as: +- `timestamp: latest + 10` +- `block number: latest + 10` +This would eliminate the need to query the latest block manually and avoid race conditions due to block number changes. + +## Gas Simulations +For each transaction: + +```json +{ + "gasLimit": number | null | "estimate" +} +``` +or +``` +{ gasLimit: number | null, estimatePlease: true } + (what to do what both are defined?) + +include the transaction with the estimated gas limit to block + +## Remove `size` from return value +``` \ No newline at end of file diff --git a/Breakout-Room-Meetings/ETH-Simulate/Meeting 34.md b/Breakout-Room-Meetings/ETH-Simulate/Meeting 34.md new file mode 100644 index 00000000..9fb58d6d --- /dev/null +++ b/Breakout-Room-Meetings/ETH-Simulate/Meeting 34.md @@ -0,0 +1,97 @@ +## Eth_Simulate Meeting Meeting 34 + +Note: This file is copied from [here](https://github.com/ethereum/pm/issues/1241#issuecomment-2590226750) + +### Meeting Info + +- Agenda: [ethereum#1241](https://github.com/ethereum/pm/issues/1241#issue-2772946504) +- Date & Time: January 13, 2025, 12:00 UTC +- Recording: [here](https://youtu.be/HKjT5O74lx4?si=j6qTuDzHlZxxVA9x) +## Notes +### Summary +## Agreed Action Items and Implementation Decisions + +## Tracing Enhancements +- Add new tracing methods and derive specifications from implementations. +- Specify the outer trace object structure while treating block traces as a black box. +- Align `eth_simulate` implementation across all clients. + +## Transaction and Block Tracing Strategies +- Explore adding a `trace_simulate` method for debugging transactions. +- Propose tracing both transactions and blocks, capturing state roots between transactions. +- Support client-specific tracing methods. +- Consider creating separate namespaces for Geth and Parity traces to improve organization. +- Potentially add client-specific namespaces for enhanced tracing methods. + +## `eth_simulate` Parameter Extensions +- Propose adding an optional RLP return parameter to `eth_simulate` for v2 documentation. +- Suggest including a hidden parameter to return RLP data alongside the standard JSON response. + +## Test Suite and Reliability Challenges +- Investigate issues with duplicate blocks caused by total difficulty pegged to zero. +- Reduced failing test cases from **83** to **72**; duplicate block issues remain a significant challenge. +- Regular updates to the Hive test suite; participants are encouraged to report any discrepancies. +- Observed non-deterministic test failures likely linked to race conditions or shared state issues. + +## Debugging Consensus Differences + +### Methods to Obtain RLPs +- Use `debug_getBadBlocks`: Temporary RLP dumps saved to disk. +- Automatic dumps for RLP receipts and traces in cases of potential consensus issues. +- Access traces via archive nodes. + +### RLP Sharing +Exchange block and transaction RLPs between clients to identify discrepancies during consensus differences. Current practices include: +- Retrieving temporary or on-disk RLP dumps with `debug_getBadBlocks`. +- Auto-dumping receipts and traces for potential issues. +- Accessing traces from archive nodes. + +## Challenges with `eth_simulate` +- RLPs and traces aren't easily retrieved for `eth_simulate` calls since they are transient. + +### Suggestions: +- Add a hidden parameter to `eth_simulate` to return RLPs. +- Introduce a new method like `eth_simulateTrace` for detailed analysis. + +## Tracing Approaches +- Clients like Geth and Parity offer tracing configurations that could include debug and parity namespaces. +- Heavier options may suit debugging since they are not gas-accounted and require more memory. + +## Hive Tests and Non-Deterministic Failures + +### Potential Issues +- Race conditions or shared states during parallel test runs. +- Non-deterministic failures, especially with `eth_simulate` calls. + +### Challenges +- Debugging Hive tests is complicated due to the transient nature of simulation calls and limitations in output retrieval. + +### Proposed Solutions: +- Add hidden or optional parameters to `eth_simulate` to return RLPs directly. +- Enhance RPC output or adapt Hive tests for direct access. +- Modify client configurations to enable auto-dumping traces during specific test executions. + +## Cross-Client Consistency +- While most clients (Erigon, Besu, etc.) support parity-like traces, Geth does not, leading to inconsistencies in tooling and debugging workflows. +- Ensuring parity in debugging outputs across clients can streamline comparisons and troubleshooting. + +## Implementation Recommendations + +### For Debugging Enhancements +- Add a separate, heavy trace method in the `debug` namespace, distinct from `eth_simulate`, to avoid production interference. +- Ensure compatibility with existing client tracing standards for tools like block explorers. + +### For Persistent Debugging Output +- Allow configuration for logging RLPs or traces to permanent locations instead of temp files for easier retrieval and analysis. + +### Short-Term +- Add parameters to `eth_simulate` to optionally return RLP or trace data. +- Implement temporary programmatic tracing to capture simulation-specific traces. + +### Long-Term +- Develop a uniform method for tracing and debugging, potentially adopting shared standards across clients. +- Address shared state or race condition issues in tests and simulations to improve consistency and reliability. + +## Communication +- Share findings and insights with team members like Rohit and Sina to foster collaborative debugging. +- Document procedures for enabling and utilizing new debugging features to facilitate broader adoption. diff --git a/Breakout-Room-Meetings/ETH-Simulate/Meeting 35.md b/Breakout-Room-Meetings/ETH-Simulate/Meeting 35.md new file mode 100644 index 00000000..94a8aa83 --- /dev/null +++ b/Breakout-Room-Meetings/ETH-Simulate/Meeting 35.md @@ -0,0 +1,54 @@ +## Eth_Simulate Meeting Meeting 35 + +Note: This file is copied from [here](https://github.com/ethereum/pm/issues/1248#issuecomment-2615709046) + +### Meeting Info + +- Agenda: [ethereum#1248](https://github.com/ethereum/pm/issues/1248#issue-2788186304) +- Date & Time: January 27, 2025, 12:00 UTC + +## Notes +### Summary +## Prototype and Development Progress + +## Estimate Gas Prototype +- Plan to start working on the Estimate Gas prototype soon. +- Progress on the tracing simulation prototype, discussed in a previous meeting, has stalled due to unforeseen circumstances. +- NetherMind had committed to developing this prototype but has not yet completed it. + +## Hive Test +- The team is still working on getting the Hive test operational. +- No significant progress has been made on simulation strategies, and no decisions have been finalized yet. + +## Feedback Challenges with Node Providers +- Expressed concern with node providers who provide feedback only after development is complete, rather than during the process. +- This has led to inefficiencies and rework. +- The team hopes for more proactive engagement from node providers in the future. + +## Meeting Frequency Discussion +- The team discussed whether to switch from weekly to bi-weekly meetings. + - Some members supported bi-weekly meetings to save time. + - Others preferred weekly meetings to maintain a tight feedback loop, especially as prototyping and development efforts ramp up. +- **Decision:** The team will keep weekly meetings for now, with the option to revisit the decision later. + +## ETH Simulate v2 (or ETH Estimate Simulate) +- The team acknowledged that ongoing meetings are necessary due to plans for ETH Simulate v2 (or a similar feature). +- However, the current meetings often feel lengthy without significant progress being made. +- This week’s meeting concluded with no major updates or breakthroughs. + +## Action Items + +### Meeting Frequency +- Continue with weekly meetings for now, with the possibility of switching to bi-weekly meetings in the future if circumstances allow. + +### Prototype Development +- Continue tracking progress on the Estimate Gas and tracing simulation prototypes. +- Focus on completing the Hive test and finalizing simulation strategies. + +### Node Provider Engagement +- Aim to improve communication with node providers to ensure feedback is provided during the development process rather than after. + +### Next Steps +- Reassess meeting frequency if progress slows or workloads change. +- Continue development efforts on the Estimate Gas prototype and Hive test. +- Address feedback challenges with node providers to streamline development processes. diff --git a/Breakout-Room-Meetings/ETH-Simulate/Meeting 36.md b/Breakout-Room-Meetings/ETH-Simulate/Meeting 36.md new file mode 100644 index 00000000..f0cc49d5 --- /dev/null +++ b/Breakout-Room-Meetings/ETH-Simulate/Meeting 36.md @@ -0,0 +1,37 @@ +## Eth_Simulate Meeting Meeting 36 + +Note: This file is copied from [here](https://github.com/ethereum/pm/issues/1273#issuecomment-2631171565) + +### Meeting Info + +- Agenda: [ethereum#1273](https://github.com/ethereum/pm/issues/1273) +- Date & Time: February 03, 2025, 12:00 UTC +- Recording: [here](https://youtu.be/i2JBDF_MBVU?si=zBjWUwY4F_WfLzrw) +## Notes +### Summary +## Intern Tracing Refactoring Project + +- The tracing component is being prototyped by Nethermind with assistance from their intern. +- The task primarily involves refactoring to get tracers working. +- Progress is on track, and the intern is expected to complete the refactoring by the end of the current week. +- The project is well-defined and serves as a suitable internship task, focusing on modular and reusable design. + +## Hash Implementation and Testing + +- The Besu implementation is progressing, with the majority of Hive tests passing. However, around 15-16 tests are still failing. +- A discrepancy in hash values compared to Geth has been identified. Initial investigations suggest that passing the parent hash to the next block resolves the mismatch. +- A patch will be shared for further review to address the hash matching issues. +- Besu also plans to test against Nethermind. Nethermind tests are already running for cross-client hash comparison. +- There are ongoing investigations into differences in block size definitions between implementations. + +## Other Updates + +- Sina has not yet reviewed the tracing component due to other commitments, including work on gas estimation. +- Rohit reported no updates due to other commitments. + +## Next Steps + +- Complete tracing refactoring by Nethermind intern. +- Investigate and resolve hash discrepancies between Besu, Geth, and Nethermind implementations. +- Share and review patches to address hash and block size issues. +- Conduct cross-client testing with Hive for further validation. diff --git a/Breakout-Room-Meetings/ETH-Simulate/Meeting 37.md b/Breakout-Room-Meetings/ETH-Simulate/Meeting 37.md new file mode 100644 index 00000000..5a8a3902 --- /dev/null +++ b/Breakout-Room-Meetings/ETH-Simulate/Meeting 37.md @@ -0,0 +1,62 @@ +## Eth_Simulate Meeting Meeting 37 + +Note: This file is copied from [here](https://github.com/ethereum/pm/issues/1278#issuecomment-2650875573) + +### Meeting Info + +- Agenda: [ethereum#1278](https://github.com/ethereum/pm/issues/1278) +- Date & Time: February 10, 2025, 12:00 UTC +- Recording: [here](https://youtu.be/YgU7S01PUZc) +## Notes +## Eth_Simulate Implementers Call Summary + +## Main Outcome +The primary outcome of the meeting was the agreement to add support for type 4 transactions (EIP-7702) across various blockchain client methods. The team discussed and outlined a rough design for implementing this support, focusing on addressing the challenges related to transaction signature validation and authentication. + +## Key Decisions and Design Proposals + +### Type 4 Transaction Support +- The team agreed to add support for type 4 transactions (EIP-7702) in methods like `eth_call`, `eth_simulate`, and `eth_estimateGas`. +- A transaction can have either an **authority** field, **signature fields** (`r`, `s`, `yParity`), or both. +- If it contains an **authority** field, its value must be an address. +- If it contains both an **authority** field and **signature fields**, the address recovered from the signature must match the address in the authority field. + + +### Flexible Authentication Mechanism +- A new **Authority** field will be added to the transaction object to support flexible authentication methods. +- The **Authority** field can contain: + - An **address** (for lightweight authentication). + - A **signature** (for cryptographic verification). + - A **mixed list of addresses and signatures** (for maximum flexibility). + +### Validation Rules +- If both **Authority** and **signature** are provided, they must match; otherwise, an error will be thrown. +- This ensures users can validate their transactions and catch potential issues early. + +### Cross-Client Consistency +- The team emphasized the need for a **consistent API** across all blockchain clients to handle type 4 transactions uniformly. +- All clients will need to implement the proposed **Authority** field and validation logic. + +### Testing and Simulation +- Testing type 4 transactions will require simulating transactions with the new **Authority** field. +- The team discussed using **EXTCODE operations** (e.g., EXTCODEHASH) to verify authority settings, as direct pulling of authority values from the chain is not possible. + +## Next Steps + +### Finalize Design +- Confirm the design with all stakeholders, including **Besu** and other client implementers. +- Ensure the proposed **Authority** field and validation rules are acceptable across all clients. + +### Implementation +- Develop a PR against the execution-apis [repo]( https://github.com/ethereum/execution-apis) at the **Authority** field and type 4 transaction support. +- Address any client-specific implementation challenges, particularly in **Geth** and other clients. + +### Testing +- Conduct thorough testing to validate the new functionality, especially for `eth_simulate` and `eth_call`. +- Use **EXTCODE operations** to verify authority settings and ensure correctness. + +### Coordination +- Collaborate with all clients to ensure **consistent implementation** and approval of the changes. + +## Conclusion +The meeting concluded with a clear direction to **add type 4 transaction support** and a rough design for implementing it. The proposed **Authority** field will provide a flexible and robust way to handle authentication for these transactions. The next steps involve finalizing the design, implementing the changes, and coordinating with all clients to ensure a **consistent and reliable solution**. diff --git a/Breakout-Room-Meetings/ETH-Simulate/Meeting 38.md b/Breakout-Room-Meetings/ETH-Simulate/Meeting 38.md new file mode 100644 index 00000000..307f512e --- /dev/null +++ b/Breakout-Room-Meetings/ETH-Simulate/Meeting 38.md @@ -0,0 +1,89 @@ +## Eth_Simulate Meeting Meeting 38 + +Note: This file is copied from [here](https://github.com/ethereum/pm/issues/1293#issuecomment-2664759485) + +### Meeting Info + +- Agenda: [ethereum#1293](https://github.com/ethereum/pm/issues/1293) +- Date & Time: February 17, 2025, 12:00 UTC +- Recording: [here](https://www.youtube.com/watch?v=Yer5Rue4M5s) +## Notes +## Eth_Simulate Implementers Call Summary + +## Main Outcome +The primary focus of the meeting was to debug and resolve issues with the Hive test pipeline, specifically addressing why one test was failing in the test suite despite working on the mainnet. Additionally, the team discussed the development and testing of new API endpoints for simulation and tracing, as well as potential improvements to the `eth_simulate` and `eth_trace` methods. + +## Key Discussion Points + +### Hive Test Pipeline Debugging +- **Issue Identification**: One test was failing in the test suite but worked on the mainnet. The issue might be related to changes in the test chain, where 10 additional blocks were added, potentially breaking some tests. +- **Test Chain Consistency**: The test in question does not depend on the underlying chain, but the changes to the test chain (used universally across all tests) may have caused the failure. The team emphasized the importance of maintaining consistency in the test chain to avoid such issues in the future. If new blocks are added, the corresponding tests should be updated accordingly. + +### Development of Simulation and Tracing Endpoints +- **New Endpoints**: Deeptanshu, an intern, has been working on two new endpoints: `debug_simulate` and `trace_simulate`, which perform simulations using Geth-like and Parity-like block tracers. +- **Testing and Refactoring**: The endpoints are not yet deployed to the mainnet but are being tested internally. Deeptanshu is addressing PR comments and refactoring the code, aiming to merge the changes within the week. +- **Standardization**: The team emphasized the need for standardization across clients for these endpoints. Killary suggested documenting the API schema and sharing it with the team for coordination. + +### API Design and Standardization +- **Consistency Across Clients**: The team discussed the importance of ensuring that the new APIs (`debug_simulate` and `trace_simulate`) are consistent across different Ethereum clients. +- **Documentation**: Deeptanshu agreed to document the sample payloads and endpoints and share them on Telegram for feedback and testing. +- **Additional Fields**: The team debated whether to include additional fields like withdrawals in the simulation results but decided to maintain compatibility with the existing RPC interface for blocks. + +### Gas Estimation in `eth_simulate` +- **Integration Options**: The team explored whether gas estimation should be integrated into `eth_simulate` as a parameter or as a separate method (`eth_simulate_estimate`). +- **Operational Cost**: Concern was raised about the operational cost of running gas estimation multiple times, as it could significantly increase the computational load on nodes. +- **Implementation Options**: + - Adding a parameter to `eth_simulate` to enable gas estimation. + - Creating a separate method for gas estimation. + - Using a global flag to estimate gas for all transactions in a block. +- **Decision**: No final decision was made, but the team leaned towards adding a parameter to `eth_simulate` for simplicity, with the option to revisit the design before finalizing the implementation. + +### Trace API Enhancements +- **Block-Level Information**: The team discussed whether the `eth_trace` API should return block-level information (e.g., block hash, gas used) in addition to transaction traces. +- **State Root Inclusion**: There was a suggestion to include the state root between transactions for debugging purposes, but concerns were raised about the additional complexity and performance impact. +- **Decision**: The team agreed that including block information in the trace results would be useful, as it aligns with the data structure returned by `eth_simulate` and provides more context for debugging. + +### Withdrawals and System Calls in `eth_simulate` +- **Processing Withdrawals**: The team addressed an issue related to processing withdrawals and new system calls (introduced in the Prague hard fork) during block simulation. +- **Inclusion in Block Hash**: It was noted that withdrawals need to be processed after running a block, and their inclusion in the block hash could affect simulation results. +- **Next Steps**: The team decided to raise this issue in the RPC channel on the ETH R&D Discord for further discussion. + +## Future Work and Next Steps +- **Deeptanshu**: + - Refine the `debug_simulate` and `trace_simulate` endpoints. + - Share documentation with the team. + - Prepare a demo of the trace API for the next meeting. +- **Team**: + - Test the new endpoints and provide feedback on the API design. + - Decide on the implementation approach for gas estimation in `eth_simulate`. + - Discuss and finalize the inclusion of block information in the `eth_trace` API. +- **Rohit**: Raise the issue of withdrawals and system calls in `eth_simulate` on the ETH R&D Discord. +- **Tony**: Gather feedback from Infura on the operational impact of integrating gas estimation into `eth_simulate`. + +## Action Items +### Gas Estimation Options for `eth_simulate` +- **Options**: + - `gasLimit: string | number` + - `gasLimit: number, estimate: true; error if both provided` + - `gasLimit: number, estimate: true; start estimating with gasLimit` + - `gasLimit: number, estimate: true; max gas estimated is gasLimit` + - `gasLimit: number; global flag estimates all missing transactions` + +### Deeptanshu +- Refactor and merge the PR for `debug_simulate` and `trace_simulate` endpoints. +- Document the API schema and share it with the team on Telegram. +- Prepare a demo of the trace API for the next meeting. + +### Team +- Test the new endpoints and provide feedback on the API design. +- Decide on the implementation approach for gas estimation in `eth_simulate`. +- Discuss and finalize the inclusion of block information in the `eth_trace` API. + +### Rohit +- Raise the issue of withdrawals and system calls in `eth_simulate` on the ETH R&D Discord. + +### Tony +- Gather feedback from Infura on the operational impact of integrating gas estimation into `eth_simulate`. + +## Conclusion +The meeting highlighted the team's progress in debugging the Hive test pipeline and developing new simulation and tracing endpoints. While several design decisions remain unresolved, the team is committed to ensuring consistency and efficiency across Ethereum clients. The next steps involve refining the APIs, addressing technical challenges, and coordinating with other client teams to finalize the implementation. \ No newline at end of file diff --git a/Fusaka/peerdas-readiness.md b/Fusaka/peerdas-readiness.md new file mode 100644 index 00000000..a7d90d8a --- /dev/null +++ b/Fusaka/peerdas-readiness.md @@ -0,0 +1,70 @@ +# PeerDAS Readiness Checklist + +This document outlines various tasks to work through to make PeerDAS ready for Mainnet release. + +*Note*: The set of items is not final and will be aligned with ongoing R&D and implementation work. + +## Table of contents + + + + + +- [Testnets & Client Implementation](#testnets--client-implementation) +- [Specification](#specification) +- [Testing](#testing) +- [R&D](#rd) + + + + +## Testnets & Client Implementation + +* [x] `peerdas-devnet-4` (https://notes.ethereum.org/@ethpandaops/peerdas-devnet-4) + * [x] PeerDAS activation at the Fulu Fork + * [x] Subnet Decoupling (introduce Custody Groups) + * [x] Increase blob count (9/12) +* [ ] `peerdas-devnet-5` (`peerdas-devnet-4` relaunch with new EL image) + * [ ] Sync testing: checkpoint and genesis sync + * [ ] Validator custody (optional) +* [ ] `peerdas-devnet-6` (**feature complete**) + * [ ] Validator custody on all clients + * [ ] Distributed blob ~~building~~ publishing + * [ ] [Move proof computation to transaction sender](https://hackmd.io/@jimmygchen/HkUpFliYJx) + * [ ] Increase blob count (?/?) +* [ ] `peerdas-devnet-7` + * [ ] MEV flow testing + * [ ] Adjusted blob count? +* [ ] Public testnets + +## Specification + +* [x] Validator Custody +* [ ] Distributed Blob Publishing + * [ ] `consensus-spec` to specify minimum requirements for data column publishing +* [ ] Move proof computation to transaction sender + * [ ] EIP: [Update EIP-7594: include cell proofs in network wrapper of blob txs #9378](https://github.com/ethereum/EIPs/pull/9378) + * [ ] `execution-specs` update: does the mempool verification change need to be specified? + * [ ] `execution-apis` update: `getPayloadV5` and `getBlobsV2` to replace blob KZG proofs with cell KZG proofs. + * [ ] `consensus-specs` update: See [here](https://hackmd.io/@jimmygchen/HkUpFliYJx#CL-changes) + * [ ] `beacon-API` update: `GetBlobSidecar` API may need a version bump as we replace blob KZG proofs with cell KZG proofs. +* [ ] EIP to increase target / max blob count in Fusaka + +## Testing + +* [ ] Tooling updates + * [ ] `spamoor` needs updating to use the new tx format, potentially we need a way to make sure clients are indeed adhering this change +* [ ] Hive +* [ ] Run network limit devnets (https://notes.ethereum.org/@ethpandaops/network-limit-devnets) + +## R&D + +* [ ] Gather `getBlobs` performance metrics across all ELs +* [ ] Measure effectiveness of Distributed Blob Publishing on CLs (metrics: hit rate and publish rate) +* [ ] Anaylsis of new blob count impact on bandwidth, hardware requirements once clients are feature complete (`peerdas-devnet-6`) +* [ ] Nice to have: [BPO only forks](https://ethereum-magicians.org/t/blob-parameter-only-bpo-forks/22623) + +## Other Tasks + +* [ ] EL: Potential optimisation of `getBlobs` endpoint? +* [ ] Document impact to node operators (prior post with 16 blobs [here](https://blog.sigmaprime.io/peerdas-distributed-blob-building.html#impact-on-node-operators))