-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Description
Link to the codebase
https://github.com/tendermint/tendermint
Which release/version did you read?
0.12.1 (https://github.com/tendermint/tendermint/releases/tag/v0.12.1)
Why it is a good project to read?
- A full blockchain implementation in Go
- Generic/stand-alone blockchain and consensus engine. Can be used to build custom blockchain applications through the abci interface (also part of the tendermint project).
Starting point
- Tendermint core cli (https://github.com/tendermint/tendermint/blob/v0.12.1/cmd/tendermint/main.go)
Reading order
- Tendermint core cli
- Abci cli
- P2P network
- Transaction, blockchain, consensus
Interesting parts
- Blockchain and consensus
- Abci interface
Any parts should be skipped?
- Non core blockchain stuff.
Any other tips?
- Read the documentation first to learn how the cli works.
- Setup local tendermint core instances. Useful for setting debugger when get stuck.
- Be prepared to invest a lot of time. It's a large project with many dependencies in separate repos. Focus on tendermint core and abci.
Links and resources
- Architecture diagram https://github.com/devcorn/hackatom/blob/master/tminfo.pdf
- Documentation https://tendermint.readthedocs.io/projects/tools/en/v0.12.1/
- A work-in-progress guide