# 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