Enhanced Filesharing Protocol
We aim at a simpler, cleaner and more principled implementation which should be easier to explain and reason about while at the same time being faster and more efficient.
Functionality
- Downloads can be started, stopped and resumed.
- At any time, it should be possible to query the progress of a download.
- It should be possible to replace the scheduling disciplines for a download. The initial version should support at least streaming and randomized/rarest-first.
Usability
- The protocol should be published with accompanying specs detailing the wire formats and all relevant details.
Performance
- The new protocol should be at least 10 times faster than the current implementation for large files.
- Memory footprint should be bounded, and it should not grow with file size.
- A single peer should be able to service hundreds of other peers without significant drops in overall peer throughput, and without crashing.
Supportability
- The protocol does not need to be backward compatible with the previous protocol.