# Implementing uTP SubProtocol for Discovery v5 in Nim - Dev Update #1
06/30/2021
This is the first development update of the [Core Developer Apprenticeship Program](https://snakecharmers.ethereum.org/the-core-developer-apprenticeship-program/). The issue regarding the use of UDP packets within the Discovery v5 protocol is the tight limit that is imposed on packet sizes. The streaming protocol [uTP](https://www.bittorrent.org/beps/bep_0029.html) proposed by BitTorrent is a solution that attempts to fix this by unlocking the limit while still providing stability. This idea derives directly from Piper Merriam's [post](https://github.com/ethereum/stateless-ethereum-specs/blob/master/discv5-utp.md).
# Progress
As someone who has never dabbled in any blockchain related technologies, I have spent most of my time researching and reading tutorials on both the Ethereum Virtual Machine as well as Discovery v5. In addition, as someone who has never learned Nim before, I have spent some time learning the language itself. I am still trying to figure out my plans on how to integrate uTP into the network while modifying it to accept discovery payload instead of full UDP packets.
# The Goal
The ultimate goal for this project is to contribute to the Fluffy team by providing a better streaming protocol to the existing network. Some of the smaller goals include getting a better understanding of Ethereum in general, learn nim, and become a contributer to open-source cryptocurrency projects. These posts will contain my progress, my thoughts and my overall learning experience. The below will contain milestones that will be crossed out upon completion with every update.
- ~~Get a better understanding of BEP29~~
- Get a better understanding of Nim
- Fully understand the discovery protocol
- Come up with a solution to integrate it into the network
- Begin implementing BitTorrent's libutp in Nim
- Create a libutp draft on the Fluffy repo
- Begin integrating the Nim libutp into the Fluffy repo
- More goals to be added...