Tendermint 是分布式一致性软件。即使有1/3的机器叛变了, 也能保证其余机器上的数据一致。容忍机器以任意方式失败的能力, 包括变得恶意, 被称为拜占庭容错(BFT)。该理论被提出来数十年了,由于bitcoin和ethereum”区块链技术”的成功,才变得流行起来。区块链用点对点和加密认证技术组成了一个现代化BFT实例。Tendermint包含了两个主要的组件:区块链共识引擎和通用应用层接口。共识引擎叫Tendermint Core,确保每一台机器上的交易列表相同。应用层接口名字是ABCI,提供能为任何语言处理交易的接口。与其他区块链的解决方案(内置的状态机预先打包块)不同,如ethereum的基于世界状态树的键值对存储、bitcoin的脚本语言处理。开发人员可以在任何开发环境下用任何语言通过实现ABCI应用层来复制Tendermint状态机。

共识算法

Tendermint 是一个易于理解的,大部分模块采用异步通信的,拜占庭容错共识协议。该协议可用一个简单的状态机表示,如下图:

协议参加者称为验证节点;他们轮流打包出块并集体对该块打包。在每一个高度上只允许一个块commit。在一个块无法在该轮被提交的情况下,协议会移动到下一轮,并且新的验证节点会propose一个该高度的块。需要两轮投票才能commit一个块;这两轮投票我们称为“pre-vote“ 和 “pre-commit“。在每一轮投票中需要超过2/3的验证节点对同一个块pre-commit才能最后的块commit。

转:Tendermint 简介相关推荐

  1. tendermint+java_tendermint简介

    1.1 tendermint简介 tendermint是一个开源的完整的区块链实现,可以用于公链或联盟链,其官方定位 是面向开发者的区块链共识引擎: 与其他区块链平台例如以太坊或者EOS相比,tend ...

  2. USDT PHP开发包OmniTool简介

    2019独角兽企业重金招聘Python工程师标准>>> OmniTool开发包适用于为PHP应用快速增加对Omni Layer/USDT数字资产的支持能力,即支持使用自有Omni L ...

  3. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理

    1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...

  4. Docker学习(一)-----Docker简介与安装

    一.Docker介绍 1.1什么是docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源 Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植 ...

  5. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  6. TensorRT简介

    TensorRT 介绍 引用:https://arleyzhang.github.io/articles/7f4b25ce/ 1 简介 TensorRT是一个高性能的深度学习推理(Inference) ...

  7. 谷粒商城学习笔记——第一期:项目简介

    一.项目简介 1. 项目背景 市面上有5种常见的电商模式 B2B.B2C.C2B.C2C.O2O B2B 模式(Business to Business),是指商家和商家建立的商业关系.如阿里巴巴 B ...

  8. 通俗易懂的Go协程的引入及GMP模型简介

    本文根据Golang深入理解GPM模型加之自己的理解整理而来 Go协程的引入及GMP模型 一.协程的由来 1. 单进程操作系统 2. 多线程/多进程操作系统 3. 引入协程 二.golang对协程的处 ...

  9. Linux 交叉编译简介

    Linux 交叉编译简介 主机,目标,交叉编译器 主机与目标 编译器是将源代码转换为可执行代码的程序.像所有程序一样,编译器运行在特定类型的计算机上,输出的新程序也运行在特定类型的计算机上. 运行编译 ...

  10. TVM Operator Inventory (TOPI)简介

    TOPI简介 这是 TVM Operator Inventory (TOPI) 的介绍.TOPI 提供了比 TVM 具有更高抽象的 numpy 风格的,通用操作和调度.TOPI 如何在 TVM 中,编 ...

最新文章

  1. 剑指offer--day07
  2. php微服务架构设计模式,《微服务架构设计模式》读书笔记---第十一章:开发面向生产环境的微服务应用...
  3. 工具类--日期工具类
  4. 智伴机器人三级分销模式_有赞三级分销?有赞分销模式怎
  5. android 手机 与 python服务器_Python服务器与多种客户端(Python/Java/Android)之间的通信...
  6. 【液晶模块系列基础视频】3.2fatfs接口函数的使用2
  7. 高性能加速深度学习算法
  8. 2017年——秋招面试总结(网宿、美图)
  9. “日薄西山”的摩托罗拉推出VR头显,这回靠谱吗?
  10. c语言 链接器 原理,新手向的链接器知识普及/////就是这样的说
  11. docker.[7] 数据卷容器
  12. 【数据处理】——利用Excel VBA批量将详细地址转换成省市区三级行政区划
  13. Windows Server AppFabric安装教程
  14. 生成翻转棋子游戏数据
  15. dtu连接mysql_数据中心使用dtu远程连接oracel 9i数据库问题
  16. 如何设置论文目录左对齐?
  17. Nginx的 MIME TYPE问题导致的mjs文件加载出错的问题解决
  18. Angular+PrimeNg 分页器给后端传参分页
  19. 开方 质数_如何心算大数的高次开方(个人观点)
  20. php生成字母头像,Identicon:实现根据用户账号生成像素头像php版

热门文章

  1. MySQL的MVCC详细理解(2022版)
  2. appcompat_v7项目说明
  3. ASP.NET通过存储过程操作数据库
  4. Qt 鼠标移入QLabel、离开QLabel、点击QLabel显示不同的效果
  5. ipynb后缀文件怎么打开
  6. 详解设计模式:迭代器模式
  7. SpringCloud Alibaba实战第五课 链路追踪sleuth与skywalking
  8. 设备数据采集平台(物联网数据中台)是什么?有什么作用?
  9. 【浅谈git常用命令】
  10. Linux查看用户数、登录用户