Update docs

This commit is contained in:
Marcin Czenko 2024-10-31 11:02:58 +01:00
parent f02b15da58
commit 41767291d7
No known key found for this signature in database
GPG Key ID: 33DEA0C8E30937C0
15 changed files with 304 additions and 26 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
.DS_Store .DS_Store
.obsidian/publish.json .obsidian/publish.json
.obsidian/workspace*.json .obsidian/workspace*.json
"00 Planner"

3
.obsidian/app.json vendored
View File

@ -1,6 +1,5 @@
{ {
"newFileLocation": "folder", "newFileLocation": "folder",
"newFileFolderPath": "10 Notes", "newFileFolderPath": "10 Notes",
"attachmentFolderPath": "90 Extras/92 Assets", "attachmentFolderPath": "90 Extras/92 Assets"
"alwaysUpdateLinks": true
} }

View File

@ -1,5 +1,5 @@
{ {
"format": "YYYY-MM-DD, ddd", "format": "YYYY-MM-DD, ddd",
"folder": "00 Planner/01 Days", "folder": "00 Planner/01 Days",
"autorun": true "autorun": false
} }

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"id":"query-control","name":"Query Control","version":"0.7.9","minAppVersion":"1.7.2","description":"An experimental Obsidian plugin that adds additional control to queries","author":"NothingIsLost & reply2za","authorUrl":"https://github.com/reply2za/obsidian-query-control","isDesktopOnly":false} {"id":"query-control","name":"Query Control","version":"0.7.10","minAppVersion":"1.7.2","description":"An experimental Obsidian plugin that adds additional control to queries","author":"NothingIsLost & reply2za","authorUrl":"https://github.com/reply2za/obsidian-query-control","isDesktopOnly":false}

View File

@ -0,0 +1,20 @@
---
tags:
- bittorrent
- dht
link: http://bittorrent.org/beps/bep_0005.html
related-to:
- "[[Learn BitTorrent]]"
---
#bittorrent #dht
| link | http://bittorrent.org/beps/bep_0005.html |
| ---------- | ---------------------------------------- |
| related-to | [[Learn BitTorrent]] |
For the DHT protocol, there are four **queries**:
- `ping`: to check if another node (one from its DHT routing table) is online and reachable,
- `find_node`: find the contact information for a node given its ID,
- `get_peers`: get peers associated with a torrent [[Infohash|infohash]],
- `announce_peer`: to *announce* that the peer, controlling the querying node, is downloading a torrent on a port.

View File

@ -0,0 +1,18 @@
---
tags:
- bittorrent
related-to:
- "[[Learn BitTorrent]]"
---
#bittorrent
| related-to | [[Learn BitTorrent]] |
| ---------- | -------------------- |
Original BitTorrent tracker coordinates the collaboration in the [[Swarm]]. The trackers is what was making BitTorrent partly centralised - they could be many trackers, but they play the role about the seeders and clients (peers) taking part in the exchange.
With the adoption of DHT in [BEP5 - DHT Protocol](http://bittorrent.org/beps/bep_0005.html) and [BEP11 - Peer Exchange (PEX)](http://bittorrent.org/beps/bep_0011.html), BitTorrent becomes more decentralised and removes this static point of control: the tracker. See also: [Peer Exchange](https://en.wikipedia.org/wiki/Peer_exchange) protocol in Wikipedia.
A nice note about this can be found in the book [[The World of Peer-to-Peer (P2P)]]:
> Enabling the volatile Peer to operate also as a tracker, but even if this addressed the need for static tracker servers, there is still a centralization of the network around the content. Peers don't have any default ability to contact each other outside of that context.

View File

@ -0,0 +1 @@
From [[Learn BitTorrent]] we got a decent overview how BitTorrent protocol looks like.

View File

@ -3,15 +3,15 @@ tags:
- paper - paper
authors: authors:
- Bram Cohen - Bram Cohen
link: https://stuker.com/wp-content/uploads/import/i-1fd3ae7c5502dfddfe8b2c7acdefaa5e-bittorrentecon.pdf link: http://bittorrent.org/bittorrentecon.pdf
related-to: related-to:
- "[[Learn BitTorrent]]" - "[[Learn BitTorrent]]"
--- ---
#paper #paper
| authors | Bram Cohen | | authors | Bram Cohen |
| ---------- | -------------------------------------------------------------------------------------------------- | | ---------- | ---------------------------------------- |
| link | https://stuker.com/wp-content/uploads/import/i-1fd3ae7c5502dfddfe8b2c7acdefaa5e-bittorrentecon.pdf | | link | http://bittorrent.org/bittorrentecon.pdf |
| related-to | [[Learn BitTorrent]] | | related-to | [[Learn BitTorrent]] |
Original "BitTorrent" paper by [[Bram Cohen]]. Original "BitTorrent" paper by [[Bram Cohen]].

View File

@ -20,9 +20,10 @@ In order to imagine, what do we mean by *BitTorrent - Codex Integration*, we nee
BitTorrent spec is build incrementally from so called [BitTorrent Enhancement Proposals (BEPs)](http://bittorrent.org/beps/bep_0000.html). Each BEP adds something to the BitTorrent Protocol. The most important BEPs to study in order to get a good initial grip on the BitTorrent protocol are: BitTorrent spec is build incrementally from so called [BitTorrent Enhancement Proposals (BEPs)](http://bittorrent.org/beps/bep_0000.html). Each BEP adds something to the BitTorrent Protocol. The most important BEPs to study in order to get a good initial grip on the BitTorrent protocol are:
- [BEP3 - The BitTorrent Protocol Specification](http://bittorrent.org/beps/bep_0003.html) - [BEP3 - The BitTorrent Protocol Specification](http://bittorrent.org/beps/bep_0003.html)
- [BEP5 - DHT Protocol](http://bittorrent.org/beps/bep_0005.html) - [[BEP5 - DHT Protocol]]
- [BEP9 - Extension for Peers to Send Metadata Files](http://bittorrent.org/beps/bep_0009.html) - [BEP9 - Extension for Peers to Send Metadata Files](http://bittorrent.org/beps/bep_0009.html)
- [BEP10 -Extension Protocol](http://bittorrent.org/beps/bep_0010.html) - [BEP10 -Extension Protocol](http://bittorrent.org/beps/bep_0010.html), see also [extension protocol for bittorrent](https://www.rasterbar.com/products/libtorrent/extension_protocol.html)
- [BEP11 - Peer Exchange (PEX)](http://bittorrent.org/beps/bep_0011.html)
- [BEP23 - Tracker Returns Compact Peer Lists](http://bittorrent.org/beps/bep_0023.html) - [BEP23 - Tracker Returns Compact Peer Lists](http://bittorrent.org/beps/bep_0023.html)
- [BEP29 - uTorrent transport protocol](http://bittorrent.org/beps/bep_0029.html) - [BEP29 - uTorrent transport protocol](http://bittorrent.org/beps/bep_0029.html)
@ -30,8 +31,8 @@ BitTorrent spec is build incrementally from so called [BitTorrent Enhancement Pr
Selection of some more important BitTorrent papers: Selection of some more important BitTorrent papers:
1. [[Incentives Build Robustness in BitTorrent]] 1. [[Incentives Build Robustness in BitTorrent]] - original "BitTorrent" paper by [[Bram Cohen]].
2. [[The Bittorrent P2P File-Sharing System - Measurements And Analysis]] 2. [[The Bittorrent P2P File-Sharing System - Measurements And Analysis]] - Paper from the creators of the [[Tribler]] protocol.
### Books ### Books

View File

@ -1,9 +1,17 @@
--- ---
tags: tags:
- bittorrent - bittorrent
link: https://transmissionbt.com
source: https://github.com/transmission/transmission
related-to:
--- ---
Offcial URL: https://transmissionbt.com
Repository: https://github.com/transmission/transmission #bittorrent
| link | https://transmissionbt.com |
| ---------- | ------------------------------------------- |
| source | https://github.com/transmission/transmission |
| related-to | |
[[Learn BitTorrent]] client. One of the three popular clients, the other are [[Deluge (BitTorrent)]] and [[qBittorrent]], with the most attractive looking website. Comparing to the other two, Transmission does not depend on [[libtorrent-rasterbar]], but rather has its own implementation of the BitTorrent protocol. [[Learn BitTorrent]] client. One of the three popular clients, the other are [[Deluge (BitTorrent)]] and [[qBittorrent]], with the most attractive looking website. Comparing to the other two, Transmission does not depend on [[libtorrent-rasterbar]], but rather has its own implementation of the BitTorrent protocol.
@ -12,3 +20,233 @@ Repository: https://github.com/transmission/transmission
It supports all major OS and has a native macos support. It supports all major OS and has a native macos support.
The latest release is from 30 May 2024. The latest release is from 30 May 2024.
### How does it look like?
TBD...
### Building
Some loose notes for now... TBD..
```bash
CMake Error in gtk/CMakeLists.txt:
Imported target "transmission::gtk_impl" includes non-existent path
"/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/ffi"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
CMake Error in gtk/CMakeLists.txt:
Imported target "transmission::gtk_impl" includes non-existent path
"/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include/ffi"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
-- Generating done (0.2s)
CMake Generate step failed. Build files cannot be regenerated correctly.
~/code/open-source/bittorrent/transmission-mac-cmake(main)
» brew uninstall gtk4 gtkmm4 1 ↵
Uninstalling /opt/homebrew/Cellar/gtk4/4.16.3... (598 files, 57.8MB)
Uninstalling /opt/homebrew/Cellar/gtkmm4/4.16.0... (700 files, 9.7MB)
==> Autoremoving 8 unneeded formulae:
cairomm
gdk-pixbuf
glibmm
graphene
hicolor-icon-theme
libepoxy
libsigc++
pangomm
Uninstalling /opt/homebrew/Cellar/gdk-pixbuf/2.42.12... (152 files, 4.0MB)
Uninstalling /opt/homebrew/Cellar/pangomm/2.54.0... (70 files, 755.8KB)
Uninstalling /opt/homebrew/Cellar/graphene/1.10.8... (37 files, 1MB)
Uninstalling /opt/homebrew/Cellar/hicolor-icon-theme/0.18... (8 files, 80.8KB)
Uninstalling /opt/homebrew/Cellar/libepoxy/1.5.10... (11 files, 2.6MB)
Uninstalling /opt/homebrew/Cellar/glibmm/2.82.0... (449 files, 6.4MB)
Uninstalling /opt/homebrew/Cellar/cairomm/1.18.0... (43 files, 592.4KB)
Uninstalling /opt/homebrew/Cellar/libsigc++/3.6.0... (52 files, 378.3KB)
~/code/open-source/bittorrent/transmission-mac-cmake(main)
» cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo
-- Looking for clang-tidy
-- Looking for clang-tidy - not found
-- Configuring done (0.4s)
CMake Error in gtk/CMakeLists.txt:
Imported target "transmission::gtk_impl" includes non-existent path
"/opt/homebrew/Cellar/gtkmm4/4.16.0/include/gtkmm-4.0"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
CMake Error in gtk/CMakeLists.txt:
Imported target "transmission::gtk_impl" includes non-existent path
"/opt/homebrew/Cellar/gtkmm4/4.16.0/include/gtkmm-4.0"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
-- Generating done (0.2s)
CMake Generate step failed. Build files cannot be regenerated correctly.
~/code/open-source/bittorrent/transmission-mac-cmake(main)
» ninja clean 1 ↵
ninja: error: loading 'build.ninja': No such file or directory
~/code/open-source/bittorrent/transmission-mac-cmake(main)
» rm -rf CMakeCache.txt CMakeFiles/ 1 ↵
~/code/open-source/bittorrent/transmission-mac-cmake(main)
» cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo
-- Looking for clang-tidy
-- Looking for clang-tidy - not found
-- Configuring done (0.5s)
CMake Error in gtk/CMakeLists.txt:
Imported target "transmission::gtk_impl" includes non-existent path
"/opt/homebrew/Cellar/gtkmm4/4.16.0/include/gtkmm-4.0"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
CMake Error in gtk/CMakeLists.txt:
Imported target "transmission::gtk_impl" includes non-existent path
"/opt/homebrew/Cellar/gtkmm4/4.16.0/include/gtkmm-4.0"
in its INTERFACE_INCLUDE_DIRECTORIES. Possible reasons include:
* The path was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and references files it does not
provide.
-- Generating done (0.2s)
CMake Generate step failed. Build files cannot be regenerated correctly.
```
https://doc.qt.io/qt-6/macos.html#supported-versions
https://github.com/fontforge/fontforge/discussions/5164
https://github.com/fontforge/fontforge/issues/5153
https://www.reddit.com/r/MacOS/comments/1fs551h/macos_15_sequoia_update_caused_include_errors_in_c/
```bash
xcrun -sdk macosx --show-sdk-path
pkg-config --cflags gtkmm-4.0
pkg-config --cflags gtk4
```
`CMakeLists.txt` around line 361:
```cmake
if(GTK_FOUND)
add_library(transmission::gtk_impl INTERFACE IMPORTED)
target_compile_options(transmission::gtk_impl
INTERFACE
${GTK${GTK_VERSION}_CFLAGS_OTHER})
target_include_directories(transmission::gtk_impl
INTERFACE
/opt/homebrew/Cellar/gtk4/4.16.3/include/gtk-4.0
/opt/homebrew/Cellar/pango/1.54.0/include/pango-1.0
/opt/homebrew/Cellar/harfbuzz/10.0.1_1/include/harfbuzz
/opt/homebrew/Cellar/fribidi/1.0.16/include/fribidi
/opt/homebrew/Cellar/graphite2/1.3.14/include
/opt/homebrew/Cellar/gdk-pixbuf/2.42.12/include/gdk-pixbuf-2.0
/opt/homebrew/Cellar/libtiff/4.7.0/include
/opt/homebrew/opt/zstd/include
/opt/homebrew/Cellar/xz/5.6.3/include
/opt/homebrew/Cellar/jpeg-turbo/3.0.4/include
/opt/homebrew/Cellar/cairo/1.18.2/include/cairo
/opt/homebrew/Cellar/fontconfig/2.15.0/include
/opt/homebrew/opt/freetype/include/freetype2
/opt/homebrew/opt/libpng/include/libpng16
/opt/homebrew/Cellar/libxext/1.3.6/include
/opt/homebrew/Cellar/libxrender/0.9.11/include
/opt/homebrew/Cellar/libx11/1.8.10/include
/opt/homebrew/Cellar/libxcb/1.17.0/include
/opt/homebrew/Cellar/libxau/1.0.11/include
/opt/homebrew/Cellar/libxdmcp/1.1.5/include
/opt/homebrew/Cellar/pixman/0.42.2/include/pixman-1
/opt/homebrew/Cellar/graphene/1.10.8/include/graphene-1.0
/opt/homebrew/Cellar/graphene/1.10.8/lib/graphene-1.0/include
/opt/homebrew/Cellar/glib/2.82.2/include
/opt/homebrew/Cellar/glib/2.82.2/include/glib-2.0
/opt/homebrew/Cellar/glib/2.82.2/lib/glib-2.0/include
/opt/homebrew/opt/gettext/include
/opt/homebrew/Cellar/pcre2/10.44/include
/opt/homebrew/Cellar/xorgproto/2024.1/include
/Library/Developer/CommandLineTools/SDKs/MacOSX15.0.sdk/usr/include/ffi
/opt/homebrew/Cellar/gtkmm4/4.16.0/include/gtkmm-4.0
/opt/homebrew/Cellar/gtkmm4/4.16.0/lib/gtkmm-4.0/include
/opt/homebrew/Cellar/pangomm/2.54.0/include/pangomm-2.48
/opt/homebrew/Cellar/pangomm/2.54.0/lib/pangomm-2.48/include
/opt/homebrew/Cellar/glibmm/2.82.0/include/giomm-2.68
/opt/homebrew/Cellar/glibmm/2.82.0/lib/giomm-2.68/include
/opt/homebrew/Cellar/glib/2.82.2/include/gio-unix-2.0
/opt/homebrew/Cellar/glibmm/2.82.0/include/glibmm-2.68
/opt/homebrew/Cellar/glibmm/2.82.0/lib/glibmm-2.68/include
/opt/homebrew/Cellar/glib/2.82.2/include
/opt/homebrew/Cellar/cairomm/1.18.0/include/cairomm-1.16
/opt/homebrew/Cellar/cairomm/1.18.0/lib/cairomm-1.16/include
/opt/homebrew/Cellar/libsigc++/3.6.0/include/sigc++-3.0
/opt/homebrew/Cellar/libsigc++/3.6.0/lib/sigc++-3.0/include
/opt/homebrew/Cellar/gtk4/4.16.3/include/gtk-4.0/unix-print)
# ${GTK${GTK_VERSION}_INCLUDE_DIRS})
target_link_directories(transmission::gtk_impl
INTERFACE
${GTK${GTK_VERSION}_LIBRARY_DIRS})
target_link_libraries(transmission::gtk_impl
INTERFACE
${GTK${GTK_VERSION}_LIBRARIES})
endif()
```

View File

@ -1,8 +1,8 @@
--- ---
tags: tags:
- bittorrent - bittorrent
- "#obsidian" - obsidian
- "#notion" - notion
source: https://github.com/marcinczenko/bittorrent-codex-docs source: https://github.com/marcinczenko/bittorrent-codex-docs
--- ---
#bittorrent #obsidian #notion #bittorrent #obsidian #notion
@ -18,7 +18,7 @@ In this repository your will find a complete documentation of our BitTorrent/Cod
I was trying to answer the following questions: I was trying to answer the following questions:
1. [[How BitTorrent/Codex integration may look like? ]] 1. [[How BitTorrent-Codex integration may look like? ]]
2. [[What are existing (open source) BitTorrent clients?]] 2. [[What are existing (open source) BitTorrent clients?]]
3. [[What are the challenges ahead and how big the effort would be?]] 3. [[What are the challenges ahead and how big the effort would be?]]