# Helios CL P2P
This document details contribution ideas to the current state of the helios consensus layer peer-to-peer networking implementation.
## Update Helios Networking
There should be some work done in the Helios codebase to add a new Networking protocol. Some details of what has been thought can be found in these documents:
- [https://hackmd.io/@brech1/helios-p2p-outline](https://hackmd.io/@brech1/helios-p2p-outline)
- [https://hackmd.io/@helios-core/p2p](https://hackmd.io/@helios-core/p2p)
I’d say this is the best thing to take on since it’s completely independent from the other part of the project so far, and it would also be cool to find the best way of how Helios should be supposed to work with a new networking service without being biased of the actual implementation of the service.
## Adapt Current Codebase
There should be some work done before migrating the current codebase to helios.
- Test WASM compile
- Use the ssz_rs crate instead of the eth2_ssz
## Peer Management
Peer discovery is only ran at the start and without checking the actual amount of succesfully connected peers. Even if we're running the discovery with a predicate, there could be peers that are already fully subscribed and won't accept new connections.
A peer manager should be implemented that controls the discovery of new peers to hold this number stable. IMO that would be the first target but eventually should also disconnect peers that could be spamming.
There's an example of this in the Lighthouse client:
- [https://github.com/sigp/lighthouse/blob/stable/beacon_node/lighthouse_network/src/peer_manager/mod.rs](https://github.com/sigp/lighthouse/blob/stable/beacon_node/lighthouse_network/src/peer_manager/mod.rs)
I think it would be easier to work on [this repo](https://github.com/brech1/cl-p2p-setup) but starting to work on the helios one is also a good option, although would also require the code migration.
## Bootnodes
We're currently relying on a single bootnode. This should be increase to a multiple of them and preferably from different clients.