$30 off During Our Annual Pro Sale. View Details »

Jepsen @ Tendermint

Jepsen @ Tendermint

A short presentation explaining what Jepsen is and how it roughly works. It also highlights the specific test cases in Tendermint.

Anton Kaliaev

March 13, 2021
Tweet

More Decks by Anton Kaliaev

Other Decks in Programming

Transcript

  1. github.com/melekes Jepsen

  2. github.com/aphyr A framework for distributed systems veri fi cation, with

    fault injection
  3. • Linearizability checkers (Knossos, Elle) • Fault injection (network partitions,

    crashes, clock skews) • Visualization • Flexible API • it’s written in Clojure 😒
  4. https://jepsen.io/consistency Linearizability

  5. Transaction Isolation Levels in Posgresql https://www.postgresql.org/docs/9.5/transaction-iso.html

  6. “each operation appears to take e ff ect atomically at

    some point between its invocation and completion.” https://aphyr.com/posts/313-strong-consistency-models
  7. Jepsen & Tendermint https://jepsen.io/analyses/tendermint-0-10-2 https://github.com/tendermint/jepsen

  8. Test scenarios • Network partitions (different combinations) • Clock skews

    • Crashes • Changing validators • Truncating logs 

  9. "Tendermint appears to satisfy its safety guarantees” Sept. 2017.

  10. What about now?

  11. Everything still looks good👍

  12. “Talk is cheap. Show me the code.” Linus Torvalds

  13. None
  14. None
  15. None
  16. Nemesis can be used to inject faults

  17. So… how does Jepsen work?

  18. https://www.youtube.com/watch?v=OPJ_IcdSqig Black-box Isolation Checking with Elle (Kyle Kingsbury, Jepsen.io)

  19. https://www.youtube.com/watch?v=OPJ_IcdSqig Black-box Isolation Checking with Elle (Kyle Kingsbury, Jepsen.io)

  20. https://www.youtube.com/watch?v=OPJ_IcdSqig Black-box Isolation Checking with Elle (Kyle Kingsbury, Jepsen.io)

  21. https://github.com/tendermint/jepsen

  22. github.com/melekes Thank you!