Привет, Хабр!

В данной статье рассмотрим незаслуженно забытую тему децентрализованных облачных вычислений, проведём анализ существующих решений и попробуем ответить на главный вопрос - почему мастодонты AWS / Azure до сих пор остаются единственным production-ready решением для облачных вычислений, не оставляя шансов децентрализованным пулам мощностей?

Определение и область применения

Начнём с области применения. Облачные вычисления применяются для широкого спектра задач:

  • Работа backend'a и хостинг веб-сайтов, мобильных и десктопных приложений

  • Обучение и инференс нейронных сетей, проведение computing-heavy вычислений для исследовательских задач в различных областях

  • Облачный гейминг, рендеринг

  • И множество других требовательных к вычислительной мощности задач

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

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

А что же децентрализованные вычисления? Это тот же AWS, только машины расположены не в множестве централизованных серверных в ряде регионов мира, а в домах / гаражах / серверных множества людей по всему земному шару, а каждая машина / кластер будет являться нодой сети блокчейна. Гарантом сделки будет выступать не централизованная корпорация, а смарт контракты, платим не картой, а токенами сети.

Плюсы и минусы этого подхода ниже.

Польза и вред

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

Это предоставляет арендаторам вычислительных мощностей феерический выбор конфигураций и локаций - можно арендовать мощности престарелого ПК слесаря дяди Васи, а можно арендовать рендер ферму дядюшки Джона из Северной Америки.

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

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

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

Сказка, не правда ли? Но чудес не бывает, поэтому без минусов не обошлось.
У дяди Васи отключили электричество / интернет, и ваши вычисления улетели коту под хвост. Сэкономили? Да. Рады? Маловероятно.

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

Ваши данные и алгоритмы представляют коммерческую ценность? Дядюшка Джон может оказаться любопытным. Возможно он захочет посмотреть, что же вы крутите на его ноде. И ваши данные / алгоритмы будут скомпрометированы.

К мастодонтам AWS и Azure в этом плане доверия, конечно же, в разы больше.

Посмотрим, что из существующих решений нам сейчас доступно.

Актуальные децентрализованные решения для вычислений и хранения данных

Начнем с периферии.

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

IPFS (InterPlanetary File System) — технология распределенной файловой системы, основанная на DHT (Distributed Hash Table) и протоколе BitTorrent. Она позволяет объединить файловые системы на различных устройствах в одну, используя контентную адресацию.

Обладает высокой пропускной способностью, хранение бесплатно. Однако удаление файлов не предусмотрено, да и вообще хранение файла в сети кем-то, помимо автора, не гарантированно. Оплата для хостеров не предусмотрена.

Есть альтернативные технологии, хранение в которых не бесплатно.
Например, Sia, Storj, Ethereum Swarm, MadeSAFE.

Чтобы обеспечить надежность хранения, используются различные проверки, например, proof of storage (доказательство принятия файла), proof of retrievability (доказательство, что файл в наличии и может быть извлечен). Пользователь платит за хранение, а хостеры получают награду. Плюсы - хранение файлов гарантированно, их можно удалять, пропускная способность высока, надежность хранения засчёт финансовой мотивации. Минусы - не бесплатно и, как правило, совсем не дешево.

С хранением понятно, а что же вычисления?

Единственный относительно известный и развивающийся сервис, найденный мной - iExec.

Схема работы от авторов представлена на рисунке.

Схема работы iExec

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

А что же на деле?

А на деле есть нюанс - для нейросетей и других «обычных» вычислений это решение не подойдет. Только dApps, только Web 3.0. Но сервис вполне рабочий - в пуле есть мощности для аренды, их даже кто-то арендует и что-то с ними делает.

Узкоспециализированная, конечно, но вполне жизнеспособная (и живущая) система.

А где же провайдеры децентрализованных «обычных» вычислений?

Досконально прошерстив гугл могу со всей ответственностью заявить - ready-to-go решений в этой области мной обнаружено не было. Проекты на бумаге, замороженные, концепты и гипотетические проекты есть, но когда они попадут в реальную жизнь и попадут ли - большая загадка.

Заключение

Что мы получаем в сухом остатке?

Распределённый реестр, он же блокчейн, выглядит применимым к задаче облачных вычислений. Децентрализованные облачные вычисления имеют право на существование и точно могут найти своих потребителей, но с текущими проблемами (которые довольно сложно решить) шансы на конец гегемонии AWS и др. облачных решений крайне малы.

Недостаточно спроса (по причине рисков и проблем), недостаточно предложений - ведь их рождает спрос. Не будут же хостеры просто так включать свои машины в сеть вычислений, если в ней никто особенно и не вычисляет. Выстреливших проектов не наблюдается, развития и обсуждения темы - тоже.

С хранением файлов всё несколько более радужно. Инфраструктура есть, решений немало, спрос есть как минимум со стороны dApps - не будет же децентрализованное приложение хранить данные на централизованном файлохранилище.

И не будем забывать - в стезе децентрализованного хранения и обмена файлами есть крайне успешный мастодонт uTorrent :)

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

Будем наблюдать за развитием этой отрасли.