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

3
.gitignore vendored
View File

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

3
.obsidian/app.json vendored
View File

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

View File

@ -1,5 +1,5 @@
{
"format": "YYYY-MM-DD, ddd",
"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,16 +3,16 @@ tags:
- paper
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]]"
---
#paper
| authors | Bram Cohen |
| ---------- | -------------------------------------------------------------------------------------------------- |
| link | https://stuker.com/wp-content/uploads/import/i-1fd3ae7c5502dfddfe8b2c7acdefaa5e-bittorrentecon.pdf |
| related-to | [[Learn BitTorrent]] |
| authors | Bram Cohen |
| ---------- | ---------------------------------------- |
| link | http://bittorrent.org/bittorrentecon.pdf |
| related-to | [[Learn BitTorrent]] |
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:
- [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)
- [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)
- [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:
1. [[Incentives Build Robustness in BitTorrent]]
2. [[The Bittorrent P2P File-Sharing System - Measurements And Analysis]]
1. [[Incentives Build Robustness in BitTorrent]] - original "BitTorrent" paper by [[Bram Cohen]].
2. [[The Bittorrent P2P File-Sharing System - Measurements And Analysis]] - Paper from the creators of the [[Tribler]] protocol.
### Books

View File

@ -1,9 +1,17 @@
---
tags:
- 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.
@ -12,3 +20,233 @@ Repository: https://github.com/transmission/transmission
It supports all major OS and has a native macos support.
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:
- bittorrent
- "#obsidian"
- "#notion"
- obsidian
- notion
source: https://github.com/marcinczenko/bittorrent-codex-docs
---
#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:
1. [[How BitTorrent/Codex integration may look like? ]]
1. [[How BitTorrent-Codex integration may look like? ]]
2. [[What are existing (open source) BitTorrent clients?]]
3. [[What are the challenges ahead and how big the effort would be?]]
@ -26,8 +26,8 @@ Answering those three questions should give us answer to the big ultimate questi
Getting there in short time is not easy, especially without recent hands-on experience with the BitTorrent protocol. Thus in this quest, the following actions are being taken:
1. Identity [[Learn BitTorrent | the best resources to learn BitTorrent protocol]], to get some intuition about the protocol. This is mostly to answer the question number (1) above.
2. [[Comparison of BitTorrent clients | Compare existing BitTorrent clients]], trying to focus on those that are open sourced. We want to learn about their market share, how do they look and feel, and how easy would it be to work with their codebase.
1. Identity [[Learn BitTorrent|the best resources to learn BitTorrent protocol]], to get some intuition about the protocol. This is mostly to answer the question number (1) above.
2. [[Comparison of BitTorrent clients|Compare existing BitTorrent clients]], trying to focus on those that are open sourced. We want to learn about their market share, how do they look and feel, and how easy would it be to work with their codebase.
3. Chose one of the client, and try to cat it through and learn how easy is to do what we think we want to do. What are the obstacles, and unexpected difficulties? This is the major part of our investigation.
### Obsidian