# Project Description
- **Project Topic**: Chose "Optimism Sequencer Support for ERC 4337 Bundlers."
- **Focus**: Enhance RPC API for Optimism sequencer's support of ERC 4337 bundlers. Unlike other Layer 2 solutions like Arbitrum and Polygon that perform checks only in the mempool, Optimism conducts verification checks during both mempool and transaction execution stages.
- **Goal**: Implement the new api method and test it. Design a robust reputation or Sybil resistance system, possibly inspired by Flashbots' scoring system.
# Status Report
The project went through two phases. Initially, it started with the original goal but encountered some external challenges, like the uniqueness of Optimism's single sequencer, which limited deeper involvement due to access and architectural issues. As a result, in the second phase, I shifted focus to creating educational content about the op-stack workflow and assisted in refactoring some components within the op-stack.
## Phase One:
- **Coding**:
- Completed the 'complete regarding errors' task. Conducted manual test cases. [Code Contribution](https://github.com/tynes/go-ethereum/compare/eip4337...joohhnnn:go-ethereum:eip4337Help)
- **Adding Test Cases**:
- [Test Case Contribution](https://github.com/joohhnnn/go-ethereum/commit/9392ab777105aa8706100dea79ecd85bd448293c)
- **API Specification Testing**:
- Generate test fixture by [rpctestgen](https://github.com/joohhnnn/rpctestgen). [Code Link](https://github.com/lightclient/rpctestgen/compare/main...joohhnnn:rpctestgen:main)
- Add test fixture to [execution-apis](https://github.com/ethereum/execution-apis). [Code Link](https://github.com/ethereum/execution-apis/compare/main...joohhnnn:execution-apis:main)
- Test API with [hive](https://github.com/ethereum/hive). [Code Link](https://github.com/ethereum/hive/compare/master...joohhnnn:hive:eip4337)
- **Testing API with Bundler**:
- Test the current codebase (geth) with various configurations.
- **Issue Resolution**:
- Assisted with issue [6450](https://github.com/ethereum-optimism/optimism/issues/6450). Created [Auto Configuration Project](https://github.com/joohhnnn/OPBundlerAutoConfig).
- Explored DDoS prevention solutions, created a simple [API Router Demo](https://github.com/joohhnnn/APIRouter).
## Phase Two:
- **Educational Contribution**:
- Created two versions of op-stack workflow documentation: [Chinese Version](https://github.com/joohhnnn/Understanding-Optimism-Codebase-CN), and [English Version](https://github.com/joohhnnn/Understanding-Optimism-Codebase).
- **Content Index**:
- Finished various topics on sequencer, block sync, libp2p usage, and more.
- **Ongoing Work**:
- Developing op-program: Fault proof program.
- **Community Recognition**:
- Contributions included in Optimism's official community learning resources.
- **Codebase Refactoring**:
- [Pull Request 1](https://github.com/ethereum-optimism/optimism/pull/7329)
- [Pull Request 2](https://github.com/ethereum-optimism/optimism/pull/8040)
# Future of the Project
- **ERC 4337 Aspect**: Might pause due to the evolving direction of the team's focus. As an external developer, my influence is limited but will seek meaningful avenues for contribution.
# My Learnings
During the four-month EPF program, I truly grasped the importance of having a plan and specific goals. Before EPF, my attempts to learn about the underlying technology were largely unproductive due to a lack of clear objectives. However, this time, I achieved what I had always wanted to do: I fully understood the fundamental principles of Layer 2 and made significant contributions. Layer 2, which once seemed mysterious and elusive, became more accessible to me. Not only did I actively participate in its development, but I also received great feedback. For instance, all my contributions related to Optimism were included in retroPGF, and I was recognized among thousands of projects, earning the opportunity for funding.
# Acknowledgements
I'm truly grateful to Mario and Josh for organizing this event, which has been incredibly meaningful to me. I also want to extend my heartfelt thanks to Mark, Sina, Delweng, and everyone else who generously helped me along the way. Their guidance and support have been invaluable to me.