to post messages and comments.

← Все записи с тегом P2P

@OCTAGRAM:

Было некогда желание сделать виджет для магнитных ссылок, чтоб из менюшки можно было сделать поиск по TTH через онлайн-индексаторы, проверку в VirtusTotal, а также варианты поделится в соцсетях. В менюшке можно отображать альтернативные HTTP/HTTPS ссылки, рекомендуемые DC++ хабы и прочее, прочее, что в магнитную ссылку теоретически можно запихнуть, но чем практически сложно воспользоваться из-за слабой поддержки в клиентах.

Но так и не сделал, с нуля наклепать такое не просто. Я на altaimolodoi.ru как-то раз поставил подсветку ключевых слов, по которым пришли из поиска, так оно вешало Хром, а я этого не знал, так как в IceDragon работало. А тут попался похожий сервис виджетов для Скайпа, где, похоже, всё отлажено. Можно переделать код под свои нужды.

@OCTAGRAM:

Провокация с TTH-торрентами идёт по плану. Поисковики заглотили несколько гигабайт наживки и направляют посетителей. Например, один из посетителей что-то поискал в Гугле, открыл HMS, потом скачал torrent для «Шрам Покушение на Пиночета (Cicatriz)». Мог бы выбрать dcls, но зачем-то выбрал torrent. Хорошо, нате вам torrent, но он будет такой же, как dcls, вид в профиль. Человек смог полюбоваться на список файлов и прочитать комментарий:

"BEP 47 Padding files and extended file attributes" support required: wiki.depthstrike.com info.pieces is fake to make deficient (that is, not upgraded to TTH yet) clients happy and let you see this message
Учитывая, что «deficient (that is, not upgraded to TTH yet) clients» — это практически все торрент-клиенты, скачать, скорее всего, не получилось. Ибо нефиг пользоваться всякой хренью. С одной стороны, кроме как обновлением до TTH, это объективно непоправимо, с другой стороны, так приятно хоть немного отомстить за то, что полезли на наши магнитные ссылки, не реализовав соответствующий функционал TTH. Вы полезли на наши магнитные ссылки, мы полезли на ваши торренты.

Многие другие посещения не столь интересные. Там кликают по магнитной ссылке. Даже если начать отслеживать их пикселями, не понятно, куда этот клик пойдёт. Может быть, по ту сторону всё замечательно открылось и скачалось, как положено.

@OCTAGRAM:

Потратил 4,6 гига на хостинге, навыкладывал метаданных про 300 тер. Вообще, мечтал петабайт осилить, но при текущей плотности метаинформации не получается. Надо посмотреть, как дело пойдёт. Яндекс-бот уже пришёл.

Вот интересно, а ведь бывают, наверное, боты-индексаторы для открытых торрентов. Я, допустим, четвёртый год пытаюсь скачать торрент с BTIH 6AE765434DEB78AB7CBDA3AAC869363E81046348 , и если я его забиваю в поисковик, то вылезают несколько штук сайтов. И с другими BTIH аналогичная история. У каких-то BTIH таких сайтов больше, у каких-то меньше. Как бы в эти индексы попасть.

@OCTAGRAM:
P2P

HttpMagnetServer

@OCTAGRAM:

Выписал реальные значения временных меток в атрибуте Shared (GreyLink DC++) и TS (FlyLink DC++). Для сравнения ещё вычислил Date.now(), он получился по длине между ними. Для наглядности добавил подчёркивание там, где кончаются секунды.
GreyLink DC++: 1307966464_52889830
Date.now(): 1480931727_080
FlyLink DC++: 1295288944
Таким образом, это в общем везде время от начала Эпохи (1970), но во FlyLink DC++ — с точностью до секунды, а в GreyLink DC++ — с точностью до 10 наносекунд. Я опасался, что там время OLE Automation (от 1900) может затесаться.

Правда, тут есть один нюанс. Согласно POSIX, время отсчитывается без учёта високосных секунд, а вот справедливо ли это по отношению к каждой из трёх приведённых дат, не очевидно. Надо полагать, что всё-таки без.

@OCTAGRAM:

Расширения тега File во FlyLink DC++
Почитал тут.
HIT — количество скачиванийВ GreyLink DC++ есть в базе, но нет в XML списке файлов.
TS — дата добавленияВ GreyLink DC++ есть аналогичный атрибут Shared, но формат другой. И там, и там числа, но у GreyLink явно подлиннее. И есть подозрение, что этот атрибут есть только в обычном корневом файле шары, а в сгенеренных вручную — нет. Но мой генератор получает на вход именно корневые файлы и имеет возможность пробросить этот атрибут в выходной файл.
BR — Битрейт файла
WH — разрешение картинки
MA — аудио информация (кодек, количество каналов, количество дорожек, язык дорожек)
MV — видеоинформация (кодек, Битрейт видеопотока, соотношение сторон экрана)
В GreyLink DC++ не хранится ни в базе, ни в XML, вместо этого можно делать асинхронные запросы к файлам. Пожалуй, решение FlyLink DC++ лучше. При этом информация в GreyLink DC++ более полна, видно авторa и альбом, как они написаны в ID3 тегах. Самое лучшее решение я видел в Shareaza.
Ещё в GreyLink DC++ есть возможность назначать папкам свои картинки. И опять в dcls фича, скорее всего, обычно не пробрасывается, но мой генератор может научиться это делать. Насчёт поддержки в FlyLink DC++ не знаю.
Ещё Shareaza при хешировании шары проставляет в дополнительные потоки папок UUID, и по ним отслеживает переименования и переносы. Не помешало бы аналогичное для DC++. Вот как раз онлайн-ссылки в новое расположение можно было бы автоматом перенаправлять. Но увы, такого нет. Во всяком случае, в чужих шарах такого ожидать не приходится.

Заодно посмотрел расширения торрента. Даже близко такого нет (кроме даты создания), хотя я мог бы сделать, чтоб мой генератор с барского плеча пожаловал метаинформацию от FlyLink DC++ в info.files.*.

@OCTAGRAM:

Сконвертил свою p2p шару в формат торрента по спецификации BEP 47.

В оригинале (.xml.bz2) 3,1Мб, распакованный XML 12 Мб, а в формате торрента получилось 16 Мб. Он, конечно, двоичный, в отличие от распакованного XML, и каждый TTH там 24мя байтами кодируется, а не 39ю в Base32, но это с лихвой компенсировалось тем, что в описании каждого файла участвует info.files.path, повторяющий названия верхних директорий несколько тысяч раз, в то время как в XML тег Directory указывает имя директории только один раз. Я поискал и сходу не вижу такой BEP, чтобы можно было как-то вложить info в info. Это бы решило проблему, но увы.

Так же, как и для dcls, для торрентов можно генерить один большой файл, а в нём запоминать смещения (в списке info.files), чтобы потом склеивать на лету. Правда, это дурацкое устройство info.files.path и здесь не даёт возможности сделать всё нормально. Название директории, которую описывает торрент, задаётся в info.name. А элементы списка info.files.path идут уже внутри info.name. Так что если нам захотелось в торренте для вложенной папки установить info.name в имя этой папки, у нас получится такая картина, что в нём сначала папка с именем желаемой папки, потом внутри неё несколько взаимовложенных папок с именами папок от корня шары, потом снова эта папка, и там уже собственно файлы. Если генерить отдельные торренты для каждой директории, 16Мб распухнут пусть не в семь (как для dcls), но едва ли меньше, чем в два раза. Общий info.name в каждом торренте в принципе, был бы наиболее логичен, если рассматривать их по отдельности, но если их у одного человека становится несколько и все одинаково названы, тоже как-то не здорово. Решил сделать компромиссный вариант: в info.name не само имя папки, а конкатенация имени папки с именем корня (в качестве которого у меня выступает CID). Всё же хочется иметь возможность забить хостинг как можно большим количеством скачанных шар.

Конечно, не удержался от того, чтобы ковырнуть торрент µTorrent'ом. Пишет «Невозможно загрузить 'root.torrent'. Недостаточно памяти для обработки команды. !». Мда, печально это. p2p-клиенты и не такими объёмами ворочают.

@OCTAGRAM:

Провёл эксперимент и обнаружил, что два склеенных bzip2 файла распаковываются в один, склеенный из двух оригинальных. И это же замечательно!

Это может пригодиться для генерации на веб-сервере списков файлов p2p для любой поддиректории:
Открываем новый файл на запись, начинаем туда в сжатом виде писать XML списка файлов, перед каждым открывающим тегом Directory и после каждого закрывающего делаем BZ_FINISH, а смещения запоминаем на будущее. Пролог и эпилог с директивой XML и тегом FileListing тоже нужно сделать возможным отрезать.
Потом, когда веб-серверу нужно отдать список файлов для поддиректории, он, не особенно напрягаясь, склеивает пролог, XML-описание поддиректории и эпилог. А ещё потом можно редактировать этот файл. Придётся байтики подвигать, но хотя бы пережимать не нужно.
Я нагенерил обычных отдельных списков файлов для каждой поддиректории своей шары, и у меня в общем получилось 23 мегабайта. Обычный сжатый (с аргументами blockSize100k => 9, workFactor => 30) полный список файлов весит 3,1 мегабайта. Несжатый — 12,5.
Реализовал эту идею. Сжатый список файлов с разрывами получился на 4,8 мегабайт. Выкручивание workFactor на 250 практически ничего не изменило, но всё равно неплохо.

Гипотетически можно с zlib устроить аналогичное, чтоб посетители с плохим Интернетом могли экономить трафик, но и веб-сервер не напрягался. Разрезать шаблон на куски, сжать каждый, на лету дожать остальное содержимое и отдавать всё в склеенном виде.

@OCTAGRAM:

Подскажите, при нажатии кнопки поиск на странице ТТК, открывается не Пульс++ а торрент и говорит мол нельзя скачать, как это исправить?Интересно, это недоразумение когда-нибудь научится скачивать по тому формату URI, на который претендует, или наступит наконец уже понимание, что они, начав претендовать на реализацию magnet:, вот уже столько лет не в состоянии его запрограммировать, а раз руки не из того места, то и не надо мешать программам, где всё как надо

@OCTAGRAM:

Не кормить и пороть! Американский рецепт любви народов
А мне вот пришла в голову аналогия BitTorrent и NMDC. В бытность работы сотрудником техподдержки в провайдере звонили нам по поводу треккера, который был в локалке, но не фирменный. Так и чесался язык ответить: «В нашей сети действует файлообмен по двум основным протоколам. Один из них плохо подходит, чтобы поиметь пользователей, другой — очень хорошо. Вы выбрали тот протокол, который очень хорошо подходит, чтобы вас поиметь. Вас поимели. С чего бы это?» К счастью, в нашем провайдере фирменным был (и сейчас остаётся, после покупки нас ЗС–ТТК) только DC++, и нам полагалось посылать таких звонивших, ну разве что приходилось отказывать себе в удовольствии делать это именно такими фразами. Так и оставались люди в неведении, почему с ними это происходило.

@OCTAGRAM:

"Мы не потеряем своих пользователей!" Интервью Рутрекера о решении суда по их "вечной блокировке"
Ого, чё творится в мире битторрента. Ну а что? Вместо того, чтобы скрещивать Шареазу с ГрейЛинком, таращились на этот древний протокол. Так и не сделали обязательным TTH, чтоб можно было легче перейти на другие протоколы. Результат немного предсказуем. Туда им и дорога.

@OCTAGRAM:

bitbucket.org
И ещё кое–что сегодня перестаёт быть моим ноу–хау.
Парсит журналы GreyLink, разбивает примерно по дням (на самом деле, с нахлёстом) и выводит их в виде HTML файлов в формате, похожем на журналы Jabber конференций на jabber.ru. Поддерживаются смайлы, магнитные ссылки для DC++, ники делаются ссылками в таком формате, в котором поддерживает GreyLink DC++. Некоторые слова можно в целях SEO или каких–то других делать ссылками куда надо. Все реплики имеют якорь. Если выбрать конкретную реплику и скопировать ссылку на таймкод перед этой репликой, это и будет ссылка на реплику. Так как в журналах GreyLink нет секунд, реплики внутри минуты нумеруются по порядку. Реализовано на языке Icon.
В штатном режиме обновляет только последний/предпоследний день, но может и обновить, начиная с произвольной даты. Когда это у меня последний раз работало, я запускал по часам каждые 5 минут.

Вот так выглядит результат: p2p.toom.su
А так выглядит оригинал, под который я косил: chatlogs.jabber.ru

Чего так и не сделал: не исправил косяк с определением дня недели, не сделал вывод логотипов провайдера и города, как в самом GreyLink ( assembla.com ), не сделал скрипт для GreyLink, чтоб когда картинку постят в чате, она выкачивалась автоматом без клика по ней, и чтоб потом вставленные таким образом в чат картинки попадали в HTML в конечном итоге.

Ну и в режиме реального времени чат работать не будет, конечно, на таких технологиях, это многое надо бы было переделать, а мне незачем. Стопятьсот юзеров ежедневно генерили уникальный контент. Вот что бы ни случилось, это обсуждают, а потом в поисковиках другие люди то же самое ищут и приходят, и оно само по себе работает и работает. Для этого и делал.

@OCTAGRAM:

bitbucket.org
Продолжаем выкладывать некоторые разработки, которые могут пригодиться. Собственно, есть такой проект, как FlyLink DC++ с установщиком, поддерживающим кучу провайдеров, и каждый уважающий себя провайдер стремится попасть в список поддерживаемых провайдеров, заказывает VIP или Mini-VIP установщики. При всём при этом FlyLink DC++ открытый, в том числе установщик, то есть, вместе с информацией обо всех провайдерах. Всё это замечательно, вот только информация о том, какие есть провайдеры и какие у них есть хабы, оказывается разбросанной по куче файлов (.iss Inno Setup Source, Favorites.xml, ...), да ещё по–разному для VIP и Mini-VIP. Мой конвертер, написанный на Icon, парсит всю эту разнородную информацию и выводит её в формате YAML, где её можно использовать самым разным образом. Версия примерно от 2011-10-06.
Предполагалось, что в моём установщике GreyLink DC++ OpenMod будет парсер YAML и возможность выбирать всех тех же провайдеров, что и в установщике FlyLink DC++. Собственно, парсер–то есть и он работает, но в нескольких местах получалась каша, которую надо было переделать. Так и не переделал.

@OCTAGRAM:

octagram.name

Вот так выглядит облом в BitTorrent. Это я искал редкие файлы (среди которых основной — OEDev.zip) всякими разными способами, и когда нашёл, решил раздать во все сети, где я раньше тщетно пытался найти. Этот торрент давно без сидов, а вот один пир ну очень долго тусовался, но выкачать OEDev.zip целиком так и не смог, потому что его начало в одном куске с другим файлом, которого у меня нет. И никак. И чата нет, чтоб как–то по–другому файл передать. Смотрим друга на друга, немые, как рыбы.

А когда пытаешься эти очевидные проблемы обсуждать, ни ответа, ни привета: forum.utorrent.com
Наверное, разработчикам тоже не мешало бы вот так протусоваться не солоно хлебавши, чтоб понять, зачем это надо.

Для начала, все генераторы торрентов должны вписывать TTH во все генерируемые торренты. Потом, когда торренты станут преимущественно TTH–богатыми, ругаться при попытке открыть торрент без TTH. Ругаться, но открывать, конечно. В таблице загрузок значком напротив ущербных торрентов показывать, что они без TTH. Потом на торрент–треккерах запретить новые торренты без TTH. Пусть идут переделывают метафайлы нормальной программой. Шаг за шагом всё возможно.

@OCTAGRAM:

У китайцев наблюдается какая–то своя технология p2p вещания: cntv.ru

Плагин для FF не установился на Mac OS X, а на Windows падает в отладчик.

@OCTAGRAM:

Разработчики какие–то странные бывают. Живут на другой планете, и на этой их планете совсем–совсем нет p2p. Так много движков не пропускает магнитные ссылки. Я бы понял, если бы они не форматировали сырые ссылки. Если бы dn не uri-декодировали и dl в удобное представление не переводили. Влом кодить десять строчек, можно понять. Но коцать–то зачем? bnw, скорее всего, не свой движок использует, так что чей движок — тому и камнем в огород.

Я на своём сайте (X-Wiki) был вынужден несколько слоёв прочесать, чтобы убедиться, что ничей говнокод не поломает на полпути магнитную ссылку. Ожидания оправдались: сколько могло быть мест, где может сломаться магнитная ссылка, во стольких местах её какой–нибудь говнокод сломает. Парсер wiki–разметки, WYSIWIG–редактор — всё не слава богу. Везде разработчики как на подбор ушибленные попались.

Магнитные ссылки? Не, не слышали!

@OCTAGRAM:

В связи с некоторым ажиотажем вокруг распределённых сайтов (Diaspora, Osiris-SPS) интересует подход к вопросу с противоположной стороны. К обсуждению приглашаются имеющие опыт миграции форумов или блогов.

В 90е годы можно было собрать статический сайт на HTML, и сверхтекучесть таких сайтов именно этим подходом и была обеспечена.
Ещё раньше существовал NNTP. И даже без NNTP можно взять кучу .eml и что–то с ними сделать. Можно в почтовые клиенты скормить, можно в web выложить. Есть скрипты для преобразования в HTML, есть открытые движки типа GMANE.
Далее, для Wikipedia есть WikiTaxi, и, теоретически, ему бы подошёл и любой другой викиархив, не аффилированный с wikipedia. Также может представлять интерес Universal Wiki Converter.

Импорт/экспорт есть много, где, и в X-Wiki, и в Osiris-SPS. Интерес представляют форматы и протоколы, которые много, где понимаются или хотя бы конвертируются. Поднять свой экземпляр WikiMedia и развернуть на нём архив Wikipedia не считается, а WikiTaxi — уже считается.

@OCTAGRAM:

dev.yorhel.nl
Globster is an efficient file sharing client for the Direct Connect network. It runs as a background daemon and provides a convenient and high-level D-Bus API, making it easy to write scripts, bots and user interfaces for Direct Connect.

@OCTAGRAM:

myttk.ru

В DC++ можно смотреть фильмы раньше, чем они скачались, но если раньше это было чем–то для избранных, то сейчас ТТК делают приставку для телевизора (сервис «ПульсТВ»)

ТТК-Западная Сибирь, региональное предприятие Компании ТТК, сообщает о запуске нового сервиса «ПульсТВ» для пользователей цифрового телевидения IPTV. «ПульсТВ» позволяет просматривать контент из файлообменной сети «Пульс» на экране телевизора без предварительного скачивания с использованием приставки set-toр-box (STB) Full HD Eltex NV-101.

@OCTAGRAM:

socialfolders.me

As of today, SocialFolders supports Facebook, Flickr, Photobucket, Google Docs, Box, YouTube, Twitter, SmugMug, Instagram, and Picasa
We don’t support downloading from YouTube as of now. YouTube doesn’t offer an API (the developer interfaces we use to connect to other websites) for downloading as of now. We might use other ways to download from YouTube in the future, but first we want to make sure that they agree to this.
SocialFolders doesn’t run on Linux yet. We support Windows XP, Vista, and 7, and Mac OSX 10.6 or later (Snow Leopard and Lion).