Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
peer-tweet — BitTorrentのDHTを使用した分散型フィード。アイデアはArvidとThe_8472の「DHT RSS feeds」http://libtorrent.org/dht_rss.html から。 | Kitploit
ツール/GitHubGitHub/lmatteis/peer-tweet
OSINT (オープンソースインテリジェンス)情報収集暗号化
GitHublmatteis/peer-tweet

peer-tweet

BitTorrentのDHTを使用した分散型フィード。アイデアはArvidとThe_8472の「DHT RSS feeds」http://libtorrent.org/dht_rss.html から。

リポジトリを見る
8643410年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

PeerTweet

BitTorrentのDHTを使用した分散型フィード。ArvidとThe_8472のアイデア「DHT RSSフィード」http://libtorrent.org/dht_rss.html

スクリーンショット

PeerTweet

クイックリンク

  • 最新のバイナリはリリースページからダウンロードしてください。
  • PeerTweetアドレスはアドレス一覧のイシューページで見つけて共有してください。

PeerTweetとは?

BitTorrentのDHTは、おそらくインターネット上で最も耐障害性が高く、検閲耐性のあるネットワークの一つです。PeerTweetはこのネットワークを使用して、ユーザーがツイートを聞いている誰にでもブロードキャストできるようにします。PeerTweetを起動すると、@33cwte8iwWn7uhtj9MKCs4q5Ax7Bのようなハッシュが生成されます。これはTwitterのユーザー名(例:@lmatteis)に似ています。違いは、投稿内容を完全に制御できることです。そのアドレスに関連付けられた秘密鍵を自分だけが所有しているからです。さらに、DHTのおかげで、投稿を政府や機関によって止められることはありません。

信頼できる(スパムでない)他のPeerTweetアドレスを見つけたら、フォローできます。これにより、クライアントはそのユーザーのツイートを保存し、時々DHTに再ブロードキャストしてフィードを生かし続けるように設定されます。このフォローによる協力により、フィードはDHTネットワーク上で存続できます。PeerTweetプロトコルは、私はちょうど@919c..をフォローしました や 私はちょうど@9139..をいいねしました、私はちょうど@5789..をリツイートしましたなどのアクションも公開します。これにより、新しいユーザーが信頼できる他のアドレスを見つけることが可能になります。もし私がユーザー@6749..を信頼していて、そのユーザーが@9801..をフォローしているなら、@9801..をスパムではないとマークできるかもしれません。このようにアクションを公開ツイートするアイデアは、将来このソーシャルグラフの強力なクロール分析を可能にします。

どのように動作するか?

PeerTweetは、DHT RSSフィード提案(http://libtorrent.org/dht_rss.html) で提供されている実装ガイドラインのほとんどに従っています。現在のBEP44提案の上に実装されており、DHTネットワーク上でget()とput()機能を提供します。つまり、DHTを現在ダウンロード中のトレントを通知するためだけでなく、少量のデータ(約1000バイト)のputとgetにも使用できるということです。

PeerTweetは2種類のアイテムを区別します:

  1. フィードヘッド。これはフィード内で唯一の可変アイテムであり、フォロワーがあなたのアイテムをダウンロードして更新を見つけるために使用します。ヘッドのハッシュはフォロワーが更新を知るために使用するもので、あなたのアイデンティティであり、フィードを他の人に知らせるために使用できます(@lmattesハンドルに類似)。フィードヘッドはおおよそ以下のように構造化されています:
root@kitploit:~
{
  "d": <unsigned int of minutes passed from epoch until head was modified>,
  "next": <up to 80 bytes of the next 4 items in the feed, directly 1,2,3 and 4 hops away. 20 bytes each.>,
  "n": <utf8 name of the feed>,
  "a": <utf8 http url of an image to render as your avatar>,
  "i": <utf8 description of your feed>
}
  1. フィードアイテム。これらは不変アイテムであり、実際のツイートを含み、以下のように構造化されています:
root@kitploit:~
{
  "d": <unsigned int of minutes passed from epoch until when item was created>,
  "next": <up to 80 bytes of the next 4 items in the feed, 1, 2, 4 and 8 hops away. 20 bytes each.>,
  "t": <utf8 contents of your tweet. up to 140 chars>
}

スキップリスト

アイテムがリスト内の他のアイテムへの複数のポインタを持つ理由は、並列ルックアップを可能にするためです。私たちのスキップリスト実装は通常の実装とは異なり、ネットワークルックアップに特化しており、各アイテムは4つのポインタを含みます。そのため、アイテムを受け取ったときに、リスト内の他のアイテムに対して4つのget()リクエストを並列に発行できます。これは、DHTルックアップの応答時間が予測不可能なため、ユーザーのフィードにタイムリーにアクセスするために重要です。

フォロー

誰かをフォローすると、基本的にクライアントにその人のフィードをダウンロードし、定期的に再公開するように指示することになります。DHTネットワークは永続的ではなく、アイテムは約30分でネットワークからすぐに消えます。フィードを存続させるためには、多くのフォロワーを持つことが重要です。そうでなければ、どこかで24時間稼働するサーバーを用意し、30分ごとにアイテムを再公開してフィードを維持することもできます。

インストール

依存関係をインストールします。

root@kitploit:~
$ npm install

ネイティブモジュールのインストール

アプリにはいくつかのネイティブバインディングが付属しています。私のコンピュータで動作させるために以下のコードを使用しました:

Source: https://github.com/atom/electron/blob/master/docs/tutorial/using-native-node-modules.md

root@kitploit:~
npm install --save-dev electron-rebuild

# Every time you run "npm install", run this
./node_modules/.bin/electron-rebuild

# On Windows if you have trouble, try:
.\node_modules\.bin\electron-rebuild.cmd

Windowsでed25519-supercopを動作させるには、node-gypと、node-gypが必要とするPython2.7やVisual Studioの関連ファイルもすべてインストールする必要がありました: https://github.com/nodejs/node-gyp

次に、Windowsでビルドするために以下のコマンドを実行します:

root@kitploit:~
npm install -g node-gyp
cd ./node_modules/ed25519-supercop/
HOME=~/.electron-gyp node-gyp rebuild --target=0.36.9 --arch=x64 --dist-url=https://atom.io/download/atom-shell

実行

2つのコマンドを__同時に__別々のコンソールタブで実行します。

root@kitploit:~
$ npm run hot-server
$ npm run start-hot

注:Nodeバージョン4以上、npmバージョン2以上が必要です。

Chrome DevToolsの切り替え

  • OS X: Cmd Alt I or F12
  • Linux: Ctrl Shift I or F12
  • Windows: Ctrl Shift I or F12

詳細はelectron-debugを参照してください。

Redux DevToolsの切り替え

  • All platforms: Ctrl+H

詳細はredux-devtools-dock-monitorを参照してください。

外部依存

webpackでビルドできないサードパーティライブラリを使用する場合は、webpack.config.base.jsにリストする必要があります:

root@kitploit:~
externals: [
  // put your node 3rd party libraries which can't be built with webpack here (mysql, mongodb, and so on..)
]

その行はファイル内にあります。

CSS Modulesサポート

CSSファイルをcss-modulesとして.module.cssを使用してインポートします。

パッケージング

root@kitploit:~
$ npm run package

すべてのプラットフォーム用にアプリをパッケージングするには:

root@kitploit:~
$ npm run package-all

オプション

  • --name, -n: Application name (default: ElectronReact)
  • --version, -v: Electron version (default: latest version)
  • --asar, -a: asar support (default: false)
  • --icon, -i: Application icon
  • --all: pack for all platforms

electron-packagerを使用して、--allオプションでダーウィン(OS X)、Linux、Win32(Windows)プラットフォーム向けにアプリをパッケージングします。ビルド後、releaseフォルダにそれらが見つかります。そうでなければ、自分のOS用のものだけが見つかります。

test、tools、releaseフォルダおよびpackage.jsonのdevDependenciesはデフォルトで無視されます。

デフォルトの無視モジュール

アプリケーションサイズ削減のために、いくつかのモジュールのpeerDependenciesをデフォルトで無視オプションに追加しています。

  • babel-core is required by babel-loader and its size is ~19 MB
  • node-libs-browser is required by webpack and its size is ~3MB.

注: 上記のモジュールをランタイムで使用したい場合(例:require('babel/register'))、それらをdevDependenciesからdependenciesに移動する必要があります。

非WindowsプラットフォームからのWindowsアプリのビルド

詳細は非WindowsプラットフォームからのWindowsアプリのビルドを参照してください。

ネイティブ風UI

ネイティブ風のユーザーインターフェース(OS X El CapitanおよびWindows 10)を希望する場合、react-desktopが最適かもしれません。

メンテナー

これはhttps://github.com/chentsulin/electron-react-boilerplateプロジェクトのフォークです。

ライセンス

MIT

ツールをダウンロード