Golem: перевод белой книги (часть I)
Продолжаем перевод "Белых книг" блокчейн (именно blockchain, а не bitcoin) проектов. И сегодня на очереди... Голем.
Проект Golem
"Белая книга" о краудфандинге (Версия v0.9, Октябрь 2016 г.)
Содержание
- Обзор проекта Golem
- Основная идея и функции
- Экосистема Golem
- Инфраструктурные ресурсы
- Спрос на вычислительные ресурсы
- Программы & микросервисы
- Первичный вариант использования: CGI-рендеринг
- Планы на будущее: Golem как часть Web 3.0
- Токен сети Golem (GNT)
- Реестр Приложений (Application Registry)
- Структура Транзакций (Transaction Framework)
- Дорожная карта
- Brass Golem
- Clay Golem
- Stone Golem
- Iron Golem
- Будущие внедрения
- Краудфандинг
- Резюме краудфандинга
- Бюджет и финансирование
- Команда Голема
● Golem - это первый по-настоящему децентрализованный суперкомпьютер, образующий глобальный рынок вычислительных ресурсов. В сочетании с гибкими инструментами, помогающими разработчикам безопасно распространять и монетизировать свое программное обеспечение, Golem также меняет способ организации и выполнения вычислительных задач. Благодаря микросервисной архитектуре и асинхронному выполнению задач Golem должен стать основой для будущих интернет-провайдеров и разработчиков ПО. И за счет того, что существенно снижается цена вычислений, сложные программы (CGI рендеринг), научные расчеты и машинное обучение, становятся более доступными для каждого.
● Golem соединяет компьютеры в p2p сети, позволяя владельцам приложений и отдельным пользователям (заказчиками) арендовать ресурсы компьютеров других пользователей (поставщиков). Эти ресурсы могут использоваться для выполнения задач, требующих любого количества времени и емкости вычислений. Сегодня такие ресурсы предоставляются централизованными поставщиками облачных услуг, но их недостатки это замкнутые сети, проприетарные платежные системы и жесткие ограничения на программный код. Кроме того, основной для Golem является специальная система транзакций на базе Ethereum, которая позволяет осуществлять прямые платежи между заказчиками, поставщиками и разработчиками программного обеспечения.
● Функцию Golem'а как основы децентрализованного рынка вычислительных ресурсов можно рассматривать как IaaS (инфраструктура как услуга), так и PaaS (платформа как услуга) Тем не менее, истинное преимущество Golem в том, что он позволяет интегрировать специализированные программы. Любая заинтересованная сторона может свободно создавать и устанавливать программы в сети Golem, публикуя их в Реестре Приложений. Используя Структуру Транзакций, разработчики также могут расширять и настраивать механизм оплаты, создавая уникальные механизмы для монетизации ПО.
Экосистема Golem
Бизнес задача Голема состоит в том, чтобы благодаря относительно недавним технологическим достижениям организовать рынок вычислительных ресурсов в соответствии с совершенно новыми принципами. С другой стороны, сегодня на рынке вычислений доминируют такие крупные игроки как Amazon, Google, Microsoft и IBM, которые прилагают все силы для обеспечения высокой рентабельности, что приводит к высоким ценам на вычислительные услуги К счастью, такая ситуация на рынке не будет длиться вечно. В сети Golem предоставление вычислительных ресурсов основано на вкладе отдельных и профессиональных поставщиков (providers), в сочетании с набором специализированных программных решений из Реестра Приложений Golem, который сам работает на едином и конкурентном рынке с практически полной информацией.
Масштабирование рынка вычислений, с помощью Golem, требует объединения трех групп: поставщиков вычислительных ресурсов, инициаторов задач (заказчиков), которые размещают свои задачи в сети Golem и, разумеется, разработчиков ПО. Эти три группы составляют уникальную, взаимозависимую экосистему Голема.
Инфраструктурные ресурсы
Вычислительные мощности в сети Golem обеспечиваются поставщиками. Поставщиком может быть как обычный пользователь, который может предоставить свободное время своего игрового ПК, так и большой центр обработки данных, предоставляющий все свои вычислительные мощности. Интерес поставщиков присоединиться к Голему, в том, что они получают платежи от заказчиков за выполненные задачи. Разумеется, пользовательский интерфейс Golem будет прост в использовании и позволит поставщикам легко устанавливать цены и решать, какую часть своих свободных ресурсов они готовы предоставить в аренду.
Спрос на вычислительные ресурсы
Чтобы выплачивать вознаграждение поставщикам за предоставленные мощности, Golem должен привлекать заказчиков, которые в этих мощностях заинтересованы. Тот рынок, что создает Golem будет очень конкурентным благодаря тому, что это рынок с практически полной информацией и благодаря простоте развертывания программ на любом оборудовании. Это не только упростит использование Golem, что конечно же привлечет заказчиков - высококонкурентная среда также повысит эффективность рынка, что, скорее всего, приведет к гораздо более объективной и выгодной цене по сравнению с существующими облачными вычислительными платформами.
Одна из важных особенностей заключается в том, что рынок Golem позволит заказчикам стать поставщиками: потому что большинству из них дополнительные ресурсы будут нужны только изредка. Они смогут сдать в аренду собственное оборудование и получать дополнительный доход. Кроме того, финансовый аспект не будет единственным стимулом использования Golem: одной из ключевых функций Голема будет наличие разнообразного ПО, работающего в его сети и доступного из Реестра Приложений.
Программы & микросервисы
Хотя некоторые первичные варианты использования (такие как CGI-рендеринг) будут разрабатываться и внедряться командой Golem, конечно же, необходимо вовлечь других разработчиков в создание приложений для Голема. Количество и качество таких приложений является одним из ключевых факторов будущего успеха Голема. По этой причине Реестр Приложений и Структура Транзакций являются одними из важнейших характеристик всей экосистемы и займут центральное место в процессе разработки. После реализации они обеспечат разработчикам гибкие и эффективные инструменты для развертывания, распространения и монетизации ПО работающего в сети Golem. Это будет идеальным решением для микросервисов и некоторых будущих децентрализованных приложений (DApps), но также может стать интересным способом распространения существующего проприетарного и свободного ПО
Первичное использование: CGI-рендеринг
Альфа-версия Голема: CGI-рендеринг с использованием Blender
CGI-рендеринг - это первый и очень показательный пример реального использования Голема.
Вместо того, чтобы использовать дорогостоящие облачные сервисы или ждать появления собственного мощного компьютера, CGI-художники теперь могут визуализировать графику быстро, арендовав вычислительные ресурсы у других пользователей.
Платеж от заказчика (в данном случае, CGI-художника), направляется непосредственно поставщикам, которые предоставили свои ресурсы.
Кроме того, когда компьютер исполнителя простаивает, он сам может принимать задачи от других пользователей.
Планы на будущее: Golem как часть Web 3.0
Мы считаем, что в будущем, Интернет станет действительно децентрализованной сетью, позволяющей пользователям безопасно и напрямую обмениваться контентом, не деля его с корпорациями или другими посредниками. Соответственно, Golem будет использоваться не только для конкретных вычислительных задач, но и для массовой аренды компьютеров,которые будут выполнять операции в самоорганизующейся сети. Конечно, это потребует параллельного развития других технологий, многие из которых получили значительную поддержку в последние годы.
Необходимы более эффективные технологии обмена данными, но с учетом продолжающейся разработки IPFS / Filecoin и Swarm соответствующие решения, по-видимому, находятся в пределах досягаемости.
Со временем, сеть Ethereum станет более масштабируемой, более эффективной и будет включать полнофункциональную сеть каналов микроплатежей. Как только эти технологии станут доступными, легко представить Golem в первую очередь в виде платформы для микросервисов, позволяющую пользователям запускать как мелкие (например, приложение для заметок), так и крупные приложения (например, стриминговый сервис) полностью децентрализованным способом. Несмотря на амбициозность, сказанное выше является весомым аргументом в пользу большого потенциала Голема.
Токен сети Golem (GNT)
GNT является основным компонентом Golem и предназначен для обеспечения гибкости и контроля над будущем проекта. GNT выпускается при краудфандинге (описанного в этом документе), и после первого основного релиза Голема, GNT-токен будет наделен различным функциям.
● Платежи от заказчиков поставщикам за использование их ресурсов и вознаграждение разработчикам ПО будут выплачиваться исключительно в GNT.
● После запуска Реестра Приложений и Структуры Транзакций, GNT-токены будут необходимы для других операций: предоставление залогов поставщиками и разработчиками ПО или же проверка и сертификации программ (см.раздел "Реестр Приложений").
● Общие условия использования GNT будут установлены в Структуре Транзакций, но конкретные параметры можно будет установить отдельно для каждой устанавливаемой программы.
Количество GNT-токенов будет ограничено пулом токенов созданных во время краудфандинга.
Создание GNT-токенов и первичные функции GNT-аккаунта● Токен сети Golem выпускается на платформе Ethereum. Его конструкция соответствует широко применяемым стандартам реализации токенов. Это позволяет использовать GNT в существующих решениях, таких как Ethereum Wallet.
● Максимальное количество токенов, созданных при краудфандинге:
○ Всего: 1 000 000 000 (100%)
○ Токены участников краудфандинга: 820 000 000 (82%)
Токены команда Голема 60 000 000 (6%)
○ Токены компании Golem Factory GmbH 120 000 000 (12%)
● Отправка 1 эфира на GNT-аккаунт создаст 1 000 GNT
● После завершения краудфандинга не будет ни создания токенов, ни минтинга или майнинга.
● Токены можно свободно отправлять/принимать сразу же после краудфандинга.Подробнее в разделе "Краудфандинг"
Реестр Приложений
Реестр Приложений - это смарт-контракт на Ethereum, где каждый может публиковать свои собственные приложения, готовые к запуску в сети Golem. Цели Реестра Приложений:● Предоставить разработчикам возможность публиковать свои приложения и взаимодействовать с пользователями децентрализованным образом;
● Предоставить заказчикам место для поиска конкретных инструментов, соответствующих их потребностям;
● По соображениям безопасности, предоставить поставщикам полный контроль над программным кодом, который они запускают.Поскольку сеть Golem полностью децентрализована, мы также хотим, чтобы Реестр Приложений управлялся самим сообществом.
Golem позволяет заказчикам выполнять программный код на компьютере какого-либо поставщика.
Этот код выполняется в "песочнице" и с минимальным приоритетом.
Но программные ошибки встречаются повсюду, через какое-то время злоумышленники смогут обойти "песочницы" и запустить вредоносный код на хост-машине, а то и вовсе получат над ней контроль. Вот поэтому мы не можем полагаться исключительно на "песочницы".
Мы могли бы попытаться автоматически определять безопасность кода, но практически это невозможно (согласно Проблеме остановки).
Процесс проверки кода не может быть полностью автоматизирован и запущен в автономной сети.
С другой стороны, невозможно предположить, что никто никогда не опубликует вредоносное ПО, которое будет работать поверх сети Golem.Для решения этой проблемы, мы решили разделить пользователей Реестра Приложений на три категории: авторы, валидаторы и поставщики. Авторы публикуют приложения, валидаторы их проверяют и сертифицируют как безопасные, добавляя их в свой собственный белый список.
Валидаторы могут также помечать приложения как вредоносные, добавляя их в черный список.
Поставщики также имеют право решать списки какого валидатора использовать в каждом конкретном случае запуска Голема на их оборудовании.
Кроме того, поставщики могут вести свои собственные белые или черные списки.
Это дает каждому поставщику большую гибкость в определении того, какое программное обеспечение запускать и насколько тщательно за ним следить.
Более того, эта система не исключает ни одну из сторон, и всегда есть место для появления новых валидаторов.По умолчанию Golem работает с использованием белого списка доверенных приложений.
Поскольку пустой белый список для кого-то, кто только пробует Golem в первый раз, может показаться проблемой, мы добавим ряд проверенных приложений в белый список исходного дистрибутива.
Поставщик может пользоваться этим механизмом, ведя свой собственный белый список или же использовать списки валидаторов, которым он доверяет.С другой стороны, поставщик владеющий серверной фермой, возможно пожелает использовать только черные списки.
Это вариант предназначен для администраторов выделенных серверов, которые хотят получать максимальную прибыль и быть впереди остальных.
В этом случае черный список используется для того, чтобы избежать любых проблемных приложений известных на данный момент.
Опять же, поставщик может вести свой собственный черный список или использовать черные списки валидаторов, которым он доверяет.Структура Транзакций
Создавая что-то новое и захватывающее, трудно или почти невозможно предсказать абсолютно все возможности, которые открываются с его появлением.
Golem - это распределенный глобальный суперкомпьютер, и т.о. он несомненно будет востребован в самых различных приложениях.
Этим приложениям могут потребоваться самые разнообразные модели начисления вознаграждений. Мы не можем разработать единую платежную систему для Golem, и мы не будем пытаться принуждать разработчиков приложений ее использовать.Когда разработчик интегрирует свое приложение в Golem, он имеет право решить, какую модель транзакции использовать, при условии что она совместима со Структурой Транзакций.
Структура Транзакций будет представлять собой набор требований; основные требования могут включать:● запись в Реестре Приложений;
● использование среды с открытым исходным кодом и / или детерминированной среды, например EVM;
● одобрение сообщества или рейтинг модели транзакций;
● Использование GNT для оплаты программного обеспечения и услуг поставщиков.Мы строим Структуру Транзакций на основе Ethereum.
Ethereum дает нам значительную силу, которая очень нужна при реализации передовых, бездоверительных схем.
Она включает в себя компоненты, которые чрезвычайно сложно реализовать в сетях P2P, например, оценка репутации.Примерные компоненты Структуры Транзакций:
● Различные схемы выплат, например: наноплатежи, массовые выплаты.
● Off-chain платежные каналы
● Настраиваемые поступления
● Платежи разработчику ПО
● Запуск программы на каждом отдельном хосте (узле сети, почасовой запуск, и т.д.)
В будущем это может превратиться в шаблон, который будет настраиваться самим сообществом и использоваться при реализации пользовательских моделей транзакций.Для достижения конкретных целей не связанных с платежами, в моделе транзакций можно использовать более сложные компоненты. Например:
● Залоговый счет заказчика для задач, требующих более высокого уровня ответственности (высокая цена вследствие использования специализированного оборудования или длительные подзадачи); заказчик может создать двусторонний залоговый счет и потребовать поставщиков принять в нем участие.
● Залог поставщика: заказчик может потребовать контроль над некоторым количеством заложенных GNT-токенов.
● Залог заказчика: поставщик может принимать задачи только от заказчиков, владеющих некотором количеством заложенных GNT.
● Регистрация задачи как привязка к резервному механизму решения конфликтов, аналогичного TrueBit.Дорожная карта
В этом разделе мы представляем основные этапы развития Golem.
Вы можете прочитать нетехническое подробности архитектуры Голема в нашем блоге, некоторые мысли о предстоящих вызовах описаны здесь, и конечно же, вы можете ознакомиться с программным кодом кодом на GitHub.Последовательные версии программы Golem разделены на этапы.
Это предварительный план, поскольку Голем использует передовые технологии и сам по себе является очень сложным проектом.Перед каждым этапом должны быть проведены исследования и получены результаты, которые описаны в технических документах. Однако нужно сделать два важных замечания:
- На каждом этапе добавляются новые функции.
- Результаты каждого этапа зависит от объема привлеченного финансирования.
В описании этих этапов, которое дается ниже, эти функции отнесены к четырем ориентировочным сценариям финансирования.- Функции, отмеченные знаком «+ / ++ / +++», будут реализованы, если будет достигнут соответствующий уровень финансирования.
Различным версиям программы Golem мы присвоили кодовые имена, основываясь на големах игры Dungeons & Dragons.
Аналогия не идеальная, но все-таки это же е-golems.Brass Golem
... они созданы для достижения одной цели, установленной при создании, они ждут в абсолютным терпении до тех пор, пока не будут оживлены для исполнения этой задачи.Brass Golem это тот этап, на котором мы сейчас находимся и проверяем нашу концепцию, проводим альфа-тестирование.
Текущая версия Golem ориентирована только на рендеринг в Blender и LuxRender, и, хотя это будет полезно для CGI-художников, мы считаем, что CGI рендеринг будет прежде всего доказательством правоты нашей концепции, а также нашим учебным полигоном.
Brass Golem будет использоваться в течение 6 месяцев после окончания краудфандинга и проведения всех тестов.
Несмотря на то, что мы не ждем, что CGI рендеринг в Blender создаст достаточный оборот, чтобы оправдать все силы, которые мы вложили в проект, но это уже будет первый децентрализованный рынок вычислительной мощности.Список предлагаемых функций:
● Базовая Схема Постановки Задач, которая позволяет подготовить постановку первой задачи;
● Базовый Реестр Приложений - первая версия реестра приложений, основанная на Ethereum, которая позволяет сохранять задачи, определенные с помощью базовой схемы определения задач;
● Интеграция IPFS для координации данных задач и доставки контента, например, доставка файлов, необходимых для вычисления задачи, доставка результатов обратно заказчику;
● Docker-окружение с Golem-данными для проведения вычислений в "песочнице"
● Локальная верификация: вероятностная система проверки, вычисляющая фрагмент задачи на машине заказчика;
● Базовый UI и CLI;
● Базовая система репутации;
● Реализация задач Blender и LuxRender.
Clay Golem
Существует вероятность (...), что злой дух хаоса будет завладеет Глиняным Големом.
Если это произойдет, контроль над големом будет потерян и он нападет на ближайшее живое существо.Clay Golem имеет большое преимущество над Brass Golem. Clay Golem включает в себя API Задач и Реестр Приложений, которые позволяют сделать Golem многоцелевым решением для распределенных вычислений.
Теперь у разработчиков появляются средства для интеграции с Големом.
Однако это нововведение может повлиять на стабильность и безопасность системы, поэтому эту версию следует считать экспериментальной и ориентированной на ранних пользователей и энтузиастов.
Тестируйте свои новые идеи и решения на этом этапе.Список предлагаемых функций:
● Базовый API Задач: интерфейс, который позволяет пользователю ставить простые задачи;
● Начальная модель Структуры Транзакций с жестко запрограммированными схемами платежей;
● Избыточная верификация: схема проверки, основанная на сравнении результатов избыточных вычислений;
● Базовое делегирование подзадач: механизм более точного распределения подзадач;
● (+) Поддержка виртуальных машин в качестве "песочницы" для вычислений;
● (+) Документация для разработчиков, объясняющая, как реализовать свои собственные задачи в сети Golem;
● (++) Примеры реализации задач: пример реализации машинного обучения, реализация научных задач и т.д.Stone Golem
Создатели всегда сохраняют контроль над Каменными Големами (...) в отличии от Глиняных.Stone Golem принесет больше безопасности и стабильности, но также улучшит функциональные возможности, уже реализованные в Clay Golem.
Будет представлена расширенная версия API Задач.
Реестр Приложений будет дополнен Механизмом Сертификации, который создаст
доверительную, управляемую самим сообществом сеть для приложений.
Кроме того, Структура Транзакций создаст среду, которая позволит использовать Golem в модели SaaS.Список предлагаемых функций:
● Полный API Задач: интерфейс, который позволяет пользователям ставить задачи;
● Реестр Приложений: здесь разработчики публикуют приложения, готовые к запуску в сети Golem;
● Структура Транзакций, позволяющая выбирать модели вознаграждения для шаблонов задач;
● Базовая Сертификация ПО: механизм, который позволяет пользователям вносить программы в белые и черные списки, создавая децентрализованную доверительную сеть;
● Поддержка SaaS: возможность добавить поддержку проприетарного ПО, которое может использоваться в задачах. Платежи для создателей задач также должны быть реализованы в приложении;
● (+) Примеры задач SaaS - примеры использования, показывающие разработчикам, как создавать задачи, доступные в модели SaaS;
● (++) Web-клиент Golem: веб-интерфейс для узлов сети Golem в качестве альтернативы встроенному интерфейсу GUI / консоли;
● (+++) Панель управления поставщика - предоставляет статистику, графики, а также дополнительные настройки для поставщиков;Оригинал поста https://habrahabr.ru/post/332300/