Tendermint
文章平均质量分 84
小圣.
这个作者很懒,什么都没留下…
展开
-
Tendermint 共识分析
概述Tendermint的共识算法可以看成是POS+BFT,Tendermint在进行BFT共识算法确认区块前 ,首先使用POS算法从Validators中选举出Proposer。然后由Proposer进行提案,最后使用BFT算法生成区块。Tendermint 的共识协议使用的gossip协议。其中使节点成为Validator有两种方法,具体可参考:https://docs.tendermint.com/master/nodes/validators.htmlround-robin从Validato原创 2021-05-17 22:11:52 · 1537 阅读 · 9 评论 -
tendermint state分析
概述state是共识引擎最新提交区块的一个简单描述,它包含了验证一个区块所有的必要信息,例如验证者集合、共识参数。state并不会在网络中进行传播。对state进行操作时,应该使用state.Copy() 或者updateState()。statetype State struct { // 共识版本 Version Version // ChainID和InitialHeight的默认值都在创世块配置文件中进行配置。 // 并且在整个链中都不应该变化 ChainID原创 2021-05-16 11:11:38 · 1422 阅读 · 9 评论 -
Tendermint mempool分析
mempool 接口我们先看一下在mempool/mempool.go 文件里定义了的mempool接口。// 对内存池的更新需要与提交区块同步,这样应用程序就可以在提交时重置它们的瞬间状态。type Mempool interface { // CheckTx对应用程序执行一个新事务,来确定它的有效性,以及是否应该将它添加到内存池。 CheckTx(tx types.Tx, callback func(*abci.Response), txInfo TxInfo) error // Reap原创 2021-05-15 23:50:24 · 649 阅读 · 2 评论 -
Tendermint P2P源码分析
启用P2P在node/node.go的NewNode里,会发现这样一段代码。// setup Transport and Switch // 创建switch sw := createSwitch( config, transport, p2pMetrics, mpReactorShim, bcReactorForSwitch, stateSyncReactorShim, csReactorShim, evReactorShim, proxyApp, nodeInfo, nodeKey, p原创 2021-05-09 23:32:51 · 1766 阅读 · 16 评论 -
Tendermint KVStore案例解析
概述Tendermint 简单的可以理解为是一个模块化的区块链开发框架,支持开发者个性化定制自己的区块链,而不需要考虑共识算法以及P2P网络的实现。因为在 Tendermint 中,共识引擎和P2P网络都被封装在Tendermint Core 中,并通过ABCI与应用层进行交互。所以使用Tendermint开发时,我们只需要实现ABCI的接口,就可以快速的开发一个区块链应用。KVStore 案例KVStore官方文档地址:https://docs.tendermint.com/master/tuto原创 2021-05-07 17:44:07 · 986 阅读 · 10 评论