mirror of
https://github.com/logos-storage/bittorrent-codex-docs.git
synced 2026-01-05 22:43:06 +00:00
63 lines
2.9 KiB
Markdown
63 lines
2.9 KiB
Markdown
---
|
||
tags:
|
||
- bittorrent
|
||
---
|
||
#bittorrent
|
||
|
||
### BitTorrent protocol extensions
|
||
|
||
If we look at the settings in all three clients, we will easily find something all three BitTorrent client I investigated has some must-haves:
|
||
|
||
![[protocol-extensions.png]]
|
||
|
||
All have the following options (all can be enabled or disabled):
|
||
|
||
- DHT support,
|
||
- peer-exchange or PEX,
|
||
- Local Peer Discovery
|
||
- Encryption
|
||
|
||
Additionally, Deluge lists here:
|
||
|
||
- NAT PMP (Port Mapping Protocol),
|
||
- UPnP (Universal Plug and Play),
|
||
|
||
### DHT
|
||
|
||
In our case DHT needs to be always on unless we want to support centralised trackers. We already discuss some differences in the DHT usage in [[How BitTorrent-Codex integration may look like?]].
|
||
|
||
### Peer-Exchange or PEX
|
||
|
||
Peer Exchange (PEX) provides an alternative peer discovery mechanism for swarms once peers have bootstrapped via other mechanisms such as DHT or Tracker announces.
|
||
|
||
It provides a more up-to-date view of the swarm than most other sources and also reduces the need to query other sources frequently.
|
||
|
||
We do not seem to have anything like this in Codex... We just use [BitSwap](https://specs.ipfs.tech/bitswap-protocol/).
|
||
|
||
See [BEP11 - Peer Exchange (PEX)](https://www.bittorrent.org/beps/bep_0011.html).
|
||
|
||
### Local Service Discovery
|
||
|
||
Another addition to the BitTorrent protocol that Codex does not seem to have. Local Service Discovery (LSD) or Local Peer Discovery as it is named by sometimes, provides a SSDP-like (http over udp-multicast) mechanism to announce the presence in specific swarms to local neighbours. See [BEP14 - Local Service Discovery](https://www.bittorrent.org/beps/bep_0014.html).
|
||
|
||
In a way, it is related to NAT PMP.
|
||
|
||
### NAT PMP (Port Mapping Protocol)
|
||
|
||
NAT Port Mapping Protocol (NAT-PMP) is a network protocol for establishing network address translation (NAT) settings and port forwarding configurations automatically without user effort.
|
||
|
||
I do not believe we implement support that in our clients. Do we?
|
||
|
||
### uTorrent transport protocol (uTP)
|
||
|
||
What is not shown on the picture above and what is also supported by all BitTorrent clients is [BEP29 - uTorrent transport protocol](https://www.bittorrent.org/beps/bep_0029.html).
|
||
|
||
A transport protocol with delay based congestion control. See separate [article](http://www.libtorrent.org/utp.html). The motivation for uTP is for BitTorrent clients to not disrupt internet connections, while still utilizing the unused bandwidth fully.
|
||
|
||
We do not have this in Codex as far as I know.
|
||
|
||
### Superseeding
|
||
|
||
The superseeding ([BEP16](https://www.bittorrent.org/beps/bep_0016.html)) is a feature designed to help a torrent initiator with limited bandwidth to "pump up" a large torrent, reducing the amount of data it needs to upload in order to spawn new seeds in the torrent.
|
||
|
||
Simply speaking, the node has ability to "focus" on the content it really wants to get out, without loosing bandwidth for multiple smaller seeds. *Super-seed mode is **NOT** recommended for general use.* |