Tendermint包括两个主要技术组件:区块链共识引擎和通用应用程序接口。 共识引擎,被称作Tendermint Core,保证所有的机器按照相同的顺序记录相同的交易。...Tendermint的目标是易使用、便理解、高性能并适用各种分布式应用场景。 Tendermint 和其他技术对比 Tendermint大体上类似于两类软件。...因此,当前的以太坊代码库,无论是Rust、Go还是Haskell,都可以作为一个ABCI应用程序运行在Tendermint共识引擎之上。 Tendermint 已经实现了以太坊。...Tendermint 接下来准备对比特币、ZCash和其他各种确定性应用完成类似的开发实现。 目前,另外一个已实现的基于Tendermint的虚拟货币应用程序是Cosmos 网络。...Tendermint 实现 Ethermint
启动流程 Tendermint 的启动流程比较清析明了,各业务启动流程都在对应的实现代码,主启动流程加载所需配置,由各启动实现类启动自己对应业务,如节点启动相关在 nodeImpl,共识相关处理是 state...代码位置:cmd/tendermint/main.go func main() { ...省略部份代码 // NOTE: // Users wishing to: // * Use an...cmd := &cobra.Command{ Use: "start", Aliases: []string{"node", "run"}, Short: "Run the tendermint...AddNodeFlags(cmd) return cmd } 启动需的默认配置一目了然 // DefaultConfig returns a default configuration for a Tendermint...Start the RPC server before the P2P server // so we can eg. receive txs for the first block // 这里顺带说下,tendermint
相比之下,Tendermint分离了共识引擎和P2P层与特定区块链程序的应用状态细节。 Tendermint将应用程序的状态管理细节抽象到一个接口,并将该接口以socket协议的形式实现了出来。...所以,Tendermint拥有接口规范,即应用程序区块链接口(ABCI),并有了一个主要实现Tendermint socket协议(也叫TSP或Teaspoon)。...ABCI介绍 ABCI 与 Tendermint Core 通信 Tendermint Core (“共识引擎”)通过满足ABCI规范的socket协议与应用程序通信。...数据库 验证交易签名 防止使用未产生的交易 允许客户端查询UTXO数据库 Tendermint通过在应用程序进程和共识进程之间提供非常简单的API(即ABCI)来分解区块链设计。...ABI由3种主要消息类型组成,它们从Tendermint核心传递到应用程序,应用程序用相应的响应消息进行回复。
Tendermint 是一个易于理解,大部分操作为异步的 BFT 共识协议。下图是一个简单的状态机,它展示了协议遵循的规则: ?...Tendermint 协议中的参与者叫着 “验证人”(validator)。他们轮流对交易区块进行提议,并对这些区块进行投票。区块会被提交到链上,每一个块占据一个“高度”(height)。...Tendermint 允许他们证实一个验证人应该被跳过。在进行下一轮的投票前,验证人会等待一小段时间从提议者那里接收一个完整的提议块。...Tendermint 能够简化的一个原因就是它使用了同样的机制来提交一个块和跳过直接进入下一轮。...基于不到 1/3 的验证人是拜占庭节点的前提,Tendermint 保证了永远都不会违背其安全性 -- 也就是说,验证人永远不会在同一高度提交冲突块。
下面都继承p2p/base_reactor interface Reactor, 调用自己的OnStart方法
所谓安全,指的是即使有多达 1/3 的机器出现任意故障的情况下, Tendermint 仍然能够正常工作。所谓一致,指的是每一个正常工作的机器都会有着同样的交易日志,计算相同的状态。...Tendermint 包含了两个主要的技术组件:一个区块链共识引擎和一个通用的应用程序接口。共识引擎,叫做 Tendermint Core,保证了每一台机器以相同的顺序记录同一笔交易。...与其他预先打包内置状态机(比如键值存储或者一个奇怪的脚本语言)的区块链和共识方案不同,开发者可以使用 Tendermint 实现应用的 BFT 状态机复制,而这些应用可以用任何语言编写,而且开发环境对开发者也十分适合...Tendermint 的设计原则是易使用,易理解,高性能,对于各种分布式应用都十分有用。 本文译自:What is Tendermint?
Peer Exchange Reactor (PEX)确保与好的peers进行连接和通信
简述 Tendermint的共识算法可以看成是POS+BFT,Tendermint在进行BFT共识算法确认区块前,首先使用POS算法从Validators中选举出Proposer。...Tendermint 的共识协议使用的gossip协议。 另外,源码分析部分由于代码篇幅太长,会省略部分源码,不影响阅读。...角色 Tendermint 共识网络中有两个重要角色 Validator: 网络的参与者,也是区块的验证者(预先配置的网络中的一般验证者账户们) Proposer: 从validator中选举出一个节点成为出块人...----------------+ 阶段:Propose阶段、Prevote阶段、Precommit阶段 投票种类:prevote、precommit、commit round-based 协议 整个Tendermint
Tendermint共识算法技术实现1. Tendermint共识算法tendermint共识算法是拜占庭容错算法,也是最多容忍不超过1/3的恶意节点。...共识流程tendermint共识流程可以通过下面这张经典的图片来描述:图片下面我们根据这张图片来分析tendermint的共识流程:NewHeight阶段NewHeight阶段属于特殊阶段,是共识的开始阶段...tendermint根据Round-robin轮询规则选取主节点。...3. tendermint的安全性和活性安全性:tendermint由于采取了lock机制,假定有最多小于总结点 1/3 的拜占庭节点。...不同点:Tendermint和PBFT最大的不同点就是Tendermint没有PBFT的View Change阶段。
在比特币和以太坊这样的传统加密货币下出现了 Tendermint,它的目的在于提供一个比比特币的工作量证明更加有效和安全的共识算法。...在早期,Tendermint 内置了简单的货币来参与共识,用户必须向一个安全账户中“绑定”一定数量的货币,如果他们表现不端,这些钱就会被收回 -- 这一点使得 Tendermint 成为一个 POS 算法...另一个基于 Tendermint 构建的加密货币应用是 Cosmos。...通过扩展 Tendermint 来处理未来工作存在的不确定性,在 Tendermint 中以一个 ABCI 应用实现这个基于 docker 的行为是完全有可能的。...它使用 Tendermint 作为它的共识引擎,提供了一个特殊的应用状态。 本文译自:Tendermint vs. Other Software
所以,我们就有了一个接口,应用区块链接口(ABCI),和它的主要实现,Tendermint Socket Protocol (TSP, 或 Teaspoon)。...Intro to ABCI Tendermint Core (“共识引擎”)通过一个满足 ABCI 标准的 socket 协议与应用进行交流。 举个大家比较熟悉的例子,比特币。...Tendermint Core 的内存池首先通过 CheckTx 检验一笔交易的有效性,并且只将有效交易中继到其他节点。...Tendermint Core 给应用创建了三个 ABCI 连接:一个用于内存池广播时的交易验证,一个用于运行提交区块时的共识引擎,还有一个用于查询应用状态。...如果应用逻辑不确定,就无法在 Tendermint Core 复制节点间达成共识。
Tendermint RPC API文档中文版由汇智网翻译整理,访问地址:http://cw.hubwiz.com/card/c/tendermint-rpc-api/。...Tendermint节点的websocket访问端结点是/websocket,例如:localhost:26657/websocket。...如果希望快速掌握区块链应用的开发,推荐汇智网的 区块链应用开发系列教程, 内容涵盖比特币、以太坊、eos、超级账本fabric和tendermint等多种区块链, 以及 java、c#、go、nodejs...导出共识状态 Genesis - 获取创世文件 Health - 查询节点健康状态 NetInfo - 查询节点网络状况 NumUnconfirmedTxs - 查询未确认交易 Status - 查询Tendermint
1、预置模块 要快速掌握Tendermint区块链开发,推荐汇智网的Tendermint区块链开发详解.。...:区块链共识引擎 如果你还没接触过Tendermint,建议参考汇智网的Tendermint开发教程。...tendermint和blog都有一个目录来保存配置信息和内部数据库状态。默认目录为:~/.tendermint 和 ~/.blog。不过为了简化考虑,我们将所有配置信息放到同一个目录。...,使用命令tail -f ~/.blog/tendermint.log,就可以看到我们的blog区块链节点的输出了: ?...---- 原文链接:IOV Weave SDK快速教程 - 基于Tendermint的区块链开发框架 - 汇智网
Tendermint 组件 Tendermint 是 Cosmos 的核心组件,是一个高性能的区块链底层共识引擎,从架构上来说,其主要分为对等网络通讯层、共识协议层与上层应用层三大部分,其中共识协议层是其关键部分...Tendermint 在共识时并不关心具体交易细节,而只是将交易当作字节打包成区块,然后通过各节点之间的的机制达成共识。...关于 Tendermint 共识算法具体机制可以阅读以下论文进行了解: The latest gossip on BFT consensus - Tendermint 其特有的一些机制带来了区块链共识过程中的显著优势...Tendermint 算法实现细节与机制将在之后的系列文章中具体讲解。...总结 本文为 Cosmos 及 Tendermint 共识系列第一篇,主要介绍了区块链的技术发展、Cosmos 区块链框架中的 Tendermint 和 Cosmos SDK 等核心组件,并对 Tendermint
前言 对 Tendermint 有了一个的了解之后,我们需要对 Tendermint 进行开发和操作,该如何运行这个项目。...安装内置命令: tendermint git clone 之后,找开项目,Tendermint 是go项目,内置的一些功能需要先进行编译。...验证命令正确安装,执行一下:tendermint 这个图中展示了 tendermint 支持的各种命令,对节点运行来说,需要关注的是 init start 初始化 validator 节点 tendermint...path=/Users/liukai/.tendermint/config/node_key.json genesis file module=main path=/Users/liukai/.tendermint...vim-go启动 tendermint 的启动服务命令在:cmd/tendermint 目录下。
本文主要介绍以下内容: (1)Tendermint的网络层级框架图 (2)Tendermint模块组成及共识算法原理 (3)Tendermint工作流程 2....2.1 Tendermint的概念 Tendermint的概念总结下有以下几点: (1)Tendermint是一个能够在不同机器上,安全一致复制应用的软件,其中安全性和一致性也是分布式账本的关键概念。...ABCI是Tendermint中定义的一套Application与Tendermint Core之间交互的协议。.../tendermint/tendermint (4)深度解析Tendermint,快速融入Cosmos生态[质量高] https://zhuanlan.zhihu.com/p/38252058 (...5)区块链框架 Tendermint 入门教程 https://hbliu.coding.me/2018/04/02/tendermint-introduction-1/ (6)详解Tendermint
Tendermint的目的就是致力于解决分布式系统开发中像公示算法这样的技术难点,而让Tendermint区块链应用开发者可以将关注点集中在业务逻辑上。...Tendermint包含两个主要的组件: 区块链共识引擎,即:Tendermint内核 应用与区块链接口,即:Application BlockChain Interface Tendermint内核可以托管任意的应用状态...Tendermint开发环境搭建与测试 STEP 1:下载Tendermint内核 tendermint内核采用Go开发,有官方预编译程序,下载地址:Tendermint Core。...STEP 2:初始化Tendermint 执行如下命令初始化Tendermint: ~$ tendermint init 应当可以在终端看到tendermint的输出信息: I[10–18|20:14:.../genesis.json STEP 3:启动Tendermint节点 使用node子命令启动Tendermint节点: ~$ tendermint node -proxy_app=kvstore -proxy_app
关于更多tendermint的介绍这里不再赘述。 这里,我们通过tendermint的abci来实现fabric的orderer服务。 ?...下面我们借助tendermint的abci接口,实现代码不侵入,完成orderer的tendermint pbft排序。...只启动一个tendermint服务。...byte数组,调用tendermint节点的Mempool.checkTx方法,将交易打包到tendermint的内存池中即可。...该账本主要用于fabric追块,当某个orderer节点的tendermint块高度比其他节点小时,会触发tendermint的追块功能,从tendermint中读取交易后写入自己的tendermint
Tendermint Tendermint开源项目诞生于2014年,旨在解决比特币的工作证明共识算法的速度,可扩展性和环境问题。...Ethermint等平台建立在Tendermint ABCI平台之上。 另一个建立在Tendermint ABCI之上的项目是Cosmos Network,它被设计为“区块链互联网”。...Tendermint的保税交易 Tendermint通过使用称为“bond deposits债券存款”的基于证券存款的抵押品解决了无关紧要的问题。...Tendermint Tendermint中的Fork责任通过识别在链中引起恶意分叉的人来确认其验证者的责任。那些被判有罪的人被他们的债券存款被摧毁而被罚款。.../tendermint-0-10-2。
前两周上线了我们为 Cybermiles 提供的 supernode,因为 Cybermiles 主网使用了 Tendermint,于是上周便研究了一下 Tendermint,边学边写了个 slides...介绍 Tendermint。...周日,闲来无事,想用 tendermint 做点东西。...这样的 app 当 hello world 还可以,用来验证 Tendermint 是否靠谱,本身并不靠谱。...Tendermint block: ? 转账结束后的状态: ?
领取专属 10元无门槛券
手把手带您无忧上云