---
title: "Техническое введение в dapps"
description:
lang: ru
---

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

## Предварительные требования {#prerequisites}

Прежде чем изучать dapps, вам следует ознакомиться с [основами блокчейна](/developers/docs/intro-to-ethereum/) и прочитать о сети Эфириум и о том, как она децентрализована.

## Определение dapp {#definition-of-a-dapp}

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

Dapp может иметь фронтенд-код и пользовательские интерфейсы, написанные на любом языке (как и обычное приложение), для выполнения вызовов к своему бэкенду. Кроме того, его фронтенд может быть размещен в децентрализованном хранилище, таком как [IPFS](https://ipfs.io/).

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

### О смарт-контрактах {#on-smart-contracts}

Чтобы представить dapps, нам нужно представить смарт-контракты — бэкенд dapp, за неимением лучшего термина. Для подробного ознакомления перейдите в наш раздел о [смарт-контрактах](/developers/docs/smart-contracts/).

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

## Преимущества разработки dapp {#benefits-of-dapp-development}

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

## Недостатки разработки dapp {#drawbacks-of-dapp-development}

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

## Лучше воспринимаете визуальную информацию? {#visual-learner}

<VideoWatch slug="what-is-a-dapp" />

## Инструменты для создания децентрализованных приложений (dapps)

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

- [GitHub](https://github.com/scaffold-eth/scaffold-eth-2)
- [Пример dapp](https://punkwallet.io/)

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

- [GitHub](https://github.com/paulrberg/create-eth-app)

**One Click Dapp _— инструмент с открытым исходным кодом (FOSS) для создания фронтендов dapps на основе [ABI](/glossary/#abi)._**

- [oneclickdapp.com](https://oneclickdapp.com)
- [GitHub](https://github.com/oneclickdapp/oneclickdapp-v1)

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

- [etherflow.quiknode.io](https://etherflow.quiknode.io/)
- [GitHub](https://github.com/abunsen/etherflow)

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

- [Главная страница](https://thirdweb.com/)
- [Документация](https://portal.thirdweb.com/)
- [GitHub](https://github.com/thirdweb-dev/)

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

- [crossmint.com](https://www.crossmint.com)
- [Документация](https://docs.crossmint.com)
- [Дискорд](https://discord.com/invite/crossmint)
## Дополнительная литература {#further-reading}

- [Изучить dapps](/apps)
- [Архитектура приложения Веб 3.0](https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application) — _Прити Касиредди (Preethi Kasireddy)_
- [Руководство по децентрализованным приложениям 2021 года](https://limechain.tech/blog/what-are-dapps-the-2021-guide/) — _LimeChain_
- [Что такое децентрализованные приложения?](https://www.gemini.com/cryptopedia/decentralized-applications-defi-dapps) — _Gemini_
- [Популярные dapps](https://www.alchemy.com/dapps) — _Alchemy_

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

## Похожие темы {#related-topics}

- [Введение в стек Эфириума](/developers/docs/ethereum-stack/)
- [Фреймворки для разработки](/developers/docs/frameworks/)

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

- [Пошаговое руководство по контрактам Юнисвоп v2](/developers/tutorials/uniswap-v2-annotated-code/) _— аннотированное пошаговое руководство по основным контрактам Юнисвоп v2, объясняющее, как работает автоматизированный маркетмейкер (AMM)._
- [Создание пользовательского интерфейса для вашего контракта](/developers/tutorials/creating-a-wagmi-ui-for-your-contract/) _— как создать современный фронтенд на React + Wagmi, который подключается к вашему смарт-контракту._
- [Смарт-контракт Hello World для начинающих — Fullstack](/developers/tutorials/hello-world-smart-contract-fullstack/) _— сквозное руководство: напишите, разверните и создайте фронтенд для простого смарт-контракта._
- [Серверные компоненты и агенты для приложений Web3](/developers/tutorials/server-components/) _— как писать серверные компоненты на TypeScript, которые прослушивают события блокчейна и отвечают транзакциями._
- [IPFS для децентрализованных пользовательских интерфейсов](/developers/tutorials/ipfs-decentralized-ui/) _— как разместить фронтенд вашего dapp в IPFS для обеспечения устойчивости к цензуре._
