Децентрализованные системы: внутреннее устройство
Преподаватель: Грищенко Виктор Сергеевич
Модуль: 3-4
Кредиты: 5
Программа
2 модуля, 15 лекций + 15 семинаров
Занятия
2 пары в неделю (лекция+семинар)
Аннотация
"Почта, телеграф, телефон!" Топология коммуникационной сети определяет точки контроля и точки сбоя системы. Централизованные системы строить просто. Децентрализоваынные сложней, но жизнь заставляет. Децентрализация даёт важные коммерческие, эксплуатационные и даже военные качества (да-да, интернет создавался на случай атомной войны!)
В курсе мы рассмотрим эволюцию децентрализованных систем и их основные механизмы. Это даст слушателям понимание основ их устройства, сильных и слабых сторон и границ применимости. Что важно, те же идеи используются как заготовки для строительства как глобальных сетей так и менее масштабных систем. И с теми и с другими, слушатели либо уже знакомы либо обязательно столкнутся в будущем.
Мы постараемся проследить, как идея переходит в код, код в реально работающую систему, а передовые технологии становятся ширпотребом. Это улучшит навыки планирования у слушателей.
Для кого курс
Для студентов 2 курса и старше, нацеленных на работу в исследовательских и наукоёмких технологических проектах.
Требования
Навыки самостоятельной работы, поиска и проверки информации.
Умение программировать хотя бы на 1 языке кроме Python.
Организация курса
Курс продлится 15 недель. Еженедельно нужно посетить одно занятие. Домашнее задание - командное, из расчёта 2-х недельных итераций с работающим/проверяемым результатом.
Студентам рекомендуется установить IDE JetBrains либо MS VS Code и освоить навигацию по коду.
Предварительный список тем
-
Динамическая маршрутизация - учимся переживать изменения в топологии сети.
graph based ARP/OSPF/BGP
DNS based SMTP/HTTP/CDN
content based DHT, consistent hashing, rarest1st BitTorrent
-
Федерирование - объединяем разные административные домены в единую сеть.
graph based BGP
DNS based SMTP/HTTP
crypto based git, bittorrent
-
Криптография - гарантируем целостность пересылаемых данных и многое другое.
TLS HTTP, SMTP
Merkle trees BitTorrent, IPFS, DAT
Blockchain BitCoin, etc
Merkle DAGs git
-
Инцентивизация - заинтересовываем участников в соблюдении правил.
tit4tat BitTorrent
payments BitCoin
-
Коллаборация - позволяем участникам работать совместно.
hyperlinks HTTP, Wiki(pedia)
dmp git
CRDT RON
Как будут выставляться оценки
На основе проверки самостоятельных (командных) работ.
Примеры работ: написать JSON интерфейс для DNS, выявить точки выхода из российского интернета в международный, написать систему логгирования с криптографической защитой. Проверка работы также может быть работой.
Расписание: понедельник 9:30-10:50 и 11:10-12:30 с 18 января
Подключиться к занятию