Cosmos SDK
Main components
- baseapp: A boilerplate implementation of the ABCI. (ABCI method, route)
- MultiStore: Multiple KVStores.
- 기본적인 저장소는 KV이며, 추가로 Commit, Cache가 있음.
- Keeper(each module keeps an access control list for other modules), codec, module manager
ABCI
상태 전이: Application이라고 말함.
- Application BlockChain Interface: Interface between state machine and consensus engine
- messages
- CheckTx is used to protect the mempool of full-nodes against spam transactions. AnteHandler is used to execute a series of validation steps such as checking for sufficient fees and validating the signatures.
- DeliverTx: each transaction in the block is passed to the application via DeliverTx.
- BeginBlock/EndBlock: whether the block contains transactions or not.
Tendermint
Tendermint Core
- Consensus Engine: BFT consensus (fork: cometBFT)
- P2P networking
Cosmos
- Cosmos SDK: ABCI application