Slide 1

Slide 1 text

Tendermint, Cosmos & IBC Основные понятия и устройство Антон Каляев @akaliaev / 24 Июля 2020

Slide 2

Slide 2 text

Антон Каляев Блог: https://www.homeonrails.com/ @akaliaev melekes Слайды: https://speakerdeck.com/melekes

Slide 3

Slide 3 text

Cosmos SDK IBC Tendermint

Slide 4

Slide 4 text

Блокчейны на основе PoW медленные, дорогие, не масштабируются и вредные для окружающей среды. Tendermint

Slide 5

Slide 5 text

Tendermint Алгоритм консенсуса, вдохновленный PBFT • быстрый (1 сек. - 1 блок) • не нужно ждать ~10 блоков *, чтобы считать транзакцию состоявшейся - мгновенная финализация • безопасный • формально верифицирован • не масштабируется (< 300 валидаторов) * - https://en.bitcoin.it/wiki/Confirmation

Slide 6

Slide 6 text

Tendermint Валидаторы (validators) Полные узлы (full nodes) • голосуют за блоки • все остальное • все остальное

Slide 7

Slide 7 text

Tendermint Мини-фреймворк для написания PoS блокчейнов • любой язык (Go, Rust, Erlang, Java, …) • понятный API

Slide 8

Slide 8 text

Tendermint https://docs.cosmos.network/master/intro/sdk-app-architecture.html

Slide 9

Slide 9 text

Tendermint https://docs.cosmos.network/master/intro/sdk-app-architecture.html

Slide 10

Slide 10 text

Рассмотрим пример написания простой распределенной БД ключ-значение Tendermint • формат транзакций x=y • badger DB в качестве локальной БД

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

• Полное руководство: 
 https://docs.tendermint.com/master/guides/go.html • Объяснение алгоритма с анимацией: 
 https://www.homeonrails.com/thesecretlivesofdata/tendermint/ Tendermint

Slide 15

Slide 15 text

Tendermint https://github.com/tendermint/tendermint

Slide 16

Slide 16 text

Cosmos SDK Написать свой блокчейн с нуля тяжело и в 99% случаев непрактично

Slide 17

Slide 17 text

Cosmos SDK Фреймворк для написания блокчейнов, вдохновленный Ruby on Rails • модульный • расширяемый • написан на Golang

Slide 18

Slide 18 text

Cosmos SDK

Slide 19

Slide 19 text

Cosmos SDK Все модули SDK находятся в директории x/. Некоторые из основных модулей: • x/auth: учетные записи и подписи • x/bank: токены • x/staking + x/slashing: Delegated PoS

Slide 20

Slide 20 text

Cosmos SDK • Keeper - интерфейс модуля; может обращаться к методам Keeper других модулей • AnteHandler - базовая проверка транзакции (подписи, газ) • Handler - обработчик для определенного вида сообщений (вызывает методы Keeper) • Router - роутер (дергает определенный Handler в зависимости от типа сообщения)

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Cosmos SDK • https://docs.cosmos.network/master/ • How to Build a Blockchain App with Cosmos SDK | Jack Zampolin
 https://www.youtube.com/watch?v=pyAmxlzVdqM • Cosmos SDK: scalable blockchain development
 https://git.io/JJcFc

Slide 24

Slide 24 text

Cosmos SDK https://github.com/cosmos/cosmos-sdk

Slide 25

Slide 25 text

Why “Cosmos” SDK? • Delegated PoS • IBC

Slide 26

Slide 26 text

IBC Нет простого способа переслать токены из одного блокчейна в другой

Slide 27

Slide 27 text

IBC IBC (Interblockchain Communication) - протокол для общения блокчейнов между собой, вдохновленный TCP/ IP • любой консенсус алгоритм (с мгновенной финализацией) • многоуровневый • любые топологии сети

Slide 28

Slide 28 text

IBC

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

IBC • пересылка токенов между блокчейнами • atomic swaps • мультиблокейн смарт-контракты Что можно сделать с его помощью:

Slide 31

Slide 31 text

IBC

Slide 32

Slide 32 text

Cosmos

Slide 33

Slide 33 text

IBC https://github.com/cosmos/ics

Slide 34

Slide 34 text

IBC • https://cosmos.network/ibc • https://github.com/cosmos/ics/tree/master/media

Slide 35

Slide 35 text

Tendermint Cosmos SDK
 
 IBC алгоритм консенсуса
 
 фрейворк для разработки блокчейн приложений
 
 протокол для связи блокчейнов между собой

Slide 36

Slide 36 text

Антон Каляев @akaliaev Вопросы?

Slide 37

Slide 37 text

Tendermint • HotStuff -> LibraBFT (Facebook) • Nightshade (Near protocol) • Streamlet Новые алгоритмы консенсуса:

Slide 38

Slide 38 text

Tendermint

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

IBC IBC отвечает за аутентификацию, транспорт и порядок структурированных пакетов с данными