Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
peer-tweet — Децентрализованные ленты на основе DHT BitTorrent. Идея от Arvid и The_8472 «DHT RSS feeds» http://libtorrent.org/dht_rss.html | Kitploit
Инструменты/GitHubGitHub/lmatteis/peer-tweet
OSINT (Разведка открытых источников)Сбор информацииКриптография
GitHublmatteis/peer-tweet

peer-tweet

Децентрализованные ленты на основе DHT BitTorrent. Идея от Arvid и The_8472 «DHT RSS feeds» http://libtorrent.org/dht_rss.html

Репозиторий
8643410 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

PeerTweet

Децентрализованные ленты с использованием DHT BitTorrent. Идея от Arvid и The_8472 "DHT RSS feeds" http://libtorrent.org/dht_rss.html

Скриншот

PeerTweet

Быстрые ссылки

  • Загрузите последние бинарные файлы со страницы релизов.
  • Найдите и поделитесь адресами PeerTweet на странице вопросов по адресам.

Что такое PeerTweet?

DHT BitTorrent, вероятно, одна из самых устойчивых и цензуроустойчивых сетей в интернете. PeerTweet использует эту сеть, чтобы позволить пользователям транслировать твиты всем, кто слушает. Когда вы запускаете PeerTweet, он генерирует хэш @33cwte8iwWn7uhtj9MKCs4q5Ax7B, который похож на ваше имя пользователя в Twitter (например, @lmatteis). Разница в том, что вы полностью контролируете, что может быть опубликовано, потому что только вы владеете закрытым ключом, связанным с таким адресом. Кроме того, благодаря DHT, то, что вы публикуете, не может быть остановлено никаким правительством или учреждением.

Как только вы найдете другие адреса PeerTweet, которым доверяете (и которые не являются спамом), вы можете подписаться на них. Это настраивает ваш клиент на хранение твитов этого пользователя и периодическую их трансляцию в DHT для поддержания их ленты. Такое сотрудничество при подписке на аккаунты позволяет лентам оставаться активными в сети DHT. Протокол PeerTweet также публикует ваши действия, такие как I just followed @919c.. или I just liked @9139.. и I just retweeted @5789... Это дает возможность новым пользователям находить другие адреса, которым они могут доверять; если я доверяю пользователю @6749.., а он подписан на @9801.., то, возможно, я могу пометить @9801.. как не спам. Эта идея публичного твитинга о ваших действиях также позволяет проводить мощный будущий анализ социального графа с помощью краулинга.

Как это работает?

PeerTweet следует большинству рекомендаций по реализации, предоставленных в предложении DHT RSS feed http://libtorrent.org/dht_rss.html. Мы реализовали его поверх текущего предложения BEP44, которое предоставляет функциональность get() и put() через сеть DHT. Это означает, что вместо использования DHT только для объявления о том, какие торренты в данный момент загружаются, мы можем также размещать и получать небольшие объемы данных (примерно 1000 байт).

PeerTweet различает два типа элементов:

  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/7, который поддерживает вашу ленту активной, перепубликовывая элементы каждые 30 минут.

Установка

Установите зависимости.

root@kitploit:~
$ npm install

Установка нативных модулей

Приложение поставляется с некоторыми нативными привязками. Я использовал этот код, чтобы оно работало на моем компьютере:

Источник: 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

Чтобы заставить ed25519-supercop работать в Windows, мне также пришлось установить 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

Запуск

Запустите эти две команды одновременно в разных вкладках консоли.

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

Примечание: требуется версия node >= 4 и версия npm >= 2.

Переключение Chrome DevTools

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

Смотрите electron-debug для получения дополнительной информации.

Переключение Redux DevTools

  • Все платформы: 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: Имя приложения (по умолчанию: ElectronReact)
  • --version, -v: Версия Electron (по умолчанию: последняя версия)
  • --asar, -a: поддержка asar (по умолчанию: false)
  • --icon, -i: Иконка приложения
  • --all: сборка для всех платформ

Используйте electron-packager для упаковки вашего приложения с опцией --all для платформ darwin (osx), linux и win32 (windows). После сборки вы найдете их в папке release. В противном случае вы найдете только одну для вашей ОС.

test, tools, release folder and devDependencies in package.json will be ignored by default.

Модули, игнорируемые по умолчанию

Мы добавляем peerDependencies некоторых модулей в опцию игнорирования по умолчанию для уменьшения размера приложения.

  • babel-core требуется babel-loader, и его размер ~19 МБ
  • node-libs-browser требуется webpack, и его размер ~3 МБ

Примечание: Если вы хотите использовать любой из вышеперечисленных модулей во время выполнения, например: require('babel/register'), вы должны переместить их из devDependencies в dependencies.

Сборка приложений для Windows с платформ, отличных от Windows

Пожалуйста, ознакомьтесь с Сборкой приложений для Windows с платформ, отличных от Windows.

Интерфейс, похожий на нативный

Если вы хотите иметь интерфейс, похожий на нативный (OS X El Capitan и Windows 10), react-desktop может идеально вам подойти.

Сопровождающие

Это форк проекта https://github.com/chentsulin/electron-react-boilerplate.

Лицензия

MIT

Скачать инструмент