# 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.