Когда использовать протокол Fluence

Когда использовать протокол Fluence

18 марта 2022 г.

Централизованные базы данных, блокчейны и офчейн-транзакции — объединение всего этого


  • Блокчейн является общедоступным, но медленным, серверные вычисления являются самыми быстрыми, но ни один из них не обеспечивает конфиденциальность. Как выполнить все эти условия?*

Познакомьтесь с Алисой, разработчиком, рассматривающим этот вопрос. Ее цель — создать приложение для организации вечеринки-сюрприза для своего друга Боба. Она хочет, чтобы это было приватно - только для друзей, которые готовят вечеринку вместе с ней. Ей нужен список подарков, которые все приносят, чтобы ничего не повторять. Гости, которые еще не знают, что купить, могут посетить связанные веб-сайты для вдохновения. Одним из подарков является 1ETH, который они все объединяют, чтобы побудить Боба заняться криптографией.


Приложение должно позволять друзьям добавлять подарки, которые они планируют купить, и читать список всех подарков. Он также должен сделать возможным обновление и удаление элементов. Это основное приложение CRUD. CRUD расшифровывается как Create-Read-Update-Delete. Все эти четыре взаимодействия сводятся к некоторой операции между пользовательским интерфейсом (UI) и некоторым хранилищем данных. Тогда у разработчика есть два варианта — создание пользовательского интерфейса и хранилища данных. В этой статье основное внимание уделяется хранилищу данных, пользовательский интерфейс выходит за рамки.


Какие есть варианты хранения данных?


Централизованный сервер


Алиса имеет опыт разработки приложений в сеть Sever-Client , так что она считает это в первую очередь.


Источник: https://en.wikipedia.org/wiki/Peer-to-peer#/media/File:Server-based-network.svg


В модели централизованного сервера (web2.0) сервер является единственным источником достоверной информации для всей сети. Программа размещается либо на вашем физическом сервере, либо у стороннего облачного провайдера. Последнюю позицию занимает пара технологических гигантов с безумной экономией на масштабе. Многие люди, в том числе некоторые из друзей Алисы, не согласны с такой концентрацией власти. Алиса не хочет беспокоиться о том, чтобы заставить своих друзей использовать один конкретный централизованный сервис. Если бы только они были совместимы… Она также не хочет ставить их в положение, когда они отказываются от своих данных о потребительских предпочтениях.


Помимо этих проблем, есть еще одна, техническая. Для приложения Алисы существует требование «собирать и передавать 1ETH». Централизованные сервисы плохо подходят для взаимодействия с блокчейном (в данном случае с сетью Ethereum).


Таким образом, Алиса отвергает вариант с централизованным сервером.


Может быть, с самого начала начать с решения на основе блокчейна?


Блокчейн вариант


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


Еще одна цена — скорость. Поскольку каждую транзакцию или обмен данными необходимо анализировать и проверять, простые блокчейны имеют проблемы с масштабируемостью — ограничения на количество транзакций в минуту. В 2019 году у Биткойна было 4,5 транзакции в минуту, а у Visa — около 1700.


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


Тем не менее, есть еще один недостаток полного блокчейна в этом контексте.


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


Эрдин, Энес и Себе, Мумин и солак, сенай и аккая, кемаль и улуагач, сельджук и булут, эйюфан. (2018). Создание частной платежной сети на основе биткойнов среди электромобилей и зарядных станций. 10.1109/Cybermatics_2018.2018.00269.


Что, если хранилище данных децентрализовано, но не общедоступно? Как использовать офчейн-вычисления в полной мере?


Одноранговая сеть


Источник: https://upload.wikimedia.org/wikipedia/commons/thumb/3/3f/P2P-network.svg/640px-P2P-network.svg.png


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


Есть такие приложения. Все клиенты торрент-сети — это разные узлы торрент-сети. Сидеры и личеры выбирают, какие файлы размещать; в блокчейне вы обрабатываете все транзакции сети по замыслу.


Похожим примером является Mastodon. Это программное обеспечение для социальных сетей, с помощью которого вы можете создать свою собственную сеть с пользовательским интерфейсом, похожим на Twitter. Не каждый пользователь запускает узел, большинство из них являются клиентами узла сервера. Этот федеративный подход находится на полпути между полностью децентрализованными приложениями «каждый пользователь сам за себя» и полностью централизованным подходом «больших технологий».


Алиса могла разветвить код Mastodon, как это делали многие раньше. Затем она могла бы разместить серверный узел и пригласить своих друзей использовать клиент. Но ей нужно будет добавить совместимость с Ethereum с нуля. Алиса начинает рассматривать другие варианты, более простые в реализации.


Еще одним примером однорангового протокола web3 является urbit. В отличие от предыдущих упоминаний, это не без разрешения. Вам нужно инвестировать в идентичность, привязанную к блокчейну, чтобы общаться с коллегами. Входной барьер — это не неотъемлемый недостаток, а компромисс, который в ситуации Алисы того не стоит.


Должна ли Алиса сделать стек одноранговой сети в качестве ответвления или копии? Просто создать одно простое приложение?


Одноранговая сеть Fluence


Нет необходимости создавать с нуля. Fluence предоставляет основу для любого сетевого приложения p2p. Fluence — это решение, в котором приложения запускаются на локальных узлах сети Fluence. Эти узлы взаимодействуют друг с другом, как и другие децентрализованные приложения. Что особенного в Fluence, так это то, что приложения, которые запускаются узлами, написаны на языке Aqua и оптимизированы для распределенных систем. Кроме того, у Aqua есть специальные привязки для взаимодействия с Ethereum, IPFS и другими сетями web3, а также с API-интерфейсами web2.


Источник: канал Fluence Labs об открытых приложениях


Если вы знакомы с моделью OSI, Fluence — это в основном уровень представления (уровень OSI 6), представляющий данные для использования приложениями.


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


Как приложение Алисы работает в сети Fluence?


Алиса устанавливает локальный узел Fluence, запускает простую программу Hello World. Затем она настраивает логику консенсусного слоя локальной сети. Это позволяет одноранговым узлам (ее узлу и подключенным узлам) отслеживать изменения в распределенном хранилище данных. Далее она описывает, как будет работать взаимодействие Ethereum. Наконец, она развертывает приложение на своем узле и отправляет друзьям приглашения присоединиться к сети, устанавливая узел Fluence и свое приложение. Все готово!


Вечеринка получается отличной, Боб счастлив. Алиса рада, что ее приложение достигло поставленных целей.


Что, если Алиса решит сделать приложение настраиваемым? Чтобы кто-нибудь мог устроить вечеринку-сюрприз, как она?


Преимущества для разработчиков и хостинг-провайдеров


После внесения некоторых изменений в код для более общего варианта использования Алиса почти готова зарабатывать на своем приложении.


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


А как же прибыль?


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


Обычно разработчики FOSS (бесплатные и с открытым исходным кодом) работают только неполный рабочий день, так как их работа не монетизируется. Флюенс решает эту проблему.


Источник: канал Fluence Labs об открытых приложениях


То же самое относится к API, сервисам, которые устаревают, становятся платными или подвергаются цензуре. Это невозможно в экосистеме сетевых приложений Fluence.


Как это работает для хостинга?


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


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


Заключение


Приложение Alice для организации вечеринок-сюрпризов — это просто пример того, как простое приложение CRUD с интеграцией web3 может работать в сети Fluence.


Можно создавать гораздо более сложные API, протоколы p2p и серверные части.


Язык Aqua открывает новые возможности для творчества, объединяя сервисы web2 и web3.


Что вы построили бы с Fluence?


Дальнейшее чтение


Лучшее место, где можно узнать больше о сети Fluence, — это их веб-сайт: https://fluence.network/


Также ознакомьтесь с часто задаваемыми вопросами: https://doc.fluence.dev/faq/



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE