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

Знакомство с Големом

Golem – всемирный, децентрализованный суперкомпьютер от польских разработчиков, объединяющий воедино неиспользуемые мощности обычных компьютеров в р2р сети. Сервис под названием AirBnB дает людям возможность монетизировать неиспользуемую жилплощадь, сдавая её в аренду туристам. Golem делает тоже самое только с ресурсами вашего компьютера. Мы редко нагружаем свои домашние машины до предела, так что большая часть ядер процессора, и гигабайт оперативной памяти остаются незадействованными. В тоже время некоторым пользователям нужны сверхмощные компьютеры для сложных вычислений вроде моделирования нейронных сетей, или рендеринга изображений. Локальные машины способны справляться с такими задачами, но затрачивают на их исполнения очень много времени.

Golem сводит вместе эти две группы людей, образуя свободный децентрализованный рынок вычислительных мощностей. Благодаря ей очень требовательные к железу задачи решаются в кратчайшие сроки. Сервис может использоваться для CGI рендеринга, научных расчётов (математика, биология, химия), метода Монте-Карло, анализа ДНК, обучения и тренировок ИИ, обработки больших объёмов данных (big data analytics), машинного обучения, децентрализованного хранения данных, и т. д.

Самый показательный способ применения Голема – CGI рендеринг, потому основная команда разработчиков решила на нем продемонстрировать рабочую версию своего приложения, но она не собирается изобретать и разрабатывать все возможные способы применения своей системы собственноручно. Вместо этого, команда сфокусируется на разработке API, дающего доступ к Библиотеке Голема, с помощью которой можно создать и интегрировать любое ПО для использования потенциала Golem Network. Для многих задач потребуется лицензированное ПО, либо уже существующее, либо созданное специально для Голема. Для содействия использования лицензионного и открытого ПО будет создан Реестр Приложений. Если ПО лицензионное, то заказчик сможет использовать его по модели software-as-a-service. Таким образом Golem будет работать не только как рынок для компьютерных мощностей, но и как канал цифровой дистрибуции для независимых разработчиков ПО. Например, если какая-то группа разработчиков сообразит, как использовать Golem для обучения ИИ, они могут никого не спрашивая, создать на базе Голема свое приложение, и, если его одобрят сторонние аудиторы, оно появится в Golem Shop где станет доступным для всех пользователей на условиях создателей. Развитие экосистемы распределенных вычислений будет полностью в руках сообщества. Golem задумывается как свободная торговая площадка, с бесчисленным количеством способов применения, потому единых правил взаиморасчетов для всех участников системы не будет. Когда разработчик поместит свое приложение в Golem Shop, он сам сможет определить какую модель транзакций он внедрит.

Медный Golem

Самым значимым событием 2018 года для проекта стал долгожданный релиз бета-версии Голема aka Brass Golem (Медный Голем). Это тестовая версия приложения с ограниченным функционалом. В ней можно арендовать мощности сети Golem для рендеринга. Разработчики сравнивали скорость работы Голема со скоростью работы программы Blender на локальном компьютере. Golem справился с задачей в 12 раз быстрее, затратив на работу всего 40 минут, в то время как один компьютер корпел над аналогичным заданием 8 часов.

Сейчас тем, кто профессионально работает с графикой и визуальными эффектами приходится прибегать к услугам так называемых рендерных ферм. Существует много облачных платформ, предлагающих вычислительную инфраструктуру, таких как Google Cloud Platform, Amazon Web Services и Microsoft Azure, но использование Golem будет несравнимо выгоднее в экономическом плане, ведь его «слепили из того, что было», из невостребованных пользовательских вычислительных ресурсов, потому коммерческие гиганты никак не смогут конкурировать с Големом в ценовой политике на предоставляемые услуги.

  Среди прочих преимуществ сети разработчики выделяют следующие:

  • Децентрализация. В сети нет единого центра, сбой которого приведёт к прекращению работы всей сети.
  • Масштабируемость.Наличие возможности подключения миллионов рабочих станций благодаря p2p-архитектуре.
  • Безопасность.Все вычисления происходят на виртуальной машине и изолированы от главной системы.
  • Легкая интегрируемость. Сторонние разработчики имеют возможность интегрировать в Golem свои приложения, придумывая новые способы использования платформы.
  • Универсальность.Может использоваться для любого типа задач, которые можно разделить. Пользователи будут иметь набор инструментов для определения и добавления новых задач в сети.

Подробнее о технологии

В системе есть два типа участников Заказчики (Requesters) и Провайдеры (Providers). Заказчики могут становиться Провайдерами и наоборот. Новые узлы могут присоединяться в любой момент.

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

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

Requester загружает задание в клиент. Golem разделяет его на подзадачи между незанятыми узлами, а после того, как узел-Requester соберёт результаты всех подзадач, он приступает к оплате услуг Провайдеров. Транзакции системы основаны на смарт-контрактах сети Ethereum.  Оплата услуг сервиса в фиате невозможна. Придется покупать токены GNT, а также иметь немного ETH на счету для оплаты комиссии. Этот момент, кстати, может отпугивать многих казуальных юзеров. Не все художники знакомы с криптовалютами, и перейти из фиата в ERC-20 токен может для некоторых стать непреодолимым вызовом.

Блокчейн используется только по назначению, то есть задачи в него не записываются. Также девелоперы позаботились об оптимизации, объединяя оплату Заказчика нескольким Провайдерам в одну транзакцию, чтобы не засорять сеть Эфира.

Факты одним предложением

  • На данный момент, Golem не поддерживает приватность. И любопытные провайдеры могут видеть часть обрабатываемой информации.
  • Сеть Голема не может использоваться в недобросовестных целях, вроде проведения DDoS-атак, благодаря тому, что вычисление проходят в изолированной среде, из которой невозможно получить доступ к сети.
  • Система репутации позволяет определять вредоносные узлы, избегать их при распределении задач.
  • Система белых и черных списков позволяет построить сеть, основанную на доверии, и использовать приложения, созданные только авторитетными разработчиками с хорошей репутацией.
  • Интеграция с Ethereum и платежная система делает возможным настраивать пользователям механизмы безопасности, например, делать платежи Escrow, депозиты, и пр.
  • Перед релизом каждого приложения на платформе, независимым подрядчиком будет проводиться полный аудит его кода.
  • Заказчик сможет проверять правильность проделанной Провайдерами работы несколькими способами, например, вычислением маленькой части задания, и сравнение с результатом, полученным от провайдера.
  • В работе Golem использует дополнительные внешние сервисы, IPFS для распределения данных между узлами, и Docker, в качестве среды, где производятся вычисления.

Планы на 2019 год

Golem один из самых долгоиграющих проектов на рынке децентрализованных приложений. Он на слуху с 2016 года, когда и был проведен краудфандинг. Поляки собрали 8,2 млн. долларов в ETH, спустя два года эта сумма увеличилась вдесятеро согласно данным ресурса отслеживающего «сокровищницы» ICO. Это конечно не 4 миллиарда EOS’a, но этих средств им хватит на годы вперед, и они им пригодятся, ведь работать над Големом предстоит ещё долго.

В планах на ближайшее время выпуск Глиняного Голема (Clay Golem). Этот апдейт, а точнее целая серия апдейтов привнесет в систему API и Реестр Приложений, о котором упоминалось выше. В недавней серии вопросов и ответов на Reddit разработчики сообщили, что проект постепенно перейдет в «Глиняную фазу» примерно во второй половине 2019 года. В этот период можно ожидать Кембрийский взрыв в экосистеме Голема, и реализации новых способов применения мощностей сети независимыми программистами. К слову на текущий момент в ней числится 482 узла, 2667 ядер CPU, 5022 гигабайта оперативной памяти и 61400 гигабайт дискового пространства.

После Глиняного Голема планируется ещё два апдейта Каменный и Железный. Но их воплощение в следующем году мы точно не увидим, потому вникать в них пока нет смысла, всё ещё может несколько раз измениться.

Вывод

Golem не уникальный проект. Над децентрализованным компьютером работают такие компании как iExec (RLC), SONM (SNM), это из более-менее известных, но Golem всё же самый популярный в это нише. Зимой 2018, поляки обещали провести масштабную маркетинговую кампанию после релиза Brass Golem. Его планировали сделать отдельным продуктом, заточенным под коммерческий рендеринг. Собирались добавить поддержку нового софта и видеокарт. Но спустя полгода после релиза беты ничего этого так и не произошло. Было выпущено несколько неплохих промо-роликов, но едва ли это можно назвать рекламной кампанией. Ресурс https://stats.golem.network/show показывает, что узлы регулярно выполняют какие-то задачи, но за неделю личного использования Голема получить какое-то задание мне так и не удалось. Небольшая потеря, учитывая текущие цены на GNT. Пользовательский рынок – это лишь часть бизнес-модели проекта. Идеальный клиент сервиса – разработчик, который хочет создать приложение на базе Голема, заточенное под решение определенной задачи. Команда Голема будет активно работать с независимыми программистами над изобретением новых способов использования сервиса, сейчас они рассматривают 30 идей.

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