СУПЕРИНТЕЛЛЕКТ СЕЙЛ-15%
До 20 ноября-15%
СУПЕРИНТЕЛЛЕКТ СЕЙЛ-15%
До 20 ноября-15%
СУПЕРИНТЕЛЛЕКТ СЕЙЛ-15%
До 20 ноября-15%
СУПЕРИНТЕЛЛЕКТ СЕЙЛ-15%
До 20 ноября-15%
СУПЕРИНТЕЛЛЕКТ СЕЙЛ-15%
До 20 ноября-15%
СУПЕРИНТЕЛЛЕКТ СЕЙЛ-15%
До 20 ноября-15%

Децентрализованные вычисления: как Fluence Labs строит замену облакам

Евгений Пономарёв из Fluence Labs рассказывает, как устроена децентрализованная платформа вычислений и чем она отличается от облаков, Filecoin и Akash.
Евгений Пономарёв, Fluence Labs

Интервью вышло в апреле 2023 года. Цифры и планы проектов указаны на тот момент.

Путь в блокчейн

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

Что делает Fluence

По меркам web3 наша компания довольно старая: мы начали работать ещё в 2017 году. Тогда мы с кофаундером Дмитрием наблюдали за блокчейном со стороны. Нас увлекла идея переизобрести интернет-инфраструктуру с помощью блокчейна и решить проблемы централизации, владения и контроля над инфраструктурой, приложениями и сервисами.

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

Или облачная инфраструктура, где хостится существенная часть интернета и всех сервисов. Это всего три провайдера: Amazon, Google и Microsoft. Когда инфраструктуру контролируют такие гиганты, появляется много болевых точек, где что-то может пойти не так. Бывают технические проблемы, когда админ или DevOps выключает кластер или дата-центр. Бывает, что государство говорит: «Вы на нашей территории, забаньте этого клиента». Любой сотрудник компании может навредить клиентам, а их миллионы.

Плакат «Big Brother is watching you» с огромным глазом

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

Картина тогда была такая: есть Ethereum и несколько его первых конкурентов. Из аналогов облачных вычислений были Storj, DFINITY и Golem, и всё. Мы копали в сторону баз данных и зашифрованных данных, исследовали разные направления и потратили немало времени, чтобы понять, что имеет смысл делать. В итоге пришли к тому, что сейчас называется Fluence.

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

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

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

Всё это можно описать на нашем языке программирования Aqua. Он сделан специально для того, чтобы создавать безопасные распределённые системы.

Я могу запрограммировать, как мой бэкенд, то есть разные инстансы и функции на разных провайдерах, будет работать вместе, чтобы получилось именно то, что мне нужно. Часть этого будет встроена во Fluence по умолчанию. Сейчас, например, fault tolerance уже есть, а autoscaling пока нет. Платить за всё это можно будет стейблами на блокчейне или любыми другими ERC-20-токенами.

Ещё мы делаем важную вещь: пруфы вычислений. Они избавляют от необходимости строить систему репутации провайдеров. Мы делаем более строгую модель, в которой можно положиться на корректное исполнение кода во Fluence. Блокчейн тоже это гарантирует благодаря консенсусу, но там ради безопасности сотни и тысячи нод исполняют одни и те же вычисления. Во Fluence глобального консенсуса нет, зато есть пруфы корректного исполнения кода. Когда вы деплоите функцию на нескольких провайдеров, консенсус можно добавить опционально, но исполнение от этого дорожает.

Сейчас Fluence на этапе приватного тестнета. Тулинг для разработчиков и платежи уже есть, а провайдеров вычислительных ресурсов на маркетплейсе пока нет. Если захотите попробовать Fluence сейчас, придётся работать с нашими нодами. Бесплатно, конечно. Дальше мы планируем выйти в публичный тестнет и онбордить провайдеров, а потом запустить мейннет с живой экономикой и платежами.

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

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

Есть ещё Akash Network, но там всё проще. Они тоже делают маркетплейс, но он только сводит клиента с провайдером. Гарантий, что провайдер, например, не уйдёт в офлайн, нет.

Логотипы Filecoin, Fluence и Akash Network

Почему вычисления сложнее хранения

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

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

Вообще инфраструктуру делать довольно сложно. Много задач нужно довести до простого уровня. Мало собрать маркетплейс и сказать: «Деплойте что хотите». Его нужно довести до юзабельного продукта. А это когда у клиента есть гарантии, что его код будет исполнен, а у провайдера, который исполняет код, — гарантии, что этот код не вылезет из контейнера и не сломает ему операционную систему.

Нам пришлось изобретать много низкоуровневых вещей. В частности, мы сделали Aqua, протокол распределённого исполнения (distributed execution protocol) и предметно-ориентированный язык (DSL). На нём пишут скрипты, которые описывают распределённые вычисления в терминах нод и функций, которые на них нужно исполнить, с условиями, операторами, циклами и так далее. Aqua похож на AWS Step Functions, но его можно безопасно запускать в публичной P2P-сети, и языковых фич в нём больше.

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

Самый простой пример — P2P-чат между двумя устройствами, которые общаются через сеть Fluence. Клиент Fluence на одном устройстве создаёт запрос: «Пойди на такую-то ноду, исполни такую-то функцию, а результат отправь на то устройство». Так сообщение уходит с одного устройства на другое через ноду Fluence. Но дальше всё сильно усложняется.

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

Multicoin Capital и децентрализованная инфраструктура

В Multicoin верят в распределённую инфраструктуру и готовы инвестировать в самые адекватные проекты в этой сфере. Когда мы анонсировали наш раунд, свой раунд анонсировали и Ceramic. Это распределённая база данных. Такую задачу пытались решить много лет, но Ceramic из тех, кто подошёл к ней правильно, и их решение многим нравится. Поэтому Multicoin в них и инвестирует.

В портфеле Multicoin есть Render Network, проект для рендеринга на GPU, и не только видео. Ethereum перешёл на Proof-of-Stake, и, судя по всему, освободилось много GPU, потому что майнинг на других чейнах гораздо менее доходен. Их владельцы ищут, куда эти GPU применить. Некоторые проекты пытаются привлечь таких провайдеров, чтобы рендерить на их GPU видео или заниматься машинным обучением.

Ещё Multicoin инвестировали в проект, который делает распределённый CDN. Эта идея тоже витает в воздухе много лет, но явного лидера с внятным предложением нет.

Кайл, фаундер Multicoin Capital, последовательно продвигает одну и ту же мысль: у Fluence должны быть чёткие юзкейсы и понимание своих клиентов. Кайл всегда советовал не распыляться и не делать платформу для всего подряд, а фокусироваться на конкретных сегментах и понимать свой рынок.

Кому пригодится Fluence

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

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

В web3 Fluence полезен в роли оракулов: он может индексировать чейны, на нём можно делать ботов. Но кое-каких фич пока не хватает, например поддержки популярных языков вроде Python или JavaScript, на которых можно было бы писать функции для деплоя во Fluence.

Мы всё компилируем в WebAssembly, поэтому сейчас поддерживаются Rust и C++, а люди хотят Python и JavaScript. Мы работаем над тем, чтобы Python точно появился. Это сильно расширит возможности и снизит порог входа для разработчиков. Сейчас многие не пользуются Fluence именно потому, что не знают Rust.

Ещё во Fluence пользователи могут выбирать провайдеров, хотя алгоритмы прячут эту магию под капот. Фильтров по геолокации и железу пока нет, потому что это нетривиальные задачи. Как проверить, что серверы провайдера действительно в Европе, если он так заявляет? Или что у него действительно мощное железо?

Мы хотим сделать Proof-of-Capacity, награду за то, что провайдер выделяет сети определённые вычислительные ресурсы. Эта технология позволит доказать, что у тебя есть определённый объём ресурсов, который измеряется процессорными мощностями и памятью. Хотелось бы в будущем к ней прийти.

Провайдеры и опыт разработчиков

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

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

Четыре ноутбука с восклицательными знаками, соединённые в кольцо вокруг слова HELP

Главный барьер именно в опыте разработчиков (developer experience). Вот Vercel, через который фронтендеры и JavaScript-разработчики деплоят JavaScript-приложения. Там появились функции, которые под капотом исполняются в AWS Lambda. Вот насколько AWS встроен в другие сервисы: люди пользуются инфраструктурой Amazon даже не напрямую, а через множество других сервисов.

Heroku, например, тоже позволяет деплоить что угодно в Amazon. У Fluence и других децентрализованных технологий интеграций такого уровня сейчас нет. Даже тулинг вокруг Filecoin пока очень базовый.

Люди привыкли работать даже не с API Amazon, а через прослойку, которая упрощает разработку. В web3-инфраструктуре такого опыта пока нет. Но он появится. Нужно время, чтобы допилить базовые тулы и начать делать интеграции с сервисами, которые упрощают жизнь разработчикам.

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

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

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

Будущее децентрализованных вычислений

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

Красный штамп CENSORED

Вообще спрос бизнеса на снижение platform risk существует давно. Вопрос в том, есть ли для этого решение. Допустим, я хочу сегодня снизить риск и уехать с Amazon. Куда? Могу поднять серверы в дата-центрах. И что, вернуться на уровень двадцатилетней давности, когда облаков ещё не изобрели? Я хочу те же фичи и ту же лёгкость управления инфраструктурой, что в облаке, но с меньшим риском цензуры.

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

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

Мы верим, что можем конкурировать в двух областях: platform risk и низкие цены. Насколько ниже, пока сказать не могу, но надеемся, что раз в десять точно.

Комьюнити и токен Fluence

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

Сейчас мы сотрудничаем с комьюнити разработчиков, проводим ивенты и спонсируем хакатоны. Недавно сделали партнёрство с Developer DAO на конференции ETHDenver. Есть ещё партнёрства в Индии, которые пока не запущены. Мы стараемся, чтобы о Fluence говорили, даже если проект в чём-то ещё не готов к продакшну. Нужно, чтобы люди пробовали и давали фидбек.

На хакатонах у нас бывают баунти-программы. Постоянного списка баунти вне хакатонов пока нет, но мы хотим к этому прийти. В web3 это совершенно нормальная практика: проекты привлекают разработчиков через баунти.

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

Поделиться
Интересно погрузиться в крипту?
Поможем выбрать направление!