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

Tendermint, Cosmos & IBC

Tendermint, Cosmos & IBC

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

https://cosmos.network/

D83b63db79b42978fe35e120550ca180?s=128

Anton Kaliaev

July 24, 2020
Tweet

Transcript

  1. Tendermint, Cosmos & IBC Основные понятия и устройство Антон Каляев

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

  3. Cosmos SDK IBC Tendermint

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

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

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

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

    Rust, Erlang, Java, …) • понятный API
  8. Tendermint https://docs.cosmos.network/master/intro/sdk-app-architecture.html

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

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

    транзакций x=y • badger DB в качестве локальной БД
  11. None
  12. None
  13. None
  14. • Полное руководство: 
 https://docs.tendermint.com/master/guides/go.html • Объяснение алгоритма с анимацией:

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

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

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

    • модульный • расширяемый • написан на Golang
  18. Cosmos SDK

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

    из основных модулей: • x/auth: учетные записи и подписи • x/bank: токены • x/staking + x/slashing: Delegated PoS
  20. Cosmos SDK • Keeper - интерфейс модуля; может обращаться к

    методам Keeper других модулей • AnteHandler - базовая проверка транзакции (подписи, газ) • Handler - обработчик для определенного вида сообщений (вызывает методы Keeper) • Router - роутер (дергает определенный Handler в зависимости от типа сообщения)
  21. None
  22. None
  23. 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
  24. Cosmos SDK https://github.com/cosmos/cosmos-sdk

  25. Why “Cosmos” SDK? • Delegated PoS • IBC

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

    другой
  27. IBC IBC (Interblockchain Communication) - протокол для общения блокчейнов между

    собой, вдохновленный TCP/ IP • любой консенсус алгоритм (с мгновенной финализацией) • многоуровневый • любые топологии сети
  28. IBC

  29. None
  30. IBC • пересылка токенов между блокчейнами • atomic swaps •

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

  32. Cosmos

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

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

  35. Tendermint Cosmos SDK
 
 IBC алгоритм консенсуса
 
 фрейворк для

    разработки блокчейн приложений
 
 протокол для связи блокчейнов между собой
  36. Антон Каляев @akaliaev Вопросы?

  37. Tendermint • HotStuff -> LibraBFT (Facebook) • Nightshade (Near protocol)

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

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


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

    с данными