---
# System prepended metadata

title: EPF Journey
tags: [EPF]

---

# 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