FAQ
Поиск
#Цифровизация
#Цифровая трансформация
#Блокчейн
#Smart-контракт
#Криптовалюты
#Ethereum
#Solidity

Блокчейн программирование:
смарт-контракты на языке Solidity для Ethereum
Разработчик технологии блокчейн с нуля

10 дней (80 академических часов)
Краткая аннотация
Программа курса представляет специалистам в области программирования навыки практического применения технологий блокчейн, создания криптовалют и написания собственных смарт-контрактов.


Программа курса включает лекционные, практические занятия, выполнение тестовых заданий.
Целевая аудитория
Специалисты, желающие получить навыки практического применения технологий блокчейн, создания криптовалют и написания смарт-контрактов
Расписание открытых форматов курса
Стоимость обучения одного слушателя
21.06.202
Очный формат — 145 000 ₽.

Дистанционный формат — 130 500 ₽.
Подробная программа курса
Тема № 1 «История появления блокчейн».

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

Тема № 2 «Структура связи информации в блокчейн».

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

Тема № 3 «Криптографические основы блокчейн: приватный ключ, адрес, цифровая подпись».

Изучаются вопросы криптографической защиты информации при применении блокчейн-технологий. Рассматриваются необходимые понятия из области криптографии и технологии шифрования (хеш-функция, схемы шифрования с открытым ключом, цифровые подписи) и их применение в блокчейне (майнинг, хеширование и верификация блоков, дерево Меркла).

Тема № 4 «Настройка узла Ethereum (клиент Parity)».

Рассматриваются особенности реализации узлов сети блокчейн в Ethereum – EVM, CLI, типы синхронизации узлов. Изучаются варианты установки Parity для различных ОС, опции базовой настройки клиента через CLI и конфигурационный файл.


Тема № 5 «Сериализация хранения информации в блокчейн на базе Ethereum – RLP кодирование».

Рассматриваются принципы и назначение сериализации данных. Изучается алгоритм кодирования и декодирования данных при помощи RLP.

Тема № 6 «Кошелек на узле: создание аккаунта, баланс, подпись транзакций».

Изучаются практические аспекты использования кошелька на базе Ethereum. Рассматриваются типы аккаунтов, транзакции и их состав, криптографические аспекты создания аккаунта, порядок создания аккаунта и проведения транзакций в Parity.

Тема № 7 «Кошелек в браузере: NiftyWallet/Metamask».

Изучаются возможности взаимодействия с аккаунтом через браузерные расширения для работы с кошельками Ethereum. Изучается настройка и использование плагинов Metamask и NiftyWallet.

Тема № 8 «Базовые операции через JSON-RPC: баланс, блоки, транзакции».

Рассматривается работа с аккаунтом Etherium при помощи протокола JSON-RPC. Изучаются способы вызова методов API и базовые методы API.

Тема № 9 «Консенсус при составлении истории блоков - PoW, PoS, PoA».

Рассматривается функция консенсуса, основные алгоритмы консенсуса в Ethereum и их особенности.

Тема № 10 «Понятие Gas. Вознаграждение».

Рассматривается реализация вознаграждения за майнинг в Etherium. Рассматриваются понятия gas, gas price, gas limit и принципы определения оптимальных параметров gas для различных транзакций.

Тема № 11 «Настройка собственной PoA сети».

Практическое занятие по созданию частной сети c алгоритмом консенсуса PoA в клиенте Parity. Рассматривается создание узлов частной сети, их настройка и соединение, проведение транзакций.

Тема № 12 «Web3 библиотека для доступа к данным узлов Ethereum (Python)».

Рассматриваются вопросы установки и настройки IDE Python, библиотеки web3, написания и запуска приложений с ее использованием. Изучаются базовые методы API web3.

Тема № 13 «Задание QADWallet (Quick and Dirty Wallet) – консольное приложение на Python».

На основе информации из предыдущих тем рассматривается создание консольного приложения Python (QADWallet.py) для выполнения базовых операций в PoA сети.

Тема № 14 «Виртуальная машина Ethereum – развертывание, выполнение контракта, storage».

Изучается развертывание и особенности устройства и работы EVM – виды памяти, типы аккаунтов, выполнение транзакций и смарт-контрактов.

Тема № 15 «Ввведение в язык Solidity – создание простого контракта в среде Remix».

Рассматриваются основы языка Solidity: элементарные типы, операторы, структуры данных, управляющие структуры события, функции, библиотеки, контракты. Изучается установка IDE Remix и работа в нем. Изучается написание контрактов на базовых примерах.

Тема № 16 «Использование среды Remix для отладки контрактов».

Изучается интерфейс и работа отладчика IDE Remix на базовых примерах.

Тема № 17 «Развертывание контрактов в тестовом полигоне c использованием NiftyWallet».

Изучается развертывание и запуск контрактов в тестовой PoA сети при помощи NiftyWallet и Remix.

Тема № 18 «Исследование контракта Ballot с внесением модификаций».

Изучается написание более продвинутых контрактов в среде Remix на примере контракта открытого голосования Ballot.sol и его доработки до контракта слепого аукциона.

Тема № 19 «Application Binary Interface».

Рассматривается назначение ABI, его спецификация и принцип кодирования, взаимодействие с контрактами через ABI.

Тема № 20 «Развертывание и работа с контрактом через библиотеку Web3 (Python)».

Изучается разработка скриптов Python для развертывания контракта и вызова его методов через ABI при помощи библиотеки Web3.

Тема № 21 «Знакомство с типовыми контрактами: ERC20/ERC677, ERC721, CrowdSale, Multisig, Escrow, PaymentChannel, Upgradability, AtomicSwap».

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

Тема № 22 «Фильтры событий».

Изучаются способы поиска в логах событий информации при помощи библиотеки web3.

Тема № 23 «Задание DigitalIdentity – манипуляции с ERC721 из консоли (Python)».

Рассматривается разработка программы на Python для взаимодействия с ERC721.

Тема № 24 «Оптимизация контрактов».

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

Тема № 25 «Безопасность контрактов».

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

Тема № 26 «Библиотеки контрактов на примере OpenZeppelin».

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

Тема № 27 «Публичные Ethereum сети (mainnet, testnets, sidechains), faucets».

Изучаются принципы организации и построения публичных сетей Ethereum. Рассматривается функционирование основной сети (mainnet) и сайдчейнов, кранов Ethereum (faucets), характерные особенности и отличия функционирования тестовой копии (testnet) от основной сети.

Тема № 28 «Провайдер доступа к сетям INFURA».

Изучаются принципы использования платформы Infura, ее возможности и поддерживаемые децентрализованные приложения.

Тема № 29 «Etherscan и Blockscout – навигаторы по блокам».

Изучаются возможности обозревателей блоков в сети Ethereum (Etherscan, Blockscout): отслеживание блоков, транзакций, баланса, просмотр статистики сети.

Тема № 30 «Верификация контрактов в Blockscout/Etherscan».

Рассматривается функция верификации (проверки смарт контракта) в обозревателе блоков. Изучаются шаги, необходимые для верификации контракта в Blockscout/Etherscan.

Тема № 31 «Сериализация данных при работе с контрактами».

Рассматривается система вызова смарт-контрактов, структура данных сообщения (поля, принцип сериализация данных при помощи RLP), компиляция и вызов смарт контрактов.

Тема № 32 «Исследование работы контрактов – доступ к данным без ABI».

Рассматриваются возможности доступа к данным контрактов без ABI, базы и списки соответствий функций и подписей.

Тема № 33 «Задание Web приложение (node.js) для доступа к данным контрактов».

Рассматривается реализация интеграции взаимодействия со смарт контрактом в веб-приложение на node.js: доступ к узлу, компиляция и деплой смарт-контракта.
Получаемые навыки
Слушатели курса получат знания о работе с технологиями blockchain с пониманием принципов их работы. Приобретут практические навыки разработки решений на основе блокчейн под любую задачу.


После обучения блокчейн технологиям обучившиеся смогут:

разрабатывать умные контракты (smart_contracts) и децентрализованные приложения с помощью языка программирования Solidity;
настраивать программное окружение для работы с Ethereum;
разрабатывать, тестировать, создавать и внедрять приложение на базе Ethereum;
создавать токены для криптовалюты и пользовательский интерфейс проекта;
управлять транзакциями «эфира» онлайн;
создавать приложения от разработки технического задания на систему до прототипа программы.
Возможные форматы обучения и размеры групп
очно (до 15 слушателей)

дистанционно в составе очной группы (без ограничения числа подключений)

корпоративный формат (для групп от 10 до 45 слушателей)

Тренер курса

Беляев Александр Владимирович

Разработчик информационных систем, системный аналитик, аналитик данных
Ведёт 19 курсов в ЦЕСИНКОМ
Разработка на Python
Машинное обучение
Математическая оптимизация
Консалтинг
Специализация
Должность
Дополнительные услуги
Требуемый уровень предварительной подготовки
Высшее или среднее специальное образование. Слушатели должны владеть базовым опытом разработки на языке Python. и иметь общее представление о разработке веб-приложений.
Траектории, в которые входит данный курс
Специалист по цифровизации
Список курсов, требующихся для прохождения данного курса
Основы программирования на языке Python
Список курсов, которые дополняют данный курс
Стоимостное мышление

Системное мышление

Лидерство в управлении проектами

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

Управление проектами с применением Agile-технологий

Управление проектами на основе PMBoK

Управление проектами с использованием PRINCE2

Управление коммерческими проектами

Управление проектами с использованием MS Project
Список категорий каталога, в которые включён курс
Основы цифровизации и цифровой трансформации
Разработка курса или траектории обучения под вашу задачу
Центр готов взять на себя разработку курсов и траекторий обучения под уже сформированную модель компетенций или просто под список знаний и навыков, которые нужно освоить специалистам организации.