这部分将会对tendermint的源代码进行探究
tendermint的主要的模块示意图如下:
- node是整个tendermint的启动节点的命令,在这里可以看见所有的数据,所有的模块都将为node模块提供服务。
- evidence模块为每一个peer收到的数据提供验证的功能
- config是配置拂去文件,主要完成的是读取tendermint的配置文件
- blockchain主要完成的是更新当前的链的state
- consensus模块主要实现的是共识,为blockchain模块提供服务
- state模块主要的工作是当前的整个区块链的状态的记录和存储
- p2p模块主要实现的是底层饿数据通信
- mempool主要是极限的是接收到来自应用的或者其他peer的tx,然后保存在本地
- proxy主要完成的事一个代理工作,tendermint于app进行通信的时候,主要是通过proxy来完成的
- rpc是proxy的底层实现,proxy主要通过的是websocket来实现的