libtorrent の version 2 の RC版 が 出ました。
最近はP2P系の技術を追っていませんでしたが、良い機会なので、追ってみようかと思います。
で、そのレポートの1回目です。
今回の記事には以下の効用があります。
- libtorrent の 開発環境の Dockerfile
- libtorrent の hello world の コード
Index
プラットフォーマに依存しないサービス
Libtorrrent の使い方
プラットフォーマと検閲
2020年の アメリカの大統領選挙で、Google などのビックテックによる多くの検閲が行われました。
それによって、プラットフォーマーによる検閲が多くの人の知るところになりました。
以前から、Google Drive のファイルが勝手に消される
※ わかり易いところで 二次元のポルノなど https://news.yahoo.co.jp/byline/yamamotoichiro/20191124-00152188/
など、このような事は、一部の界隈では知られていましたが、今まで知られていませんでした。
今、検閲のしないプラットフォーマーが望まれています。
しかし、検閲のないプラッフォームはありません。宗教的倫理観やサービスの趣旨によって必ず検閲をする必要が出てきます。
わかり易いところだと、グロい画像や、暴力的な内容や、そもそもそのサービスの意図に沿わない内容の情報などです。
プラットフォーマに依存しない P2P
これらの検閲の問題は、プラットフォーマーの倫理観では解決できません。プロトコルによって解決すべきものです。
Bittorrent ネットワークでの 例 と 可能性
ここでは、Bittorrent を例に P2Pでこの問題が解決される例を上げます。
Torrent の プロトコル では、 データーをダウンロードする人は、そのままデータの配信者になります。
プラットフォーマーが負っていた責任は、利用者が持つ事になり。プラットフォーマーが検閲を行う必要がなくなります。
Bittorrent の ネットワークに参加してみよう
実際に Bittorrent の ネットワークに参加してみましょう..
BitTorrent とは
Bittorrent は ファイル を共有する P2Pネットワークです。
https://ja.wikipedia.org/wiki/BitTorrent
データーのダウンロードする人が、データーの配信者になるという特徴をもっています。
libTorrent
この記事では、 Bittorrent に参加するのに、 libtorrent を利用します。
https://www.libtorrent.org/
開発環境
Docker 環境を用意しました。
準備
git clone https://github.com/kyorohiro/libtorrent_codeserver
cd libtorrent_codeserver
cd res
git clone https://github.com/arvidn/libtorrent
cd libtorrent
git checkout RC_2_0
git submodule init
git submodule update
code-server (vscode ) を立ち上げる
docker-compose build
docker-compose up -d
libtorrent も このタイミングでビルドしています。
起動してHello World
code-server が無事に立ち上がっていれば、 "http://127.0.0.1:8443/ "
※ 127.0.0.1 は 環境に依存します
ビルド
g++ main_simple_torrent.cpp -ltorrent-rasterbar -lpthread
実行
./a.out xxx.torrent
xxx.torrent は あなたが指定した Torrent ファイル
次回
とりあえず動作させる事ができるようになったと思います。
次回は、torrent について、解説しながら
libtorrentの使い方をマスターしていきます。
PS
Code
REF
Other
dev.to にも投稿した
https://dev.to/kyorohiro/code-server-for-libtorrent-2-0-1m85
以前にまとめた Torrent 関連の情報
"なぜなに Torrent 2014" https://nazenani-torrent.firefirestyle.net/
Dart で書かれています。 Dart2系では動作しません。