Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tendermint, Cosmos & IBC

Tendermint, Cosmos & IBC

Основные понятия и устройство

https://cosmos.network/

Anton Kaliaev

July 24, 2020
Tweet

More Decks by Anton Kaliaev

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

  3. Cosmos SDK IBC
    Tendermint

    View full-size slide

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

    View full-size slide

  5. Tendermint
    Алгоритм консенсуса, вдохновленный PBFT
    • быстрый (1 сек. - 1 блок)

    • не нужно ждать ~10 блоков *, чтобы считать
    транзакцию состоявшейся - мгновенная
    финализация

    • безопасный

    • формально верифицирован

    • не масштабируется (< 300 валидаторов)
    * - https://en.bitcoin.it/wiki/Confirmation

    View full-size slide

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

    • все остальное • все остальное

    View full-size slide

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

    • понятный API

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    • badger DB в качестве локальной БД

    View full-size slide

  11. • Полное руководство: 

    https://docs.tendermint.com/master/guides/go.html

    • Объяснение алгоритма с анимацией: 

    https://www.homeonrails.com/thesecretlivesofdata/tendermint/
    Tendermint

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    • расширяемый

    • написан на Golang

    View full-size slide

  15. Cosmos SDK
    Все модули SDK находятся в директории x/. Некоторые из
    основных модулей:

    • x/auth: учетные записи и подписи

    • x/bank: токены

    • x/staking + x/slashing: Delegated PoS

    View full-size slide

  16. Cosmos SDK
    • Keeper - интерфейс модуля; может обращаться к методам
    Keeper других модулей

    • AnteHandler - базовая проверка транзакции (подписи, газ)

    • Handler - обработчик для определенного вида сообщений
    (вызывает методы Keeper)

    • Router - роутер (дергает определенный Handler в
    зависимости от типа сообщения)

    View full-size slide

  17. 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

    View full-size slide

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

    View full-size slide

  19. Why “Cosmos” SDK?
    • Delegated PoS

    • IBC

    View full-size slide

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

    View full-size slide

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

    • многоуровневый

    • любые топологии сети

    View full-size slide

  22. IBC
    • пересылка токенов между блокчейнами

    • atomic swaps

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

    View full-size slide

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

    View full-size slide

  24. IBC
    • https://cosmos.network/ibc

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

    View full-size slide

  25. Tendermint
    Cosmos SDK


    IBC
    алгоритм консенсуса


    фрейворк для разработки блокчейн
    приложений


    протокол для связи блокчейнов между собой

    View full-size slide

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

    View full-size slide

  27. Tendermint
    • HotStuff -> LibraBFT (Facebook)

    • Nightshade (Near protocol)

    • Streamlet
    Новые алгоритмы консенсуса:

    View full-size slide

  28. Cosmos vs Polkadot
    • Cosmos - суверенный прежде всего, 

    Polkadot - общая безопасность прежде всего путем отказа
    от консенсуса.

    • Cosmos - валидаторы могут решать валидировать им
    цепочку или нет, 

    Polkadot - назначает валидаторы

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

    View full-size slide

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

    View full-size slide