Как создать Dapp с нуля на Ethereum?

Допустим, у нас есть кто-то, кто знает о блокчейне, но не имеет опыта работы с приложениями на основе блокчейна. Этот человек хочет закодировать Dapp (децентрализованное приложение) на основе Ethereum в качестве доказательства концепции.

С чего начать? Какими будут первые шаги? (советы, лучшие практики, интересный материал и т.д.)

Вот интересный пост: forum.ethereum.org/discussion/1402/…
Вот обновленная версия предыдущей ссылки @romanoza forum.ethereum.org/discussion/1634/…
Просто еще одна статья, найденная здесь

Ответы (4)

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

  • Ознакомьтесь с основными понятиями . Белая книга Ethereum — неплохое место для начала, и некоторые из руководств, на которые я ссылался выше, перемежаются концептуальными объяснениями с пошаговыми инструкциями.

  • Выберите язык . Существует несколько вариантов языка для работы с Ethereum, и рекомендуется либо 1) выбрать тот, который больше всего напоминает язык, который вы знаете, либо 2) выбрать тот, который имеет наиболее обширную документацию и поддержку (я бы, наверное, выбрал с Solidity на основе этой метрики).

  • Выберите фреймворк и протестируйте rpc . В основном я знаком с фреймворками Solidity Embark и Truffle и использую Ethersim в качестве тестового RPC.

  • Посмотрите примеры проектов . Поищите на Github проекты, использующие Ethereum (я просматривал проекты с открытым исходным кодом ConsenSys), чтобы увидеть, какие лучшие практики начинают объединяться.

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

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

  1. Compute (логика написана на Solidity/Serpent, компилируется в байт-код EVM)
  2. Хранилище (статические ресурсы, такие как HTML/JS/CSS)
  3. Обмен сообщениями (Эфемерное общение вне сети)

Один из способов, с помощью которого Ethereum раскрывает свою функциональность, — это библиотека JavaScript, известная как web3.js. Используя JavaScript API , разработчики могут добавлять или заменять функции традиционного HTML-приложения функциональностью, поддерживаемой Ethereum.

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

Одним из мест, с которого можно начать, могут быть Dapps для начинающих , вы можете следить за прогрессом через Введение в разработку на Ethereum , а затем Настройка среды разработки или сразу перейти к ней;

Ваше первое децентрализованное приложение

Учебное пособие посвящено вашим первым шагам с использованием Alethzero (клиент для разработки) и созданию простого контракта монеты — серверной части вашего Dapp.

Образовательная зона Форума

В то же время было бы полезно читать / следить / участвовать в разделе « Образование» на форуме , поскольку там есть полезные вопросы и ответы, например , « Понимание хранения данных» .

«Что касается платы за хранение, вы платите как за размер Tx в байтах, так и за размер новых данных, помещаемых в хранилище контракта. Если вы удаляете данные из хранилища контракта (IE после выполнения вашего tx, общее хранилище контракта меньше) , вы получаете возмещение до половины стоимости газа за транзакцию (вы не можете получить обратно эфир, но ваша комиссия за транзакцию может быть субсидирована)».

Желтая бумага

В Желтой книге Приложение G указана таблица сборов в единицах газа для сборов, связанных с различными вычислениями.

Состояние DAPPS

Наконец, если вы ищете интересный материал о состоянии Dapps (децентрализованное приложение (или «Dapp») — это часть программного обеспечения, состоящая из пользовательского интерфейса (UI) и децентрализованной серверной части, обычно использующая блокчейн и смарт-контракты). , Большинство перечисленных проектов были построены с использованием Ethereum.

Еще один хороший учебник, который проведет вас через процесс от начала до конца, — это учебник по NFT Minter от Alchemy .

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

Начиная с этого, вы сможете понять, как устроены децентрализованные приложения, не погружаясь в разработку смарт-контрактов (хотя у них есть еще одно руководство по разработке смарт-контрактов ).