Перейти к основному контенту
Change page

Техническое введение в dapps

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

Предварительные требования

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

Определение dapp

Бэкенд-код dapp работает в децентрализованной одноранговой сети. Сравните это с обычным приложением, где бэкенд-код работает на централизованных серверах.

Dapp может иметь фронтенд-код и пользовательские интерфейсы, написанные на любом языке (как и обычное приложение), для выполнения вызовов к своему бэкенду. Кроме того, его фронтенд может быть размещен в децентрализованном хранилище, таком как IPFS (opens in a new tab).

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

О смарт-контрактах

Чтобы представить dapps, нам нужно представить смарт-контракты — бэкенд dapp, за неимением лучшего термина. Для подробного ознакомления перейдите в наш раздел о смарт-контрактах.

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

Преимущества разработки dapp

  • Нулевое время простоя — как только смарт-контракт развернут в блокчейне, сеть в целом всегда сможет обслуживать клиентов, желающих взаимодействовать с контрактом. Следовательно, злоумышленники не могут запускать атаки типа «отказ в обслуживании» (DDoS), направленные на отдельные dapps.
  • Приватность — вам не нужно предоставлять реальные личные данные для развертывания или взаимодействия с dapp.
  • Устойчивость к цензуре — ни одна организация в сети не может заблокировать пользователям отправку транзакций, развертывание dapps или чтение данных из блокчейна.
  • Полная целостность данных — данные, хранящиеся в блокчейне, являются неизменяемыми и неоспоримыми благодаря криптографическим примитивам. Злоумышленники не могут подделать транзакции или другие данные, которые уже были обнародованы.
  • Вычисления, не требующие доверия / проверяемое поведение — смарт-контракты можно проанализировать, и они гарантированно будут выполняться предсказуемым образом без необходимости доверять центральному органу. Это не так в традиционных моделях; например, когда мы используем системы онлайн-банкинга, мы должны доверять финансовым учреждениям в том, что они не будут злоупотреблять нашими финансовыми данными, подделывать записи или не будут взломаны.

Недостатки разработки dapp

  • Обслуживание — dapps может быть сложнее поддерживать, поскольку код и данные, опубликованные в блокчейне, сложнее изменить. Разработчикам трудно вносить обновления в свои dapps (или базовые данные, хранящиеся в dapp) после их развертывания, даже если в старой версии обнаружены ошибки или риски безопасности.
  • Издержки производительности — существует огромная нагрузка на производительность, и масштабирование действительно затруднено. Чтобы достичь уровня безопасности, целостности, прозрачности и надежности, к которому стремится Эфириум, каждый узел выполняет и сохраняет каждую транзакцию. Вдобавок ко всему, консенсус доказательства доли владения (PoS) также требует времени.
  • Перегрузка сети — когда одно dapp использует слишком много вычислительных ресурсов, вся сеть начинает тормозить. В настоящее время сеть может обрабатывать только около 10-15 транзакций в секунду; если транзакции отправляются быстрее, пул неподтвержденных транзакций может быстро раздуться.
  • Пользовательский опыт — может быть сложнее создать удобный интерфейс, потому что среднему конечному пользователю может показаться слишком сложным настроить стек инструментов, необходимый для действительно безопасного взаимодействия с блокчейном.
  • Централизация — удобные для пользователей и разработчиков решения, созданные поверх базового уровня Эфириума, в конечном итоге могут выглядеть как централизованные сервисы. Например, такие сервисы могут хранить ключи или другую конфиденциальную информацию на стороне сервера, обслуживать фронтенд с использованием централизованного сервера или выполнять важную бизнес-логику на централизованном сервере перед записью в блокчейн. Централизация устраняет многие (если не все) преимущества блокчейна по сравнению с традиционной моделью.

Лучше воспринимаете визуальную информацию?

What is a dapp? Decentralized application on the blockchain

An introduction to decentralized applications (dapps) and how they differ from traditional apps.

Смотреть с расшифровкой 

Инструменты для создания dapps

Scaffold-ETH — быстро экспериментируйте с Solidity, используя фронтенд, который адаптируется к вашему смарт-контракту.

Create Eth App — создавайте приложения на базе Эфириума с помощью одной команды.

One Click Dapp — бесплатный инструмент с открытым исходным кодом (FOSS) для генерации фронтендов dapp из .

Etherflow — FOSS-инструмент для разработчиков Эфириума, позволяющий тестировать свой узел, а также составлять и отлаживать RPC-вызовы прямо из браузера.

thirdweb — SDK на любом языке, смарт-контракты, инструменты и инфраструктура для разработки Web3.

Crossmint — платформа разработки Web3 корпоративного уровня для развертывания смарт-контрактов, подключения платежей по кредитным картам и кроссчейн-платежей, а также использования API для создания, распространения, продажи, хранения и редактирования NFT.

Дополнительная литература

Знаете ресурс сообщества, который вам помог? Отредактируйте эту страницу и добавьте его!

Руководства: создание приложений и фронтендов в Эфириуме