# EPF Journey
This document is an unorganized idea-dump for:
- ideas to explore
- todos
- findings worth mentioning
- paths taken
- and other useful material.
---
### Week 0
ideas:
- optimistic parallel tx execution in the validators [does not really affect the actual performance/output of the program so probably should not pursue]
- Specification and implementation of [eth_getTransactionBySenderAndNonce](https://github.com/ethereum/execution-apis/issues/494)
- Implementing`trace_*` namespace in Geth
- Profiling Geth's performance and finding/fixing performance bottlenecks. [does not really affect the actual performance/output of the program so probably should not pursue]
- things like checking different hardwares performance
todos:
- [x] explore ideas
- [ ] catch up on EPS material
- [x] exlpore the viability of optimistic parallel tx execution in validators
- [ ] Checkout how trace_filter is implemented in Erigon
notes:
- on optimistic parallel tx execution in validators:
- I've been told that this feature is implemented in the [sei-tendermint](https://github.com/sei-protocol/sei-tendermint) codebase.
- the eth_getTransactionBySenderAndNonce and tracer ideas are proposed by S1na.
- explore the proposed ideas by mentors
- add office hours call link to calendar
- set trace_* & eth_getTransactionBySenderAndNonce as fallback ideas
### Week 1
explored more ideas, down to these:
- Specification and implementation of eth_getTransactionBySenderAndNonce
- Implementing trace_* namespace in Geth
- Benchmarking APIs via flood and optimising the methods in various clients, compare across clients
- Custom libp2p go implementation in [Prysm](https://hackmd.io/@6-HLeMXARN2tdFLKKcqrxw/rkU0eLmEC)
- Light client server support in [Prysm](https://hackmd.io/q8fe302MQIayhtb9Aj-BJQ)
- Consensus-level eth supply calculation and exposing it as an opcode [Ipsilon]
### Week 2
chose "Specification and implementation of eth_getTransactionBySenderAndNonce" as the project to dig deep in.
todos:
- look at Geth's architecture
- look at otterscan/erigon implementation
- have a talk with Sina
looked into the Erigon implementation; goes through a lot of work. does not seem optimized or performant. I have to check Geth architecture to see if this can be implemented in a better way.
talked to Sina and the result was that he will work on implementing a general indexing framework within geth. and I should try to to the task after thats done.
he also proposed that I do the light client support in Prysm project.
So now I will work on that for the time being.
### Week 3
Looked into the project description. seems like a good portion of the job has already been done. I will need to take a more detailed look into prysm and the light client implementations:
- [ ] look into prysm architecture
- [ ] look into light client server implementation in Loadstar and Nimbus
- [ ] look into the work done in prysm
---
- [ ] understand specification (use copilot chat)
- [ ] understand Prysm architecture
- [ ] look into the work done in prysm