前言
警告!警告!警告!这是一篇炒鸡难懂的区块链技术科普文章。区块链技术,“跨链”是未来的重要突破方向,和近期的扩容一个重量级,甚至更为关键。
Tendermint是被誉为“区块链互联网”Cosmos的核心技术,本文将对其原理、特点、创新、应用做出简单介绍,还提供了手动搭建Tendermint攻略。天才粉里面的技术天才们,不想来试试吗?
Tendermint支持使用任何编程语言为不同类型的区块链提供BFT (Byzantine fault-tolerant) 拜占庭容错复制状态机。
拜占庭容错:即使有1/3的机器叛变了, 也能保证其余机器上的数据一致。容忍机器以任意方式失败的能力, 包括变得恶意, 被称为拜占庭容错(BFT)
如何做到的呢?
其实Tendermint有2个主要技术组件:区块链共识引擎(Tendermint Core)和应用程序区块链接口 (Application BlockChain Interface, ABCI)。 共识引擎确保相同的交易以相同的顺序记录在每台机器上。ABCI接口使开发者可以用任何编程语言编写其应用。
Tendermint Core中实现了基于PoS的共识引擎,其特点有:
一、它是拜占廷容错(BFT)的,意味着它最多可以容纳整个网络里面三分之一的验证人发生故障,包括无意的故障和恶意攻击。投票的时候三分之二不是指三分之二的验证人数,而是三分之二的权益。
二、它是强调一致性(及时最终性)而不是可用性的共识,这是跟PoW的最大区别;当它生成新区块高度,这个块就是最终的,它将来不会被推翻,所以它不允许短暂的分叉,会带来比以太坊、比特币高的性能。
Tendermint架构设计的创新之处在于,它将区块链应用(状态)与底层共识进行了分离,将共识引擎和P2P网络层封装组成Tendermint Core。同时提供ABCI接口与应用层进行交互,应用逻辑可以用任何语言编写,应用做的事情实际上就是状态机控制。理论上,基于这种架构,我们可以方便地实现自己的区块链。
事实上,Tendermint团队确实基于这样的架构设计,开发了Ethermint项目。Ethermint做的事情就是去掉了以太坊Go-Ethereum代码底层的PoW共识算法,然后通过ABCI协议回调接口跟Tendermint进行了一个集成。这样就实现了一个高效的基于PoS共识的以太坊,已有的以太坊的智能合约和所有的以太坊的客户端工具,开发工具,智能合约调用工具全部都可以原封不动的拿到这边来使用。
Tendermint 支持以下RPC协议:
l URI over HTTP
l JSONRPC over HTTP
l JSONRPC over websockets
Tendermint 已经进化为一个能够承载任意应用状态的通用区块链共识引擎。
如何在windows上搭建tendermint?
领取专属 10元无门槛券
私享最新 技术干货