# Week 2 Dev Update | June 17-23
## What I have learned
### Running a node on Ephemery
While kurtosis is an amazing tool to run a small network, I needed something closer to a real network to perform test and develop p2p-debugger. Running a node on a testnet was an option I considered, but the long sync time was a problem. Ephemery testnet seemed to be a good compromise, fast to synchronize and with enough peers to test p2p-debugger.\
Configuration was pretty easy thanks to [this documentation](https://github.com/ephemery-testnet/ephemery-resources?tab=readme-ov-file#run-a-node).
Installing and running both clients (eth and lighthouse) from scratch instead of using docker/kurtosis was simpler than expected.\
My goal was to run several nodes on the same machine so I had to add some extra parameters to the cli when starting the node.
For geth I used something like:\
`geth --datadir geth-ephemery_2 --authrpc.jwtsecret=/tmp/jwt --bootnodes $BOOTNODE_ENODE --authrpc.port=8555 --port 20202 --http --http.port 3334`
and for lighthouse:\
`lighthouse bn --datadir lighthouse-ephemery_2 -t conf --execution-endpoint http://localhost:8555 --execution-jwt=/tmp/jwt --boot-nodes=$BOOTNODE_ENR_LIST --http --http-port 6064 --port 10002`
While developing p2p-debugger I had some CORS issues because both the client and the http server of lightouse was running on localhost. Using `--http-allow-origin "http://localhost:8080"` on lightouse cli fixed the problem !
### Consensus p2p - libp2p
- Read [the p2p part of the consensus specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md) Phase 0 + updates.
- Read some parts of [the libp2p specs](https://github.com/libp2p/specs/tree/master)
- Dived into the [p2p folder of Prysm codebase](https://github.com/libp2p/specs/tree/master)
## What I have done
### P2P debugger
I have made good progress on this task. A first version have been pushed [to this repo](https://github.com/MaximeDavin/p2p-debugger).
![screenshot[1]](https://hackmd.io/_uploads/H1y_14DIA.png)
### Prysm p2p
I have started working on a 'cartography' of go-libp2p usage in Prysm. The main goal is to understand how libp2p is used and what need to be reimplemented or not, as describe in [this proposal](https://hackmd.io/@6-HLeMXARN2tdFLKKcqrxw/rkU0eLmEC)
## What I will be doing next
### Combined forkmon
Pushed the combined cl and el forkmon to a repository.
### P2P debugger
Connect with ethpandaops to get their feedbacks.
Maybe implements new features ?
### Prysm p2p
- Finish the 'cartography' of libp2p usage in Prysm.
- Make a list of all the tasks that need to be done and their dependencies
- Estimate the complexity of each task
## Conclusion
I really enjoyed reading the networking specs of the beacon chain and libp2p. I will continue to explore this topic next week. [This proposal](https://hackmd.io/@6-HLeMXARN2tdFLKKcqrxw/rkU0eLmEC) might be a good candidate for my fellowship project.