mirror of
https://github.com/logos-storage/bittorrent-codex-docs.git
synced 2026-01-02 13:03:08 +00:00
3.2 KiB
3.2 KiB
| tags | link | source | related-to | |||
|---|---|---|---|---|---|---|
|
http://www.libtorrent.org/ | https://github.com/arvidn/libtorrent |
|
#bittorrent
| link | http://www.libtorrent.org/ |
|---|---|
| source | https://github.com/arvidn/libtorrent |
| related-to | Deluge, qBittorrent |
Open Source BitTorrent library. The place to go to learn about the internals of the BitTorrent protocol, to find clarifications and answers to question you cannot find elsewhere.
Selected Docs
- BitTorrent v2- after you know the foundation (e.g. BEP3 - The BitTorrent Protocol Specification, BEP52 - The BitTorrent Protocol Specification v2, Learn BitTorrent) this already 3 years old document is still probably the best in overview of the changes introduced in the BitTorrent protocol version 2.
- libtorrent intorduction and some followup links from here:
- DHT Extensions and BEP5
- Extension Protocol, libtorrent overview (aka manual), BEP10 - Extension Protocol
- uTorrent metadata transfer protocol BEP 9 (i.e. magnet links).
- uTP implementation (BEP 29). See separate article.
- libtorrent tutorial - a good to place to get some intuition on how the library is used.
- examples - good as a follow up to the intro.
Other intersting docs
- Question about Bittorrent V2 File Hashes #7604 - a good clarification about blocks, padding, and "piece layers".
- From BitTorrent v2 mentioned above, we can see how impactful libtorrent is for the BitTorrent protocol version 2: # Draft: base protocol with merkle trees and new hash algorithms
Languages:
Building
I have followed the instructions from https://www.libtorrent.org/building.html. Relevant sections:
- building from git,
- building with boost build, and then immediately:
- Step 4: Installing libtorrent.
Documentation not really clear - hard to see the logical order.
Summary of the building steps
Before anything, install pre-requisites:
sudo apt install build-essential cmake git ninja-build pkg-config libboost-dev libssl-dev zlib1g-dev libgl1-mesa-dev
Then follow with:
git clone --recurse-submodules https://github.com/arvidn/libtorrent.git
sudo apt install libboost-tools-dev libboost-dev libboost-system-dev
echo "using gcc ;" >>~/user-config.jam
b2 crypto=openssl cxxstd=14 release
sudo b2 install --prefix=/usr/local
See also libtorrent Python bindings.
