Безопасность ICO контрактов весна 2018 — различия между версиями
(→Лекции) |
(→Лекции) |
||
(не показано 20 промежуточных версий этого же участника) | |||
Строка 3: | Строка 3: | ||
Преподаватель: Половьян Александр Игоревич ('''a.polovjan@gmail.com''') | Преподаватель: Половьян Александр Игоревич ('''a.polovjan@gmail.com''') | ||
− | Есть чат в Телеграм для общения (спрашивайте ссылку у коллег), называется "АУ: blockchain (весна 2018)". | + | Есть чат в Телеграм для общения и оповещений (спрашивайте ссылку у коллег), называется "АУ: blockchain (весна 2018)". |
Предполагаемая отчётность: зачёт, сложные домашки. | Предполагаемая отчётность: зачёт, сложные домашки. | ||
Строка 17: | Строка 17: | ||
|02.03.2018 | |02.03.2018 | ||
|[[Медиа:ico180302.pdf|ico180302.pdf]] | |[[Медиа:ico180302.pdf|ico180302.pdf]] | ||
+ | |- | ||
+ | |2 | ||
+ | |16.03.2018 | ||
+ | |[[Медиа:ico180316.pdf|ico180316.pdf]] | ||
+ | | | ||
+ | |- | ||
+ | |3 | ||
+ | |23.03.2018 | ||
+ | |[[Медиа:ico180323.pdf|ico180323.pdf]] | ||
+ | | | ||
+ | |- | ||
+ | |4 | ||
+ | |30.03.2018 | ||
+ | |[[Медиа:ico180330.pdf|ico180330.pdf]] | ||
+ | | | ||
+ | |- | ||
+ | |5 | ||
+ | |13.04.2018 | ||
+ | |[[Медиа:ico180413.pdf|ico180413.pdf]] | ||
+ | | | ||
+ | |- | ||
+ | |6 | ||
+ | |20.04.2018 | ||
+ | |[[Медиа:ico180420.pdf|ico180420.pdf]] | ||
+ | | | ||
+ | |- | ||
+ | |7 | ||
+ | |27.04.2018 | ||
+ | |[[Медиа:ico180427.pdf|ico180427.pdf]] | ||
| | | | ||
|} | |} | ||
+ | |||
+ | === Полезные ссылки === | ||
+ | |||
+ | [https://ethereum.github.io/yellowpaper/paper.pdf Yellow Paper] (более детальный), [https://github.com/ethereum/wiki/wiki/White-Paper White Paper] (более общий). | ||
+ | |||
+ | == Практики == | ||
+ | |||
+ | === Результаты === | ||
+ | |||
+ | [https://docs.google.com/spreadsheets/d/1rfMaKDy_X3ZoyqiD7ZOIFzakf0lwKZh5lccJYz7ghvo/edit#gid=0 Табличка с результатами] | ||
+ | |||
+ | Для зачёта требуется сдать 75% домашек с кодом (т.е. хотя бы 3 из 4). | ||
+ | |||
+ | === Домашнее задание от 02.03.2018 === | ||
+ | |||
+ | Находится в слайдах первой лекции: | ||
+ | |||
+ | # Решить, как общаемся вне очных занятий (ответ - чат в Telegram) | ||
+ | # Приватная сеть ([https://ethereum.stackexchange.com/a/3961 как преаллоцировать средства], [https://medium.com/mercuryprotocol/how-to-create-your-own-private-ethereum-blockchain-dad6af82fc9f описание genesis]) | ||
+ | ## Развернуть приватную ноду Ethereum | ||
+ | ## Добавить вторую ноду к этой приватной сети | ||
+ | # Подключить к mainnet'у | ||
+ | # Опционально: запустить сеть на весь курс (есть одна [https://gist.github.com/LDVSOFT/9809fbdaaa7ed8a9e8334ddb6074ac94 от Димы Лапшина]) | ||
+ | |||
+ | === Домашнее задание от 16.03.2018 (№1) === | ||
+ | |||
+ | Написать смарт-контракт для записи шахматной партии в блокчейн. 2 участника, ходят по очереди, каждый публикует свой ход (текстовое представление). Смарт-контракт должен предоставлять возможность получить весь ход партии для сторонних наблюдателей. Не требуется проверять корректность ходов - считаем, что если игрок походил неверно, то он автоматически проиграл (а это разбирается вне блокчейна). | ||
+ | |||
+ | [http://remix.ethereum.org/ Онлайн-редактор] | ||
+ | |||
+ | [http://solidity.readthedocs.io/en/v0.4.21/solidity-in-depth.html Описание языка Solidity] | ||
+ | |||
+ | === Домашнее задание от 23.03.2018 (№2) === | ||
+ | |||
+ | # Написать смарт-контракт для связи двух смарт-контрактов SocialAccount с лекции | ||
+ | # Добавить ограничить вызовы методов для участников (где применимо) | ||
+ | # Валидировать все аргументы функций (где применимо) | ||
+ | # Добавить подтверждение социальной связи вторым участником | ||
+ | # В смарт-контракт SocialAccount реализовать метод AddFriend который будет добавлять друзей при помощи смарт-контракта SocialConnection | ||
+ | # Добавить Event’ы. Про ивенты можно читать тут: http://solidity.readthedocs.io/en/v0.4.21/contracts.html#events | ||
+ | |||
+ | === Домашнее задание от 30.03.2018 (№3) === | ||
+ | |||
+ | Добавить возможность хранения ETH в SocialAccount. Реализовать методы: | ||
+ | * <code>deposit</code> — зачислить eth на счет смарт-контракта | ||
+ | * <code>withdraw</code> — перевести часть средств (или все) со счета смарт-контракта на счет владельца | ||
+ | * <code>sendToFriend</code> — перевести на счет друга (другой экземпляр SocialAccount) | ||
+ | |||
+ | === Домашнее задание от 20.04.2018 (№4) === | ||
+ | |||
+ | Реализовать свой простой токен, соответствующий [https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md ERC-20] |
Текущая версия на 14:01, 29 апреля 2018
Содержание
Лекции
Преподаватель: Половьян Александр Игоревич (a.polovjan@gmail.com)
Есть чат в Телеграм для общения и оповещений (спрашивайте ссылку у коллег), называется "АУ: blockchain (весна 2018)".
Предполагаемая отчётность: зачёт, сложные домашки.
№ занятия | Дата | Лекция | Комментарии |
---|---|---|---|
1 | 02.03.2018 | ico180302.pdf | |
2 | 16.03.2018 | ico180316.pdf | |
3 | 23.03.2018 | ico180323.pdf | |
4 | 30.03.2018 | ico180330.pdf | |
5 | 13.04.2018 | ico180413.pdf | |
6 | 20.04.2018 | ico180420.pdf | |
7 | 27.04.2018 | ico180427.pdf |
Полезные ссылки
Yellow Paper (более детальный), White Paper (более общий).
Практики
Результаты
Для зачёта требуется сдать 75% домашек с кодом (т.е. хотя бы 3 из 4).
Домашнее задание от 02.03.2018
Находится в слайдах первой лекции:
- Решить, как общаемся вне очных занятий (ответ - чат в Telegram)
- Приватная сеть (как преаллоцировать средства, описание genesis)
- Развернуть приватную ноду Ethereum
- Добавить вторую ноду к этой приватной сети
- Подключить к mainnet'у
- Опционально: запустить сеть на весь курс (есть одна от Димы Лапшина)
Домашнее задание от 16.03.2018 (№1)
Написать смарт-контракт для записи шахматной партии в блокчейн. 2 участника, ходят по очереди, каждый публикует свой ход (текстовое представление). Смарт-контракт должен предоставлять возможность получить весь ход партии для сторонних наблюдателей. Не требуется проверять корректность ходов - считаем, что если игрок походил неверно, то он автоматически проиграл (а это разбирается вне блокчейна).
Домашнее задание от 23.03.2018 (№2)
- Написать смарт-контракт для связи двух смарт-контрактов SocialAccount с лекции
- Добавить ограничить вызовы методов для участников (где применимо)
- Валидировать все аргументы функций (где применимо)
- Добавить подтверждение социальной связи вторым участником
- В смарт-контракт SocialAccount реализовать метод AddFriend который будет добавлять друзей при помощи смарт-контракта SocialConnection
- Добавить Event’ы. Про ивенты можно читать тут: http://solidity.readthedocs.io/en/v0.4.21/contracts.html#events
Домашнее задание от 30.03.2018 (№3)
Добавить возможность хранения ETH в SocialAccount. Реализовать методы:
-
deposit
— зачислить eth на счет смарт-контракта -
withdraw
— перевести часть средств (или все) со счета смарт-контракта на счет владельца -
sendToFriend
— перевести на счет друга (другой экземпляр SocialAccount)
Домашнее задание от 20.04.2018 (№4)
Реализовать свой простой токен, соответствующий ERC-20