Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement uTP protocol #752

Closed
kdeme opened this issue Jul 9, 2021 · 3 comments
Closed

Implement uTP protocol #752

kdeme opened this issue Jul 9, 2021 · 3 comments
Labels

Comments

@kdeme
Copy link
Contributor

kdeme commented Jul 9, 2021

Issue to implement uTP according to specification here: https://www.bittorrent.org/beps/bep_0029.html

To be used for Portal Network data stream: https://github.com/ethereum/stateless-ethereum-specs/blob/master/discv5-utp.md

Currently only used/specified in state network: https://github.com/ethereum/stateless-ethereum-specs/blob/master/state-network.md#dht-network
Likely also to be used for historical chain data retrieval?

Must be able to integrate easy with discovery v5.1 implementation, which would relate to this issue: #725
Basically, no matter the outcome of that issue, it will likely have to share port / socket with discovery v5

Aside that eventually the uTP implementation needs to integrate well with discv5.1 and fluffy portal protocol, it can be initially developed as a standalone library, but in a way that the underlying transport can easily be changed (UDP, discv5 talkreq messages, perhaps some test mocking, ...).

The first step is to have this uTP implementation running on UDP, so that it can be interop tested with the reference implementation.

Implementation list found:

I have not found any tests.

@kdeme kdeme added the Fluffy label Jul 9, 2021
@KonradStaniec
Copy link
Contributor

Just to confirm (and have it somewhere documented)according to ethereum/portal-network-specs#66 (comment), uTP will also be used for transport for chain history network in case of larger payloads.

@kdeme
Copy link
Contributor Author

kdeme commented Oct 20, 2021

Implementation is happening here: https://github.com/status-im/nim-eth/tree/master/eth/utp

@KonradStaniec
Copy link
Contributor

KonradStaniec commented Feb 17, 2022

Implementation is now fairly complete and usable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants