📢 Большое обновление DTube 0.8: DTV, DTalk, система VIP и другое

in steem •  4 months ago

Подготовка версии 0.8 заняла некоторое время, и этот пост объяснит, почему. Несмотря на это, новая версия полна множеством полезных функций, которые были очень востребованы. Спустя почти год с момента запуска мы выпустили уже восьмую по счету итерацию DTube и иногда нам даже не верится, как далеко мы продвинулись! Это обновление таит в себе новые возможности, способные сделать платформу более полноценной и сравнимой с основными видеоплатформами. Но прежде чем говорить о новых функциях, поделюсь с вами важной новостью:

Теперь исходный код DTube полностью открыт!

До сих пор был открыт код всего, кроме основного приложения, которое было доступно только в мини-формате, что, по-видимому, доставляло неудобство множеству людей.
Я рад сообщить, что теперь бесплатное программное обеспечение DTube обладает на 100% открытым исходным кодом. Наше основное приложение теперь доступно всем желающим его почитать или модифицировать на github.com/dtube/dtube. Это еще один шаг в надежде на повышение прозрачности нашего проекта и участие сообщества в его создании.


Уведомления

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

Наши уведомления явно схожи с реализацией на busy.org, однако клиентская сторона немного отличается и позволяет вам лучше определять, на какие уведомления вы уже нажимали.

DTV: стримы в прямом эфире на DTube

Большая новая функция, которая, я уверен, понравится многим – это стримы в прямом эфире. Мы используем централизованный сервер прямых трансляций [MistServer](https://mistserver.org/) с [открытым исходным кодом](https://github.com/DDVTECH/mistserver).

В дополнение к Mist я построил api для безопасного создания стриминговых ключей, которые связаны непосредственно с именем пользователя steem. Когда вы нажимаете кнопку получения стримингового ключа, он в фоновом режиме создает кастомную транзакцию dtubeStreamVerif, которая проверит ваш steem id и авторизует стриминговый токен. Это означает, что вы можете начать трансляцию без обязательной публикации нового исходного поста в блокчейне.

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

И тогда как децентрализация стримов, безусловно, является хорошей идеей, это трудная задача, реализация которой потребует времени. Это наша конечная цель. Однако, в отличие от массового кодирования видео, серверы для трансляций – это очень открытый рынок со множеством альтернатив, в том числе и с открытым исходным кодом. Мы решили, что на данный момент это хороший выбор, так как подобная схема не требует больших затрат или времени обслуживания, а также отвечает даже самому высокому спросу нашего сообщества.

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

В следующем релизе MistServer мы также должны получить доступ к трансляциям WebRTC, что обеспечит возможность проводить прямую трансляцию в браузере через WebRTC, т.е. необходимость в программном обеспечении для ведения стрима, таком как OBS или Larix Broadcaster, попросту отпадет.

DTalk: Личные сообщения на Steem

Личные сообщения на Steem – это тема, обсуждение которой время от времени возобновляется, так и не приходя к рабочему решению. Лично я считаю, что если все топовые социальные сети внедряют в свои платформы обмен сообщениями, на то есть причина. В настоящее время большинство стимеров использует steem.chat или Discord. Эти решения не слишком удачны, поскольку они требуют, чтобы пользователи проверяли, с кем они разговаривают, если они не хотят неприятностей. Если мы хотим найти самый удобный способ общения между пользователями, то вряд ли это будет дополнительный аккаунт в Discord или Steem.chat.

Некоторые разработчики уже пытались придумать решение для этой проблемы раньше, например, Mangosteem от @mynameisbrian или Steem Messenger от @therealwolf. Эти решения не были приняты сообществом, потому что они ограничены блокчейном. Mangosteem заполонял чейн спамом и вскоре стал непригоден для использования. Steem Messenger использует операции трансфера для отправки (коротких) сообщений, поэтому каждое сообщение стоит 0,001 STEEM или SBD. Кроме того, даже если вы не сможете расшифровать текст сообщения, вы всё равно увидите, кто с кем говорит.

После тщательного анализа этих фактов и достаточно сильного желания дать пользователям DTube возможность отправлять сообщения, я попытался придумать решение. Простым централизованным решением будет использование модифицированного irc-сервера, который даст пользователям STEEM возможность войти в систему, попросив их декодировать сообщение, которое способны расшифровать только они. Это решение прекрасно работает и должно масштабироваться так же хорошо, как традиционный IRC-сервер (т.е. довольно хорошо).

Можно ли его децентрализовать?

Если мы можем сделать это для изображений и видео, почему бы не проделать то же самое с текстовыми строками? Поскольку, если мы не хотим использовать в качестве базы данных блокчейн STEEM, как обычно, хранение сообщений нецелесообразно, так как у нас всё равно не будет возможности легко получить все сообщения из одной дискуссии. Нам нужна децентрализованная база данных в рамках браузера, внутри приложения DTube.

Всё возможно

С этой целью DTube теперь использует [Gun](https://gun.eco/) – технологию децентрализованной графовой базы данных. Он создан @marknadal, который помог мне воплотить в реальность DTalk. Хорошим примером, на сегодняшний день используемым в продакшене, является [notabug.io](https://notabug.io/), децентрализованный reddit, на все 100% работающий на gun, без блокчейна, без бэкенда. Теперь DTube стал еще одним хорошим примером возможностей Gun.

Так же, как и в схеме с IPFS, у DTube будет узел Gun, работающий внутри инфраструктуры в режиме 24/7, что должно помочь корреспондентам видеть новые сообщения, даже если отправитель отключен, и где-то хранить ваши зашифрованные сообщения, даже если вы удалите все ваши браузеры.

Все сообщения шифруются end-to-end, и выяснить, кто говорит с кем, невозможно, если вы не можете расшифровать само сообщение. Единственный нюанс – вам нужно будет опубликовать ваш gun ключ внутри своего профиля, чтобы другие пользователи могли его найти и отправить вам сообщение. Теперь вы должны видеть красную кнопку, когда находитесь в разделе DTalk. Вам нужно проделать это только один раз, за исключением случаев, когда вы сбрасываете свои STEEM ключи: в этом случае вам нужно будет сделать это снова, и все ваши старые цепочки сообщений будут потеряны.

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

Обработка DMCA

Это не очень хорошая тенденция, но мы начали блокировать некоторые видео с домена d.tube на основании полученных нами жалоб DMCA. Недавно мы запустили супертонкий 18-строчный сервер, который идентифицирует DMCA видео.

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


Кластеризация инфраструктуры

После предыдущего обновления мы запустили для D.Tube около 10 специализированных серверов различного размера. Некоторые из них сосредоточены на хранении (сервера хранения данных), некоторые – на вычислительной мощности (серверы кодирования), некоторые предназначались для общих задач или тестирования. Это было удобно и просто в плане управления, пока у нас было небольшое количество серверов, но рост проекта потребовал от нас апгрейда этой части, хотя в будущем нам вообще не понадобятся серверы, но пока что до этого далеко.

Повсеместная кластеризация немного напоминает создание одной большой машины путем объединения всех других машин вместе. Эта большая машина – именно то, что мы называем кластером. Затем с помощью инструментов виртуализации, подобных Docker, мы можем запускать множество небольших экземпляров одного и того же программного обеспечения внутри кластера без необходимости каждый раз ждать и арендовать очередной сервер.

Перевод программного обеспечения на Docker

Все эти маленькие экземпляры запускаются через Docker, и это очень популярный способ. Большинство заверителей STEEM также используют докер для запуска блокчейна STEEM.

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

На данный момент в нашем кластере работает 7 сервисов:

  • traefik: служба, которая обрабатывает весь трафик и перенаправляет его в годный контейнер docker
  • Загрузчик IPFS: наша служба загрузки (ffmpeg кодирование, быстрое изменение размера, узел ipfs)
  • Стриминг: MistServer в сочетании с нашими собственными api стриминговых ключей.
  • Прямая поставка видео (подробнее об этом позже)
  • Узел GunDB
  • MariaDB (наша небольшая база данных sql для учета и @dtube.rewards)
  • vip.d.tube: небольшой веб-сайт для быстрого создания аккаунтов steem по коду

Хранение и резервирование данных

Еще одна большая проблема нашей старой установки дала о себе знать, когда умер диск. Все находящиеся внутри данные умерли вместе с ним, и если файл не был скопирован на другой узел ipfs или автор не загрузил этот же файл, видео никогда не будет загружаться снова. Управление резервированием с помощью IPFS входило в первоначальный план, но использование ipfs pin ls на больших хранилищах данных, подобных нашим, занимает слишком много времени и сложно в управлении.

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

Перемещение

Очень важной частью проекта кластеризации стало перемещение всего с нашей простой системы на новую, которая прежде нами не тестировалась. Мы провели несколько тестовых дней, когда половина наших загрузок работала в кластере, а половина – в старой системе. Мы закончили перенос загрузки ipfs и доставки видео в кластер 19 июня.

Замедление IPFS и добавление прямой доставки видео

В середине процесса внедрения всех этих изменений сетевой шлюз IPFS начал загружать видео гораздо медленнее, даже когда мы использовали наш старый способ. Пользователи жаловались. Мы должны были что-то сделать. Мы создали новый сервис, работающий в домене “video.dtube.top”, который подает видео прямо из нашего кластера, точно так же, как IPFS, однако не проходя через сеть IPFS. Файлы всё так же содержатся в хранилище данных IPFS, и получение видео с IPFS еще работает.

Это соответствовало действительности около месяца назад, кажется, сейчас IPFS снова загружает видео довольно быстро. Проверьте сами.

Возникшие проблемы

Все эти изменения в инфраструктуре вылились в довольно ощутимые затраты. В последние месяцы наш сервис порой был нестабилен.
15 июля у нас произошел крупный инцидент, который стал причиной 6-часового простоя в загрузке и доставке видео.

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

От имени команды DTube я хотел бы извиниться за все эти неудобства. В течение последних 3 недель наш сервис работает без сбоев, и мы думаем, что дальше всё будет так же хорошо. В случае возникновения проблем, пожалуйста, свяжитесь с нами по каналу upload-issues, как и раньше, это нам очень помогает.

Начните разработку на DTube с Utopian.io

И хотя мы только недавно объявили о том, что исходный код основного приложения DTube теперь открыт, мы уже собрали 75 звезд и множество запросов от контрибуторов, в основном из Utopian.

Участие в разработке DTube с помощью Utopian – уникальная возможность для open source разработчиков, и мы уже получили множество положительного опыта с теми, кто работает над DTube из собственной мотивации, не ожидая выплат. За исключением того, что они заканчивают начатое с криптой на своем счету и обширной аудиторией для своей работы.

Процесс крайне прост:

  1. Найдите себе задачу. Это можно сделать либо в наших отмеченных ишью на GitHub, либо обратившись ко мне лично на discord.gg/dtube
  2. Напишите хороший код и отправьте его в качестве пул реквеста на GitHub.
  3. Мы проверим ваш пул реквест и проведем слияние с основным кодом или прокомментируем обнаруженные нами проблемы.
  4. В течение следующих 14 дней после слияния опубликуйте пост в сети STEEM. Это может быть DTube-видео.
  • Первый тег должен быть utopian-io
  • Второй тег должен быть development
  1. ???
  2. Деньги и слава

DTube 0.8: контрибуции в открытый исходный код

Новый стиль курирования

Контрибутор: @wehmoen | Пост Utopian | Новый репозиторий
Последние пару недель у нас работает новый discord-бот, который помогает нашим кураторам делать свою работу более тщательно.
Вместо того, чтобы просто голосовать с одним и тем же процентом (20%), кураторы теперь могут контролировать вес голоса бота с помощью эмодзи! Каждая реакция (👍, 👎, 💯, 🎲 или ❤) оказывает различное влияние на голосование.

Начало работы на DTube: vip.d.tube

Контрибутор: @wehmoen | Пост Utopian | Новый репозиторий
Это то, что мне предлагали много раз, и что раньше мне не хотелось делать, однако теперь это становится важным. Теперь мы сможем генерировать коды ваучеров, которые позволят людям мгновенно получить аккаунт в STEEM. Мы планируем распространять эти коды на мероприятиях, возможно, непосредственно на наших визитных карточках в качестве промо. Мы также можем предоставить коды популярным ютуберам, которые хотят перейти на новую платформу, минуя процесс ожидания.

Небольшие улучшения в UI и графике (меню, загрузки, стартовая страница)

Контрибутор: @happyrobot | PR
Версия 0.8 выглядит лучше, чем 0.7, и всё благодаря @happyrobot. Наиболее заметные изменения коснулись боковой панели и страницы загрузки, но почти всё получило небольшое улучшение.

Компактный списков языков и уведомлений

Контрибутор: @happyrobot | PR
Меню выбора языка стало довольно длинным, даже для десктопной версии, в результате чего языки в конце алфавита выходили за пределы экрана. Эта проблема также касалась уведомлений на мобильных устройствах, где было невозможно отобразить плавающее меню со всеми уведомлениями внутри. Поэтому мы создали новый способ отображения длинных списков информации в DTube.

Запоминание пользовательских настроек ночного режима и веса голоса

Контрибутор: @kirkins | Пост Utopian | PR
Также некоторое раздражение при использовании DTube вызывало то, что ваши настройки веса голоса или ночного режима сбрасывались, когда вы открыли новую вкладку или обновляли текущую. Теперь всё работает так, как нужно, и запоминает ваш выбор.


В заключение

Это обновление – еще один большой шаг к истинной полноценности нашего большого проекта. В прошлом году, когда я изначально опубликовал DTube 0.1, я понятия не имел, к чему всё придёт, и даже не был уверен, что это сработает.

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

Есть еще масса функций, которые необходимо добавить, чтобы сделать DTube видеоплатформой, которая понравится как будущим производителям, так и потребителям контента. Плейлисты, VOD, донаты в стиле Twitch, аналитика, платформа для рекламы. Мой мозг заполоняют всяческие идеи, поскольку проект не стоит на месте, за что я также благодарен сообществу!


Присоединяйтесь к DTube на Discord: https://discord.gg/dtube
Наши репозитории на GitHub: https://github.com/dtube
Переведите DTube на свой язык: https://crowdin.com/project/dtube
Как залогиниться на DTube: https://about.d.tube#faq1
Сайт DTube: https://d.tube


Переведено @blockchained

Оригинал поста: ЗДЕСЬ


Если вам нравится то, что мы делаем - поддержите witness blockchained в сети Steem


Телеграм чат: https://t.me/steemit


Вы можете торговать токенами STEEM/SBD на RuDEX с 0% торговой комиссией

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Believe you can and you're halfway there.

Очевидно ,сделать децентрализрванный сервис ,оказалось сложновато. Особенно если учесть ,что до этого никто особо не работал в этом направлении.