Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Децентрализованное приложение DAPP, особенности, примеры

Лекция



Привет, Вы узнаете о том , что такое децентрализованное приложение, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое децентрализованное приложение, децентрализованные приложения, decentralized applications, dapp , настоятельно рекомендую прочитать все из категории Высоконагруженные проекты.Паралельные вычисления. Суперкомпьютеры. Распределенные системы.

Децентрализована приложения ( DAPP ) представляет собой компьютер приложение , которое работает на распределенной вычислительной системе. DApps были популяризировали распределенные технологии Главной книги (DLT) , такие как Эфириум Blockchain , где DApps часто называют смарт - контрактами .

DApps можно найти на централизованных торговых площадках, таких как State of the DApps, Dapp.com, Holdex, DAppRadar и CoinGecko.

Интернет следующего поколения - Web 3.0 - будет основан на децентрализованных технологиях. Переход к Web 3.0 будет долгим и постепенным, но решения, основанные на децентрализованных технологиях - и, прежде всего, dApps - теперь входят в реальную жизнь.

DApp - это приложение, которое работает без серверной части в децентрализованной компьютерной системе, например, в блокчейне.

Соответственно, dApp использует основные преимущества блокчейна: прозрачность, надежность и неизменность данных.

DApp, так же как и классическое web-приложение, имеет frontend и backend часть.

По данным сайта Dapp.com, на начало июля 2019 года было выпущено более 2700 децентрализованных приложений. Около половины из них поддерживаются разработчиками, и более 150 тысяч пользователей получают доступ к dApp каждый день, совершая более 2 миллионов транзакций.

Децентрализованное приложение DAPP, особенности, примеры

Существует три типа децентрализованных решений:

  1. Type I. DApps имеет собственный блокчейн.
  2. Type II. Приложения, которые используют блокчейн Type I. Это протоколы, которые выпускают токены, необходимые для их выполнения.
  3. Type III. Работают на протоколе приложений Type II, но тоже требуют выпуска своих токенов.

Особенности используемых технологий

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

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

Блокчейн — это связанная цепочка из блоков. Блок — это структура, в которой присутствует его хеш, хеш прошлого блока для связи и список транзакций.

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

Транзакция представляет из себя перевод криптовалюты от одного адреса к другому.

Алгоритм хеширования, используемый Ethereum, называется ethash. Он хеширует метаданные последнего блока в системе (транзакции и хеш прошлого блока), используя специальный код под названием nonce: случайное двоичное число (генерирует алгоритм ethereum-а), которое и задает уникальное значение хеш-функции. Для каждого нового блока в блокчейне сеть устанавливает целевое значение хеша (устанавливается после заполнения нового блока транзакциями), и все майнеры в сети пытаются угадать значение nonce, которое приведет к такому значению.

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

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

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

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

важных критериев, которые позволяют рассматривать продукт, как DApp:

  • Открытый код. Исходный код программы должен быть полностью открытым, работать автономно. И, что важно, не иметь единого контролирующего субъекта в отношении своих токенов. Улучшения и изменения допустимы, но все усовершенствования должны проводиться на основе консенсуса всех держателей токенов или акций проекта.
  • Децентрализация. Данные должны храниться в криптографически защищенном виде, в общедоступном, децентрализованном блокчейне.
  • Токены. В сети приложения должны ходить в обращении токены (цифровые монеты), которые позволяют осуществлять доступ к некоторым функциям программы, быть разменной валютой для майнеров, пользователей.
  • Алгоритм. В DApps используется стандартный криптографический алгоритм для запуска интеллектуального анализа данных в сети нодов (узлов).

Умные контракты

Умный контракт — это программный код, хранящий свою логику и состояние в блокчейне.

Умные контракты в Ethereum представлены в виде классов, которые могут быть реализованы на различных языках, включая визуальное программирование, и компилируются в байт-код для виртуальной машины Эфириума (Ethereum Virtual Machine, EVM) перед отправкой в блокчейн. Об этом говорит сайт https://intellect.icu . Изменение состояния виртуальной машины может быть записано на полном по Тьюрингу языке сценариев, то есть сопоставимым с большинством популярных языков программирования

Архитектура децентрализованных приложений (DApp)

Выделим важные архитектурные моменты при построении DApp на блокчейне:

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

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

1.Веб-приложение на публичном блокчейне

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

Архитектуру можно представить данной схемой:

Децентрализованное приложение DAPP, особенности, примеры

Мы видим DApp браузер в начале цепочки. В настоящий момент таким браузером является Mist и браузер с дополнением Metamask (Chrome и FireFox). Главная задача такого браузера — предоставить интерфейс для работы с аккаунтами и внедрить настроенный под выбранную сеть блокчейна объект Web3. Но мы вполне можешь и сами воссоздать данный функционал и обойтись обычным браузером.

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

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

2.Самодостаточное приложение на приватном блокчейне

Рассмотрим диаграмму архитектуры:
Децентрализованное приложение DAPP, особенности, примеры

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

  • приватность блокчейна. Работать с блокчейном могут только участники сети.
  • высокая скорость создания блоков из-за размера сети
  • дешевизна выполнения транзакций

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

Далее, нужно определиться с клиентом. Он будет представлять самодостаточное десктопное приложение, которое установит при надобности geth и клиент ipfs, а также все настроит. Что избавит конечного пользователя от необходимости настраивать окружение вручную.

Приложение будет разработано на Angular. Electron используется для обертки веб-приложения в десктопную оболочку (становится обычным оконным приложением).
Для особой надежности, взаимодействие клиента и блокчейна осуществляется с помощью технологии IPC .Оно позволяет непосредственно общаться между процессом клиента и geth (имплементации Ethereum на Go), что исключает вмешательства извне.

В данной архитектуре применение ipfs под вопросом. Так как мы можем себе позволить хранить весь блокчейн, ведь в нем находятся транзакции только нашей организации. Но IPFS необходим для хранения таких файлов как картинки, документы и тд. Тогда, было бы не плохо сделать IPFS локальным. Это возможно. Для этого нужно провести research, чтобы узнать подробности.

Отметим одну проблему в реализации данной архитектуры: разработчики Web3Js удалили поддержку API для работы с аккаунтами, чтобы обезопасить пользователей. По их мнению нужно использовать Mist и Metamask для работы с аккаунтами, что противоречит приведенной выше архитектуре.

Возможные решения данной проблемы:

  1. Пересобрать библиотеку Web3Js под свои нужды.
  2. Использовать библиотеку web3_ipc для управления аккаунтами совместно с Web3Js09-

Вариант номер 2 менее затратный по времени.

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

Примеры применения

Рассмотрим области, в которых dApps наиболее перспективны.

Аукционы

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

Примером применения dApp в сфере аукционов является платформа Auctionity. Он работает с невзаимозаменяемыми (уникальными) токенами (NFT), что позволяет создавать аукционы и делать ставки в режиме реального времени. децентрализованное приложение гарантирует оплату и доставку лотов.

Рынки прогнозов

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

Идея рынков предсказаний основана на том факте, что биржевая цена данного исхода отражает его вероятность. Например, цена 0,74 доллара означает, что вероятность ожидаемого результата составляет 74%.

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

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

Примером децентрализованного рынка прогнозов является Augur, построенный на платформе Ethereum.

Идентификация пользователя

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

Игры и азартные игры

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

Это объясняет растущую популярность игровых децентрализованных приложений. В начале июля 2019 года dApps из категорий gaming и gambling заняли первые шесть мест в рейтинге самых популярных децентрализованных приложений.

Одной из первых децентрализованных игр, получивших широкую известность, является CryptoKitties, выпущенная на платформе Ethereum в конце 2017 года. Первоначальный интерес к игре был настолько велик, что был установлен рекорд по количеству транзакций в сети (хотя при этом его скорость упала почти до нуля).

Как создать децентрализированное приложение?

Децентрализованные приложения разрабатываются с использованием смарт-контрактов, код которых написан на специальных языках программирования. Например, у Ethereum есть язык смарт-контрактов Solidity, а у платформы блокчейна Waves есть RIDE. Вы можете изучить основы в онлайн-курсе Mastering Web 3.0 с помощью Waves.

Курс в первую очередь предназначен для фронтенд-разработчиков, веб-мастеров, разработчиков full-stack (Node.js, PHP, Python), а также разработчиков игр и приложений на iOS / Android. Курс будет полезен как разработчикам-фрилансерам, так и членам команд программирования.

От участников требуется знание JavaScript и Node.js. Однако те, кто не знаком с этим языком программирования, смогут выполнить специальные задания и в конечном итоге принять участие в курсе.

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

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

Характеристики

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

DApps, как правило, с открытым исходным кодом, децентрализованы, стимулируются путем предоставления токенов тем, кто проверяет DApp, и в соответствии с конкретным протоколом, согласованным в сообществе.

DApps (decentralized applications) - децентрализованные сервер-клиентские приложения, которые работают в децентрализованных системах вроде Ethereum или Ethereum Classic . Особенностью работы децентрализованных систем является то, что в таких системах каждый узел системы (компьютер) осуществляет вычисления, в отличие от централизованных и распределенных систем.

Децентрализованные приложения должны удовлетворять следующим требованиям

  1. Они должны быть автономными и иметь открытый исходный код . Это означает, что любое изменение в коде возможна только с согласия всех участников системы и невозможна по инициативе одного участника системы, которому принадлежит большинство токенов системы.
  2. Протоколы работы и данные децентрализовано хранятся в зашифрованном виде в блокчейни .
  3. Криптографические токены используются для вознаграждения пользователей сети и для доступа к сети.
  4. Токены генерируются с помощью алгоритма , который поощряет пользователей вносить вклад в систему.

Развертывание

DApps могут работать поверх распределенных вычислительных систем, таких как Ethereum или Bitcoin . Децентрализованные приложения хранятся и выполняются в системе блокчейн . Steem создал хорошо зарекомендовавшую себя экосистему, которая привела к широкому распространению разработки DApp. Существует большое количество DApps, которые хорошо работают в различных отраслях. Примеры: Steem Monsters, dMania, Steemblr, Musing, SteemHunt и т. Д.

Принятие

DApps подвергались критике за их недоступность для обычного пользователя. Многие DApps борются за привлечение пользователей, особенно на стадии их основания, и даже те, которые привлекают широкую начальную популярность, борются за ее сохранение. Ярким примером является DApp CryptoKitties , который разбил сеть Ethereum на пике своей популярности . CryptoKitties и другой похожий игровой DApp, Dice Games, с тех пор не смогли привлечь подобную популярность.

Институт инженеров по электротехнике и радиоэлектронике прошли конференции по DApps в 2019 и 2020

Примеры

  • Augur - платформа прогнозирования рынка
  • Cryptokitties - игра, основанная на Ethereum. Это замедлило работу Ethereum из-за недостаточной обработки транзакций и выявило ограничения масштабирования публичных блокчейнов.
  • Blockstack - платформа для разработки децентрализованных приложений.
  • Freelance - платформа на смарт-контракте.
  • Steem - основан на технологии блокчейн, издатели награждаются криптовалютой.

Каталоги DApps

  • Dapp Store - это каталог популярных децентрализованных приложений. С помощью Dapp Store пользователи могут получить доступ к более тысячи Ethereum DApps.
  • State of the ÐApps - неприбыльная организация, каталог децентрализованных проектов построенных на блокчейни Ethereum .
  • DappRadar - это платформа, предоставляющая информацию обо всех DApp. Dapps можно сортировать по многим различным показателям, ежедневными пользователями, ежедневным объемом тому подобное.

Внешняя ссылка

Исследование, описанное в статье про децентрализованное приложение, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое децентрализованное приложение, децентрализованные приложения, decentralized applications, dapp и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Высоконагруженные проекты.Паралельные вычисления. Суперкомпьютеры. Распределенные системы

создано: 2020-09-08
обновлено: 2021-12-11
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


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

Высоконагруженные проекты.Паралельные вычисления. Суперкомпьютеры. Распределенные системы

Термины: Высоконагруженные проекты.Паралельные вычисления. Суперкомпьютеры. Распределенные системы