Найти в Дзене

Курс sol01. Создание смарт-контрактов Solidity для Ethereum

Оглавление

Возможно, вы задумывались о том, чтобы получить высокооплачиваемую работу, связанную с самыми современными и перспективными технологиями в области Web3. Эту возможность дает профессия разработчика смарт-контрактов Solidity.

Наш курс Создание смарт-контрактов Solidity для Ethereum, доступный на русском языке, поможет вам получить эту профессию в максимально сжатые сроки. Возможно, вы получите предложение о работе еще до окончания этого курса!

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

Завершив курс, вы сможете быстро приступить к созданию смарт-контактов Solidity и распределенных приложений для блокчейна Ethereum.

Наш курс состоит из 15 уроков, причем три из них бесплатные.

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

Чтобы не создавать свои узлы, если это по каким-то причинам неудобно, вы будете пользоваться сервисами Infura и Alchemy.

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

Чтобы создавать, отлаживать и публиковать смарт-контракты Solidity, вы будете использовать такие инструменты как Remix Solidity, Truffle и Hardhat.

Далее вы создадите собственные токены ERC-20 и NFT, установите узел распределенной межпланетной файловой системы IPFS и опубликуете в этой системе свои файлы.

Вы создадите одностраничные Web-приложения, интегрированные с MetaMask, скрипты для Node.js и API на базе Express и Node.js для вызова функций смарт-контрактов.

Все это позволит вам создавать приложения для краудфандинга, и собственные сервисы продажи токенов ERC-20 и NFT.

Все тексты исходных программ вы сможете загрузить из репозитория на Github.

Если в процессе обучения у вас возникнут вопросы, то вы сможете их задать автору курса.

Теперь подробнее от том, что ждет вас на курсе.

Урок 1. Блокчейн Ethereum

На самом первом уроке мы расскажем о том, для чего и где применяется технология блокчейна Ethereum и смарт-контракты Solidity. Вы увидите, что эта технология дает программистам много возможностей получить престижную работу в самых разных областях.

Урок 2. Как устроен блокчейн

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

Вы познакомитесь с особенностями децентрализованных приложений Ethereum.

Урок 3. Подготовка рабочей среды

На третьем уроке вы подготовите рабочую среду, необходимую для изучения Ethereum и смарт-контрактов Solidity. Вы установите на сервер с ОС Ubuntu программы Geth, Node.js, Truffle, Ganache-cli, пакет Web3, а также пакетный компилятор solc.

Далее вы создадите приватный блокчейн, состоящий из одного узла, выполните его инициализацию и убедитесь, что в вашем блокчейне работает майнинг. Вы научитесь запускать свой узел Ethereum на базе Geth и Ganache, а также подключаться к ним в консоли JavaScript.

Вы научитесь выдавать команды Geth в консоли JavaScript и будете готовы для первых экспериментов с вашим приватным блокчейном.

Урок 4. Учетные записи и перевод средств между аккаунтами

-2

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

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

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

Урок 5. Публикация первого контракта

-3

На этом уроке вы узнаете о смарт-контрактах в сети Ethereum и о том, как они выполняются виртуальной машиной Ethereum. Мы расскажем, как создать смарт-контракт на языке Solidity и как его опубликовать. Также вы узнаете о так называемом бинарном интерфейсе приложения Application Binary Interface (ABI).

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

Урок 6. Смарт-контракты и Node.js

-4

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

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

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

Урок 7. Введение в Truffle

-5

На седьмом уроке вы научитесь устанавливать и использовать интегрированную среду разработки Truffle —удобный инструмент программиста смарт-контрактов Solidity, пригодную для реальных проектов Ethereum.

С помощью Truffle вы будете создавать, публиковать и тестировать смарт-контракты, а также вызывать функции смарт-контрактов.

Урок 8. Миграция контрактов в приватную сеть Geth и в сеть Rinkeby

-6

На восьмом уроке вы научитесь работать с тестовой сетью Rinkeby, полезной при отладке смарт-контрактов перед их публикацией в основной сети Ethereum.

При этом для создания собственного узла Rinkeby вы будете использовать Geth, а для разработки смарт-контрактов Solidity — Truffle.

Вы пополните свой аккаунт Rinkeby средствами, опубликуете в Rinkeby свой смарт-контракт, а также научитесь переводить средства на другие аккаунты Rinkeby. Вы также запустите скрипты Node.js, вызывающие функции смарт-контракта в сети Rinkeby.

Вы также познакомитесь с сайтами, где можно посмотреть текущее состояние, содержимое блоков и транзакций для тестовой сети Rinkeby и основной сети Ethereum.

Урок 9. Осваиваем Hardhat, Infura и Alchemy

-7

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

Вы будете публиковать смарт-контракты в тестовой сети Rinkeby с помощью локального узла Geth, а также узлов, предоставляемых сервисами Infura и Alchemy.

Вы установите расширение браузера MetaMask, и научитесь импортировать в него аккаунты узла Geth, а также экспортировать приватные ключи аккаунтов.

Вы найдете на сайте https://www.rinkeby.io адреса смарт-контрактов, опубликованных с помощью Hardhat в сети Rinkeby через локальный узел Geth, через Infura и Alchemy.

Урок 10. Введение в Solidity

-8

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

Понимание структуры смарт-контракта и хорошее владение типами данных необходимо для успешного составления смарт-контрактов.

Урок 11. Контракты ERC-20 и токены

-9

На уроке 11 вы научитесь выпускать собственные токены, соответствующие стандарту ERC-20. Вы познакомитесь с этим стандартом и создадите свой смарт-контракт, выпускающий токены Doctor Coin.

Далее вы напишете тесты для этого смарт-контракта и запустите их под управлением Hardhat.

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

Урок 12. Оракулы

-10

Смарт-контракты Solidity не могут напрямую обращаться к ресурсам сервера, на котором они работают, и к программным интерфейсам различных сервисов через АПИ. На уроке 12 вы узнаете, каким способом данные из реального мира могут попадать в память смарт-контрактов. Вы создадите собственный оракул, способный получать и сохранять в смарт-контракте текущий курс обмена USD на рубли с сайта ЦБ РФ.

Вы также научитесь инициировать и обрабатывать события в смарт-контрактах Solidity.

Урок 13. Интеграция DAPP c MetaMask

-11

На уроке 13 вы научитесь интегрировать одностраничные сайты, сделанные при помощи HTML и JavaScript, с расширением браузера MetaMask.

В результате вы создадите сайт, способный вызывать функции смарт-контракта ERC-20, о котором мы рассказывали на 11 уроке. При этом для работы такого сайта не нужно будет создавать свой узел Ethereum.

С помощью этого сайта вы переведете средства Ether и токены Doctor Coin с одного аккаунта на другой.

Урок 14. Децентрализованное хранилище данных IPFS

-12

На уроке 14 вы познакомитесь с межпланетной файловой системой IPFS и установите собственный узел IPFS.

Далее вы научитесь записывать файлы в IPFS и читать их из этой сети с помощью команд, а также скрипта JavaScript для Node.js. Это потребуется вам на следующем уроке, когда вы будете создавать токены NFT.

Урок 15. Осваиваем NFT

-13

На уроке 15 вы узнаете о том, что бывают взаимозаменяемые и невзаимозаменяемые токены, такие как NFT, для чего могут использоваться токены NFT, познакомитесь со стандартом ERC-721, который используется для смарт-контрактов, работающих с токенами NFT.

Вы создадите такой смарт-контракт DrNFT.sol с применением библиотеки OpenZeppelin в Hardhat, протестируете его и опубликуете в тестовой сети Rinkeby.

Также вы создадите одностраничное Web-приложение, с помощь которого можно вызывать функции смарт-контракта DrNFT.sol с целью создания токенов, получения информации о токенах по их идентификатору, а также переводу токенов на другой аккаунт.