Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
Дорогие коллеги, хочу поделиться с форумом продуктом, который я пилил в течение последних двух месяцев. Наконец он начал приобретать законченный вид, и становится важным вопрос отзывов, пожеланий и критики. Приглашаю всех, кому интересна тема p2p обмена, ко мне на гитхаб: тынц

Если у кого-то есть мысли, прошу не стесняться, давайте поговорим в этой теме о возможных направлениях дальнейшего развития!
10 авг 16, 10:03    [19523384]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Смотреть в сорцы гитхаба - это не формат форума. ИМХО. Ты лучшей дай словесный брифинг.
Что тебя мотивировало к созданию? Как это использовать? В чем преимущество для нас
скажем в сравнении с Vuze?
10 авг 16, 10:39    [19523561]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
no56892
Member

Откуда:
Сообщений: 590
В том, что бы поисковики проиндексировали видимо.
10 авг 16, 10:58    [19523646]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
mayton
Как это использовать?

Пока что могу предложить посмотреть описание и примеры использования на гитхабе. Заранее прошу прощения, если нужна версия на русском..

mayton
В чем преимущество для нас скажем в сравнении с Vuze?

Vuze это немного другая весовая категория. Насколько мне известно, это полновесный и непростой в изучении коммерческий клиент, единственная задача которого это качать торренты. С полноценным GUI, CLI и прочими фишками, которые нужны только разработчикам программ-клиентов для домашних пользователей. Т.е. наверно это правильный выбор, если стоит задача написать, к примеру, скачивалку для андроида. И есть $$$ на официальный саппорт (судя по форуму, количество багов прямо пропорционально функционалу, и правятся они весьма неспешно).

Bt же мне видится как альтернатива ttorrent, bitlet и т.д. -- простая в освоении библиотека, на базе которой можно быстро и без особых проблем собрать какую-нибудь корпоративную систему репликации или просто поэкспериментировать с новыми BEP'ами, поучаствовать в развитии p2p в целом. Т.е. целевая аудитория - это лайт-энтерпрайз и исследователи-энтузиасты :)
10 авг 16, 12:25    [19524190]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Andrei T
Bt же мне видится как альтернатива ttorrent, bitlet и т.д. -- простая в освоении библиотека, на базе которой можно быстро и без особых проблем собрать какую-нибудь корпоративную систему репликации или просто поэкспериментировать с новыми BEP'ами, поучаствовать в развитии p2p в целом. Т.е. целевая аудитория - это лайт-энтерпрайз и исследователи-энтузиасты :)

Спасибо.

По поводу репликации. Насколько это безопасно? Я так понимаю что нужно либо шифровать свой контент
либо устанавливать какие-то строгие правила для p2p. Либо мы получим эдакий себе секрет полишинеля.
10 авг 16, 12:34    [19524261]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
mayton
По поводу репликации. Насколько это безопасно? Я так понимаю что нужно либо шифровать свой контент
либо устанавливать какие-то строгие правила для p2p.

Если речь идет о репликации (и в целом обмену sensitive данными) по сетям общего пользования, то наверно нужно шифровать. Либо трафик на лету, либо раздаваемый контент. Стандартного похода тут нет, каждый клиент/либа реализуют это по-своему. В libtorrent, например, есть поддержка SSL с кодированием/декодированием на лету.

Если обмен идет внутри корпоративной сети или по VPN, то наверно можно ограничиться цифровой подписью torrent-файла с информацией о раздаче. От MitM торренты защищены автоматически -- в torrent-файле есть чексуммы для всех раздаваемых данных. На тему использования сертификатов и подписей есть стандартный BEP: http://www.bittorrent.org/beps/bep_0035.html. Вот его было бы неплохо реализовать
10 авг 16, 13:05    [19524490]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
Вообще вы можно сказать сходу попали в яблочко. Пожалуй две наиболее востребованные фичи сейчас - это DHT и security. В совокупности они обеспечивают полностью защищенный децентрализованный обмен данными. Для любительской библиотеки реализация этих двух моемнтов обеспечивает выход в "высшую лигу". Имхо :)
10 авг 16, 13:16    [19524569]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Нелетает пока твой аскетичный example:

public static void main( String[] args ) throws Exception
    {
        // get metainfo file url and download location from the program arguments
        URL metainfoUrl = new URL("http://mirror.as43289.net/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1511.torrent");
        File targetDirectory = new File("out");

        // create default shared runtime without extensions
        BtRuntime runtime = BtRuntimeBuilder.defaultRuntime();

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" bt.BtException: Wrong number of chunk hashes in the torrent: too many
	at bt.data.DataDescriptor.init(DataDescriptor.java:118)
	at bt.data.DataDescriptor.<init>(DataDescriptor.java:38)
	at bt.data.DataDescriptorFactory.createDescriptor(DataDescriptorFactory.java:18)
	at bt.service.AdhocTorrentRegistry.lambda$getOrCreateDescriptor$1(AdhocTorrentRegistry.java:54)
	at java.util.Optional.orElseGet(Optional.java:267)
	at bt.service.AdhocTorrentRegistry.getOrCreateDescriptor(AdhocTorrentRegistry.java:51)
	at bt.Bt.createClient(Bt.java:85)
	at bt.Bt.lambda$build$0(Bt.java:73)
	at bt.Bt$LazyBtClient.initClient(Bt.java:118)
	at bt.Bt$LazyBtClient.startAsync(Bt.java:133)
	at mayton.App.main(App.java:35)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)

Чет не так?
10 авг 16, 16:27    [19525679]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
mayton, спасибо за потраченное время, вам повезло с раздачей, это досадный и коварный баг)
зафиксил
10 авг 16, 21:09    [19526759]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Andrei T, я потратил около 5 минут.

Вам тоже спасибо. Интересный софт и я попробую для себя придумать ему применение.
11 авг 16, 01:22    [19527377]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
Спешу поделиться новостями -- готовится к релизу версия 1.1.
Помимо нескольких важных доработок и багфиксов также добавлен модуль DHT:
https://github.com/atomashpolskiy/bt/tree/dht-experimental
Таким образом, качает теперь со свистом.
14 мар 17, 16:22    [20294298]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
На днях зарелизил версию 1.2 с полной поддержкой стандартного протокола шифрования сообщений. Может быть актуально как для обычных торрент-качалок, так и для внутрикорпоративного использования.

Также на сайте появилось несколько новых туториалов по использованию либы:
1. настройка шифрования сообщений
2. как добавить в фреймворк кастомную фичу
3. за 10 минут пишем p2p мессенджер с кастомными сообщениями (не bittorrent)

Всем добра!
31 май 17, 12:57    [20527049]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
В версии 1.3 добавлены магнет-ссылки и, наконец-то, опубликован в maven central модуль для работы с DHT

Посмотреть демо
2 авг 17, 16:13    [20695426]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
Апну тему :) С августа было два релиза, в т.ч. ряд значительных улучшений:
- поддержка NIO файловых систем (например, Jimfs, an in-memory file system for Java 7+)
- события с колбэками и новые методы в клиентском API для более удобного управления загрузкой
- миграция на NIO селектор для приема сообщений от пиров, что существенно уменьшило расход ресурсов
- более удобный API для регистрации расширений

Более подробно здесь: http://atomashpolskiy.github.io/bt/
23 окт 17, 17:55    [20893385]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
На днях зарелизил версию 1.6. Основное нововведение - Local Service Discovery, или поиск локальных пиров через мультикаст.

Также было сделано несколько минорных улучшений:
- возможность отключать стандартные расширения типа Peer Exchange и вышеупомянутого LSD
- автоматическое отключение шифрования, если используемая JRE не поддерживает длинные ключи
- оптимизация расхода памяти посредством переиспользования  send/receive буферов в новых соединениях

Велкам!
31 янв 18, 13:26    [21154107]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
kazeboba
Member

Откуда:
Сообщений: 1
Привет, есть ли возможность осуществлять закачку частей торрента последовательно(для медиаплеера)? Если да, то как? Спасибо!
25 фев 18, 15:49    [21216817]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10177
Пиявки "скачивают" в том порядке, какой сложится на гуще раздающих.
Хочется упорядоченности "для медиаплеера" - используйте более другой протокол.
25 фев 18, 17:28    [21216991]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
kazeboba
Привет, есть ли возможность осуществлять закачку частей торрента последовательно(для медиаплеера)? Если да, то как? Спасибо!

Привет! Да, такая возможность есть. Надо в билдере клиента указать последовательный "селектор". Используя пример кода из основного README, получится примерно так:
// enable multithreaded verification of torrent data
Config config = new Config() {
    @Override
    public int getNumOfHashingThreads() {
        return Runtime.getRuntime().availableProcessors() * 2;
    }
};

// enable bootstrapping from public routers
Module dhtModule = new DHTModule(new DHTConfig() {
    @Override
    public boolean shouldUseRouterBootstrap() {
        return true;
    }
});

// get download directory
Path targetDirectory = new File(...).toPath();

// create file system based backend for torrent data
Storage storage = new FileSystemStorage(targetDirectory);

// create client with a private runtime
BtClient client = Bt.client()
        .config(config)
        .storage(storage)
        .magnet("magnet:?xt=urn:btih:af0d9aa01a9ae123a73802cfa58ccaf355eb19f1")
        .autoLoadModules()
        .module(dhtModule)
        .selector(SequentialSelector.sequential())
        .stopWhenDownloaded()
        .build();

// launch
client.startAsync().join();


Более реальный пример настройки и создания клиента можно посмотреть в CLI загрузчике и его README. В частности, CLI применяет последовательную закачку, если указан флаг -S. Очень удобно для просмотра фильмов параллельно с загрузкой
25 фев 18, 20:15    [21217324]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
Опубликована моя статья на habrahabr "Пишем свой BitTorrent клиент"
https://habrahabr.ru/post/350076/
27 фев 18, 18:46    [21223180]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
PPA
Member

Откуда: Караганда -> Липецк
Сообщений: 812
Andrei T,

> на базе которой можно быстро и без особых проблем собрать какую-нибудь корпоративную систему репликации

А можно ссылку на простой пример синхронизации каталога?
4 окт 18, 11:28    [21694958]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
Пример есть здесь
https://github.com/atomashpolskiy/bt/tree/master/examples/src/main/java/datasharing
Не хватает, правда, автоматического создания торрента для каталога. Пока что для этого нужно использовать какую-нибудь стороннюю тулзу.
6 окт 18, 12:58    [21696988]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Хм. Версии Google GUice надо поднять до 4.2.2 иначе не собирается. Ну по крайней мере у меня.
<guice-version>4.2.2</guice-version>


И я-бы обратил внимание на Warnings во время package.
4 дек 18, 00:55    [21752491]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
UP. Автор ты где? Есть парочка вопросов по DHT/Kademlia/P2P.
16 дек 18, 21:32    [21765531]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
Andrei T
Member

Откуда: Россия, Москва
Сообщений: 174
Я тут
17 дек 18, 10:54    [21765707]     Ответить | Цитировать Сообщить модератору
 Re: Bt -- новый open-souce фреймворк для BitTorrent  [new]
mayton
Member

Откуда: loopback
Сообщений: 46600
Современные бит-торрент клиенты используют DHT/Kademlia для поиска раздающих?
17 дек 18, 15:09    [21766046]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Java Ответить