📯 Представляем DSound: децентрализованную музыкальную платформу с использованием STEЕM и IPFS
Дорогие стимеры, я здесь новичок, но чем больше я узнаю об этом сообществе, тем сильнее убеждаюсь, что это то место, где я хотел бы быть. А когда я увидел, что был анонсирован DTube, моя голова пошла кругом от сочетания технологий, которые сделали это возможным… Я встретился с @heimindanger, мы побеседовали о его проекте, и я вникнул в некоторые его детали и идеологию, которую также разделяю. Он здорово замотивировал меня, поэтому я ушел в работу с головой и начал реализовывать свое собственное видение того, какой должна быть платформа для публикации музыки. И теперь я с гордостью представляю вам…
![](https://steemitimages.com/DQmd7ik3JGiEXGrA6jkShsfdqKR6jP4STGGvbgVbAUtCMKZ/logo-big.png)
DSOUND.AUDIO
Что такое DSound?
DSound – это веб-приложение, которое я разработал в Javascript, позволяющее загружать, слушать и находить музыку и другие звуки, хранящиеся в сети IPFS. Оно использует блокчейн STEEM в качестве децентрализованной базы данных, позволяющей авторам зарабатывать вознаграждения в криптовалюте STEEM Dollars, которые могут быть обменены непосредственно на доллары США или любую другую валюту, когда другие пользователи лайкают или репостят наш контент, так же, как за посты в блогах на Steemit.com.
Я решил следовать тому же подходу, что и @heimindanger: сначала разработать, а потом обсуждать. И я работал почти без остановок, пока не получил первую альфа-версию, которой делюсь с вами! Это всего лишь минимально жизнеспособный продукт, который может стать платформой для музыкантов, для публикации своих песен, рекламы и записей и получения вознаграждений за работу сразу, без какого-либо официального издания и/или распространения.
Будучи музыкантом и диджеем, я хорошо понимаю музыкальную индустрию, и моя единственная цель – создать платформу, на которой я хотел бы публиковать свои собственные работы, получать обратную связь от сообщества и зарабатывать при этом немного денег. И если вы также находитесь в этой индустрии, то знаете, как сложно сейчас зарабатывать деньги на своем творчестве в музыкальном бизнесе!
Есть несколько платформ, например, SoundCloud, YouTube, Apple Music или Spotify, позволяющих делать это, если вы подписали контракт с большим лейблом, но если вы такой же инди, как я, вам повезет, если вы сможете опубликовать ваши произведения на этих каналах и не быть заблокированы! Мои собственные произведения (без использования каких-либо сэмплов) блокировались за нарушение авторских прав только потому, что это возможно.
Еще хуже дела обстоят с другими видами произведений, состоящих из добросовестно использованных материалов, защищенных авторским правом, таких как ремиксы, мэшапы или диджей-сеты. Если вы хотите поделиться любым из них с вашими поклонниками, на сегодняшний день вы не можете это сделать! Если вы загрузите эти работы на YouTube или SoundCloud, то за считанные секунды они будут заблокированы за нарушение авторских прав. Это неприемлемо. Это производные оригинальных работ, служащие для продвижения авторов или использования их работ в новом ключе, например, ремикс, заставляющий людей танцевать под нетанцевальную песню, или диджей-сет, смешивающий и объединяющий в себе несколько треков для создания совершенно другой музыкальной атмосферы. Эти творения заслуживают публикации, а их авторы заслуживают возможности заработать свои деньги, если людям это нравится!
Так что закон об авторском праве явно недоработан и нуждается в исправлении. Но в этих последних случаях, помимо добросовестного использования, индустрия издевается над мелкими авторами с помощью своей неограниченной власти, что делает невозможным их существование без другого источника дохода и вынуждает заниматься выживанием вместо того, чтобы сосредоточиться на своем творчестве! Но с DSound это скоро изменится! :)
Как пользоваться DSound
- Войдите в систему
Создайте аккаунт STEЕM на Steemit.com, если у вас его еще нет, затем введите свое имя пользователя STEEM:
- Введите свой закрытый ключ для публикации, вы можете найти его здесь:
Многопользовательский вход
![](https://steemitimages.com/640x0/https://steemitimages.com/DQmT1kWSAFHgKDHpmgQkgrgU9wQehw2aSCShaiBZhYv8a6U/MultiUser.png)
Если вы тоже творческий человек, то знаете, что иметь псевдоним – обычное дело, но это приводит к наличию нескольких аккаунтов в социальных сетях и, как правило, доставляет серьезные неудобства тем, что приходится постоянно входить и выходить под разными псевдонимами. У Youtube и Facebook есть функция, позволяющая легко переключаться между ними. Итак, я придерживался той же идеи, что и @heimindanger, и также реализовал ее на DSound, что позволит пользователям входить в систему с любого желаемого количества аккаунтов и переключаться между ними.
Настройки IPFS
DSound позволяет мгновенно управлять всеми вашими настройками IPFS. Возможно, в будущем будет возможность настроить их точнее, но и на данный момент уже все в порядке. Он показывает, запущен ли локальный узел IPFS или нет, и если вы его запустили, DSound будет успешно его использовать, в противном же случае он будет подключаться к другим узлам IPFS в сети для загрузки и хранения вашего контента.
Загрузка
Во-первых, вам нужно войти в систему, чтобы получить доступ к странице загрузки. Затем просто загрузите аудиофайл, обложку (она не обязательна, но высоко оценивается вашими слушателями как визуальная составляющая вашей музыки), и, наконец, заполните описание для блокчейна и опубликуйте!
Если все пройдет хорошо, ваш трек будет опубликован на странице с новой музыкой, готовый к прослушиванию вашими подписчиками. Это может занять от 0 до 30 секунд в зависимости от состояния сети IPFS и скорости соединения. В этом случае сильно поможет установленный локальный узел IPFS, и если вы регулярно загружаете музыку, то должны обязательно подумать об этом.
Я буду разрабатывать десктопное приложение вместе с @heimindanger из DTube, позволяющее технически неподкованным пользователям устанавливать IPFS и правильно настраивать его для использования как с DTube, так и с DSound, но до этого вы всегда можете попробовать сделать это по инструкциям с веб-сайта IPFS (что не очень легко для технически неподкованных людей).
Прослушивание и поиск новой музыки
Здесь я попытался воспроизвести механизм работы Steemit.com, за исключением домашней страницы, где вы видите треки с какой-либо недавней активностью, например, с комментариями или апвоутами. Также есть обычные основные разделы "В тренде", "Популярные" и "Новинки". Они работают так же, как и в Steemit.
Если вы кликнете на аудиофайл (название или обложку), то попадете на его страницу:
Если вы нажмете на tag на любой странице, то сможете найти музыку только этой категории, и даже если вы выберете разделы "Новинки", "Популярные" или "В тренде", то увидите эту категорию в выбранном разделе. Нажав на логотип, чтобы перейти к вашей ленте или выйти из режима просмотра на любую другую страницу, вы выйдете из режима категории. При просмотре в режиме категории вы увидите tag вверху:
В любом месте приложения вы можете нажать на «@user», чтобы просмотреть публикации этого пользователя на его странице:
Да, вы можете увидеть новую обложку профиля Steemit на DSound! :)
И везде, где вы видите трек-плеер с кнопкой воспроизведения и звуковой диаграммой, вы можете воспроизводить эту музыку и переходить на нее, нажимая на звуковую диаграмму, как вы делаете это на SoundCloud.
Кроме того, в приложении вы всегда видите плеер в нижней части экрана, и он проигрывает музыку, даже когда вы перемещаетесь по приложению, запоминая ваш последний выбор, а также может воспроизводить музыку последовательно или в случайном порядке!
Все это базируется на блокчейне STEEM, поэтому вы можете апвоутить музыку, кликая на иконку в виде сердца, репостить их иконкой «repost», скачивать музыку кнопкой «загрузить» (если разрешено автором) или, в противном случае, автор может активировать кнопку «купить» со ссылкой непосредственно на этот трек в любом музыкальном магазине по своему выбору или даже на его веб-сайте.
Отключив ссылку на загрузку, автор не дает разрешения на загрузку музыки непосредственно с DSound, но через сеть IPFS музыка, естественно, останется доступна для загрузки, поэтому не стоит думать, что ваш контент не будет скачиваться, если вы отключите кнопку загрузки! Как и в SoundCloud, YouTube, Spotify или любом другом сервисе распространения контента, если вы можете его воспроизвести, значит вы так или иначе можете его скачать.
Следующие части этой статьи в основном носят технический характер и, возможно, будут не очень интересны для некоторых людей, но если вам интересно, что внутри DSound, то можете продолжить, а я попытаюсь объяснить, как это работает, наиболее простыми словами ;)
Как работает DSound
Блокчейн STEEM как база данных
Что делает DSound столь особенным, так это его децентрализованная природа. Я долго вынашивал идею использовать для этой цели блокчейн. STEEM обладает множетсвом преимуществ по сравнению с другими блокчейнами. Он быстрый (3 секунды на блок). Это бесплатно, любой может использовать его без необходимости внесения каких-либо средств, также отсутствует комиссия за транзакции.
Существуют и другие проекты, реализующие различную музыкальную валюту, с помощью которой вы можете покупать доступ к музыкальному контенту, например, Musicoin или Resonate. Я хотел создать что-то, работающее в обратную сторону, чтобы сообщество вознаграждало людей за создание музыки, так же, как блокчейн STEEM уже реализовал механизм вознаграждения за посты в блоге.
Как и в DTube, любая музыка, загруженная на DSound, становится контентом STEEM, который может заработать вознаграждение в течение 7 дней. DSound не использует ни заголовок, ни тело сообщения для хранения информации, как в STEEM, поэтому если вы не хотите, чтобы ваша музыка появилась на вашем блоге Steemit, вы можете ее отредактировать или удалить. Музыка в DSound останется в неизменном виде, в то время как для других приложений, таких как steemit.com или busy.org, она будет невидима. Я считаю, что текущая политика является правильной, и что она способствует росту платформы и увеличению пользовательских вознаграждений.
IPFS как статичное файловое хранилище
Это фактически была последняя составляющая, полученная мной от DTube и @ heimindanger. Я был в восторге, когда увидел вступительный пост DTube! Я наконец-то нашел недостающий элемент, нужный мне, чтобы создать DSound! В своей статье @heimindanger отлично описывает высокоуровневый протокол IPFS, поэтому я процитирую следующий абзац из его поста:
IPFS – это протокол, позволяющий децентрализовать хранение файлов. Принцип, лежащий в его основе, называется Распределенными хэш-таблицами (DHT). Тот же принцип лежит в основе сети BitTorrent. Подобно тому, как криптовалюта использует асимметричную криптографию, сети DHT используют хэш для идентификации файла. Хэш становится идентификатором файла, и это так же просто, как повторное хэширование файла и проверки хэшей на совпадение, чтобы удостовериться в том, что отправленный нам файл является оригиналом.
IPFS – молодой и активно развивающийся проект с открытым кодом, над которым работает множество светлых умов. Я считаю, что у него впереди большое будущее. Использование его в качестве основного средства хранения для моего проекта было невероятно простым, даже несмотря на то, что IPFS очень молод.
Стоимость хранения в IPFS
Здесь я столкнулся с теми же трудностями, что и DTube. Нет никакого фокуса: кому-то нужно раздавать файлы, а браузер не может постоянно хранить большие файлы (в большинстве браузеров локальное хранилище ограничено 50 МБ), поэтому раздача через браузер не является решением.
Моей изначальной идеей было обязать пользователей запускать узел IPFS локально на своем компьютере, но после нескольких обсуждений и мозговых штурмов стало ясно, что это не решение, поскольку обычному пользователю всё еще нелегко настроить IPFS, и хотя есть несколько приложений с открытым кодом, пытающихся предложить более легкий путь, они слишком неустойчивы даже в целях тестирования.
Я по-прежнему считаю, что это решение является правильным для DSound и, возможно, для DTube, но мне явно нужно было бы создать десктопное приложение для Windows, OSX и Linux, дабы облегчить процесс установки до такой степени, чтобы даже моя бабушка могла это сделать, и чтобы это было приемлемым решением по части хранения для этого уравнения.
Но мне нужен был способ, чтобы DSound хранил содержимое без локального узла IPFS – требование, которое не исчезнет и, возможно, даже возрастет, так как многим пользователям не нравится устанавливать непонятно что. Поэтому я спросил об этом @heimindanger из DTube, а также побеседовал с владельцем магазина приложений IPFS, что помогло даже в тестировании DSound и составлении отчетов об ошибках. Отличный парень этот @nannal (steem, twitter и т.д.), рекомендую!
Таким образом, я остановился на таком же подходе, что и DTube – создал аккаунт @dsoundaccount, который будет использоваться для сбора 25% авторских вознаграждений DSound. Темпы роста хранилищ одинаковы, но исторически видеоконтент на STEEM собирает в два раза больше вознаграждений, чем музыкальный, поэтому я считаю, что справедливо сохранить такой же процент сбора от вознаграждений авторов, так как соотношение стоимости хранения к размеру вознаграждения, вероятно, будет идентичным.
Также часть этих вознаграждений будет использоваться для финансирования дальнейшей разработки проекта, если сообщество сочтет его полезным, и найма команды для проекта, если всё пойдет очень хорошо.
Если в один прекрасный день проект будет завершен и сможет существовать самостоятельно, без особых вмешательств по части разработки и обслуживания, а у большой части пользователей будут собственные узлы IPFS, тогда мое постоянное вмешательство в проект не понадобится, и он станет открытым, а процент распределения вознаграждений будет удален.
Дизайн и удобство использования
Здесь я решил использовать более простой, но не менее интуитивно понятный подход, будучи вдохновлен ведущей звуковой платформой – SoundCloud, поскольку потенциальные пользователи уже к ней привыкли.
Я старался, чтобы дизайн был минималистичным, насколько это возможно, не отвлекал внимание, но показывал и предоставлял пользователю то, что нужно, например, перемещение по звуковой диаграмме, возможность комментировать, репостить и лайкать.
Еще одним основным требованием было упрощение поиска новой музыки, так как это действительно важно для диджеев вроде меня, поэтому есть просмотр по тегам и объединение в топовые разделы. Я думаю, что сделал все возможное для этой первой версии, но все же остается много возможностей для улучшения и внедрения новых функций, как далее описано в дорожной карте.
Хранение данных в браузере
DSound будет использовать локальное хранилище браузера для хранения ваших аккаунтов и зашифрованных постинг-ключей, так что вам не нужно будет входить в систему по новой каждый раз. Если вы очистите данные браузера, вам придется снова войти в систему со всех аккаунтов DSound.
Почему я не могу войти в систему с помощью основного пароля или ключа?
Потому что вы попросту не должны этого делать! Steemit.com позволяет это исключительно потому, что в нем также есть кошелек, но вы не должны входить на Steemit.com с использованием вашего пароля в любом случае, это плохая идея. Я думаю, что худшее для разработчика – это чувство вины, вызванное тем, что пользователи теряют свои деньги и аккаунты из-за нарушения безопасности в своем приложении или в определенном браузере. Вместо этого гораздо безопаснее разрешить использование только закрытого постинг-ключа и тем самым сократить риски.
Если вы хотите управлять своими вознаграждениями STEЕM, я предлагаю вам использовать Vessel. И начните использовать только постинг-ключ на любой онлайн-платформе, такой как Steemit.com, Busy.org и т.п.
Обработка звука при загрузке
В DSound уже есть необходимая обработка звука при загрузке. Это нужно для отображения звуковых диаграмм перед их загрузкой из сети IPFS. Средний файл хорошего качества весит около 10МБ, поэтому для отображения звуковой диаграммы на экране может потребоваться до 30 секунд. Умножьте это на 6 звуковых дорожек на страницу – это было бы безумием из-за времени и пропускной способности, необходимых для простого отображения файлов, которые пользователь не обязательно захочет слушать.
Поэтому на DSound я реализовал это иначе: во время загрузки DSound считывает содержимое звукового файла и обрабатывает его для генерации пиковых значений, которые будут отображаться в форме звуковой диаграммы. Затем эти пиковые данные загружаются в сеть IPFS вместе с исходником, таким образом на каждый загружаемый медиафайл генерируется 2 файла, не считая изображения обложки.
Тогда загрузка файла с пиковыми значениями в 15Кбайт происходит почти мгновенно, и медиафайл загрузится, только если пользователь захочет его воспроизвести! Круто, не так ли?
Интеграция с другими платформами
Звуки, размещенные на DSound, можно легко интегрировать в любую другую платформу на базе STEEM. Звуковые хэши и хэши обложки в IPFS хранятся внутри json_metadata поста. Дальше всё просто:
<video src=”https://ipfs.io/ipfs/soundhash” poster=”https://ipfs.io/ipfs/coverhash” controls></video>
или
<audio src=”https://ipfs.io/ipfs/soundhash”></audio>
Известные проблемы
- Проблемы при использовании на iPad
- Непонятные события при перетаскивании звукового файла в область загрузки
- Нашли другие? Пожалуйста, сообщите мне в steemit.chat
В планах (недостающие функции)
- Поиск (децентрализованным способом - сейчас невозможен)
- Репост плейлистов и фоновое воспроизведение
- Фишки воспроизведения, такие как плавное затухание
- Мобильные приложения для iOS и Android
- Настраиваемый плеер для интеграции в социальные сети
- Возможность поделиться через Facebook, Twitter и другие
Я считаю, что в текущем состоянии DSound жизнеспособен даже без этих недостающих функций. Я постепенно их добавлю. Пожалуйста, дайте мне знать, что из них вы хотите видеть реализованным в первую очередь, или оставляйте другие предложения в комментариях.
Используемые приложения
DSound построен на React и использует множество пакетов с открытым кодом от NPM. Без них DSound просто не было бы, поэтому они заслуживают некоторой признательности:
- js-ipfs-api - связь с сетью IPFS
- SteemJS - связь с блокчейном STEEM
- autolinker - добавление ссылок в описания/комментарии
- moment - отображение времени
- XSS - для отображения подозрительных текстов и предотвращения XSS атак
Послесловие
Точно так же, как @heimindanger, я искренне верю, что децентрализация – это будущее, и пытаюсь внести свой вклад в изменение мира.
Но я знаю, что мне будет тяжело, потому что конкурировать с SoundCloud – непростая задача! DSound будет децентрализован насколько возможно, чтобы вывести проект из-под моего прямого контроля, оставив централизованным только домен.
Также я ожидаю еще большего давления со стороны музыкальных лейблов из-за нарушения авторских прав, хотя я нигде не говорю ни одного слова о создании DSound с целью обхода закона или обеспечения незаконного распространения материалов, защищенных авторским правом, поскольку я – музыкант и DJ и всегда соблюдаю закон об авторском праве.
С другой стороны, я придерживаюсь мнения, что законы об авторском праве неверно истолковываются лейблами в их пользу, что позволяет им использовать свою огромную экономическую мощь для разорения 99% создателей музыки, монополизируя 1%, который они порабощают контрактами в 100 страниц и "360º сделками" и делают на них огромную прибыль, в то время как публикация осуществляется в MP3 и распространяется через интернет. Итак, лейблы теперь являются маркетинговыми компаниями, которые продают свои бренды и борются с другими – пытающимися привнести в мир что-то новое, им не принадлежащее!
Я никогда не буду поддерживать использование музыки без какого-либо вознаграждения реального человека, потратившего время и приложившего творческие способности к созданию этой музыки, которая нам нравится! Авторам тоже нужно делать покупки в супермаркетах, они не питаются воздухом, а без них мир был бы гораздо менее интересным.
С чем я не согласен, так это со злоупотреблением теми законами, которые на самом деле должны защищать права творцов, которые делают наш мир более интересным, с целью обеспечить обогащение меньшинства и не дать нам услышать всю созданную музыку, которой возможно, мы могли бы наслаждаться!
Например, знаете ли вы, что в наше время музыка основана на электронных инструментах и сэмплах? Вся музыка в топах содержит какие-либо сэмплы или сэмплированные инструменты! И лейблы гоняются за ремиксерами и блокируют их контент, в то время как сами публикуют и делают состояния на других сэмплированных песнях?!
Также гоняются и за малоизвестными диджеями и удаляют их работы, потому что они используют законно купленную музыку для создания своих сетов, запрещая им делиться своим творчеством и получать известность от того, что они делают лучше всего… Как, черт возьми, DJ должен создать сет без каких-либо материалов, защищенных авторским правом? Разве это звучит разумно?!
Таким образом, DSound НЕ способствует обмену материалами, защищенными авторскими правами, а освобождает авторов от давления со стороны крупных лейблов и предоставляет им инструмент, позволяющий достойно жить за счет своего творчества без необходимости подписываться на сотрудничество с лейблом и отдаваться в рабство.
Если я смогу помочь это осуществить, я стану самым счастливым человеком на этой планете, потому что…
“Музыка – это то, как звучат чувства”
@prc - 2017
Присоединяйтесь к сообществу Steemit в Телеграм: t.me/Steemit
Оригинал поста: ЗДЕСЬ
Если вам нравится то, что мы делаем - поддержите witness blockchained на Steem!
![](https://steemitimages.com/640x0/http://i.imgur.com/wOxrdeJ.png)
Cпасибо за переводы!!!
Thank you! :)
А для видео что-то подобное есть?
Да: Представляем DTube: децентрализованную видео-платформу, использующую STEEM и IPFS
Хорошее дело. Если удасться широко внедрить эту разработку будет весьма неплохо.
Каждый год стараемся ездить в отпуск с семьей, и всегда я отвечаю за плейлист в дорогу. Кому-то надо рок, кому-то лишь бы без этой вашей попсы. Короче задача нелегкая)0 А еще проблемы из-за того что скачать особо негде. Благо нашел портал https://muzuk.net/ - сейчас беру все что нужно только там
Ну не знаю, лучше https://muzbox.net я пока что не видел. У меня уже даже выработанная схема есть по скачиванию музыки. Очень удобно а главное без вирусов.