2222

Децентрализованный музыкальный проигрыватель

Всем привет. Хочу рассказать о проекте, над которым работаю в свободное время. Назвал я его «Патефон» и это полностью децентрализованный, распределённый, безсерверный, p2p музыкальный проигрыватель. Вот так выглядит актуальная версия программы:

Децентрализованный музыкальный проигрыватель

Обмен альбомами происходит напрямую между пользователями. Как только кто-то расшаривает альбом, приложение тут же начинает рассылать его остальным участникам сети. При этом рассылается не сама музыка, а только её метаинформация: название альбома / артиста, треклист, уникальные хэш-суммы обложек и аудио-файлов.


Сами файлы композиций будут скачаны только в том случае, если вы добавите соответствующие треки в плейлист. Таким образом каждый участник сети хранит и раздаёт только ту музыку, которую слушает сам. При этом доступность и скорость скачивания музыки напрямую зависит от количества раздающих её пользователей (как в торрентах).


P2P-системы известны своей устойчивостью к цензуре, блокировкам и региональным ограничениям. «Патефон» не исключение, поэтому будет работать хоть за Великим Китайским Фаерволом, хоть в КНДР, хоть на Марсе (наверное, не проверял).


Кроме того, если пользователю отключат интернет, он всё ещё сможет пользоваться приложением в своей домашней сети чтобы, например, слушать на ноутбуке музыку, расшаренную со стационарного PC.


Всё описанное выше доступно в актуальной версии приложения. Дальше я расскажу о запланированных нововведениях.


«Отложенный поиск» даст возможность создавать поисковые запросы, которые будут работать в фоне до тех пор, пока не появятся необходимые результаты. Как только это случится, пользователь получит уведомление и сможет незамедлительно приступить к прослушиванию. Пригодится для случаев, когда интересующий пользователся альбом ещё не вышел а пропустить не хочется.


Персональная фонотека - ещё одна из первостепенных задач. Пользователь сможет формировать коллекцию любимых альбомов. Такие альбомы будут загружаться на устройство пользователя в обязательном порядке и будут доступны для прослушивания в оффлайне. Также персональную фонотеку можно будет синхронизировать между устройствами при помощи Google Drive.


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


Кроме того, есть планы на «безголовую» версию приложения, которую можно будет запустить на домашнем медиасервере и подключаться к ней с остальных устройств через браузер. Если вы пользуетесь Plex, то знаете, насколько это удобно.


А теперь о недостатках:


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


- Каждый раз, когда вы расшарите альбом, он будет скопирован в специальную папку. Таким образом на каждый гигабайт опубликованной музыки будет занят ещё один гигабайт. Но это не навсегда.


- «Патефон» не обеспечивает анонимности пользователя. Не составит большого труда посмотреть, что вы раздаёте, и «вычислить вас по IP».


- Приложение всё ещё на ранней стадии развития, так что если словите баг - не удивляйтесь а смело репортите issue на GitHub.


- - - - - - - - - - - - - - -


Вот и всё. Если проект вас заинтересовал, то добро пожаловать на:


Сайт приложения

Твиттер

GitHub


Актуальные версии программы доступны как на сайте, так и на GitHub. Есть сборки для Mac, Linux и Windows.


- - - - - - - - - - - - - - -


Технические детали


«Патефон» использует современный протокол распределённого обмена данными IPFS («МежПланетарная Файловая Система»). Если вы смотрели «Кремниевую долину», то что-то очень похожее разрабатывают главные герои последние два сезона.


Само приложение написано на Electron.js — популярном кроссплатформенном фреймворке для создания десктопных приложений при помощи стандартных веб-технологий.


Спасибо за внимание! Отдельная благодарность @DEgITx за помощь в разработке и подготовке статьи к публикации.

Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий

что-то не пойму где там расшаренные другими людьми альбомы. вижу только один - тот, который я добавил

раскрыть ветку (23)
0
Автор поста оценил этот комментарий

Мой ноут раздаёт пачку. Поймаете или нет - как повезёт.

раскрыть ветку (22)
4
Автор поста оценил этот комментарий

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

раскрыть ветку (4)
2
Автор поста оценил этот комментарий

Синхронизация есть, постоянного источника есть. Если во всём итнернете всего два патефона, то да, можно и годами просидеть без результата.

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

ну, если 2 источника, то мы просто обязаны обменяться метаданными. если 101 источник - я должен получить метаданные от 100 источников - нет?


если нет - вот главный вопрос, по важности наравне с анонимностью (имхо, даже важнее, т.к. существуют легальные к распространению композиции, которые в данной сети нельзя найти "потому что не повезло").

раскрыть ветку (2)
1
Автор поста оценил этот комментарий
ну, если 2 источника, то мы просто обязаны обменяться метаданными. если 101 источник - я должен получить метаданные от 100 источников - нет?

а как? если ты не знаешь где искать второго и второй не знает где искать тебя :)

нормального центра координации, где можно взять список источников то, как я понимаю нет.

вобщем в итоге получается какой-то недо-DC/недоторрент.

1
Автор поста оценил этот комментарий

Не обязаны. В p2p сетях участники не знают друг о друге заранее, связи устанавливаются опосредованно.


Это не является в случае патефона проблемой, потому что цель сети в распределении информации среди большого количества участников, чтобы не было важно "у кого" а имело значение только "что" ты хочешь скачать. Успешный "точечный" обмен здесь не важен.

3
Автор поста оценил этот комментарий

А это от чего-то зависит? Я далеко не эксперт в p2p, объясните, как происходит поиск раздающих?

раскрыть ветку (16)
2
Автор поста оценил этот комментарий

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


p2p-сети образуются труднопредсказуемыми пузырями, которые регулярно меняют свою структуру и не обязательно соприкасаются друг с другом.

раскрыть ветку (15)
2
Автор поста оценил этот комментарий

А есть какие-то децентрализованные средства получения информации о пирах? К примеру, раздача адресов известных пиров вместе с метаинформацией об альбомах, или что-то вроде того?

раскрыть ветку (14)
3
Автор поста оценил этот комментарий

Так оно примерно уже и работает.


Когда IPFS на вашем компе стартует, он связывается со специальным сервером, у которого забирает список актуальных пиров, а так же просит добавить ваш комп в этот список. После этого он берёт этот список и стучится по всем указанным там адресам, те в свою очередь отдают ему свои списки пиров. Таким образом обновляется и поддерживается карта сети.


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

раскрыть ветку (13)
2
Автор поста оценил этот комментарий

таки сервак таки есть. Именно его вы назвали децентрализатором?

раскрыть ветку (10)
1
Автор поста оценил этот комментарий

А где я это слово использовал?

раскрыть ветку (9)
2
Автор поста оценил этот комментарий

в заголовке поста, в другой форме.

это не децентрализованная сеть.

раскрыть ветку (8)
1
Автор поста оценил этот комментарий

Ну тогда ни одна сеть, которая использует DHT, не является децентрализованной.

раскрыть ветку (7)
2
Автор поста оценил этот комментарий

нет. Только при наличии управляющего сервера, а он есть далеко не всегда

раскрыть ветку (6)
0
Автор поста оценил этот комментарий
со специальным сервером,

достаточно положить этот айпи сервера и всё ? сети больше не будет

а вычислить его особого труда не составит

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Нет, просто вместо пары секунд потребуется пара минут чтобы найти других пиров. Читайте вот эту ветку #comment_117494436

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества