2019独角兽企业重金招聘Python工程师标准>>>

最近在做一个区块链系统的底层设计,有一个绕不开的问题是,就是我的系统能提供多少个tps。为此,我收集了一些现有区块链(当然也包括DAG等分布式账本技术)的tps数据。

1

ripple

号称转账神器的ripple,转账快速,并且手续费也很低,所以我本人经常用它来做不同交易所之间的转账。从ripple官网的数据看,大概有1500tps:

xrp的tps数据,来自ripple官网

2

Eth

以最高的日期算,当日的tps是1349890/24/60/60.0=15.616666666666667。

eth的tps数据,来自etherscan.io

3

steemit

来自2018年4月的数据,在最高点是180万左右,算下来tps是20.8。

4

bitshares

bitshares这个就比较有趣了,因为它在15年时候就号称自己10万tps了,而btc/eth等还在10附近玩耍,查着四个数量级呢,那么它这10万tps是如何得来的呢?

bts做tps压测的方式

大意是,我们创建了20万个账户,各执行5此次操作,加起来就是100万次操作。在没有任何签名的情况下,我们每秒钟能处理18万次操作,用了更好的cpu之后,能再提高25%,因为我们认为10万tps是妥妥的。还有啊,现实环境中的nasdaq也才6万tps啊,他们的目标也才10万tps。而我们已经轻松的达到了10万tps。另外,我们在有签名的情况下,也能每秒轻松的达到2000 tps(您是不是有疑惑,为何瞬间从10万降到2000了?)。而在当前发布的版本中,我们人为的限制到了1000tps。

我们就会有疑惑了,2000tps是如何测试得到的呢?是否考虑到了p2p网络的延迟呢?看样子,似乎并没有考虑这一点,可能仅仅是内网几台witness(或者说记账节点吧)之间的延迟呢?

bts的testnet如何获得了20tps的超高性能

这篇文章有一部分介绍了bts 2.0发布时,在测试网络(p2p网络)测出了20tps的超高性能,并花了大量篇幅来解释为什么离号称的10万tps相差甚远。并不是我们处理交易的能力不行,而是p2p网络太慢了,要达到10万tps,需要千兆低延迟网络连接,并且需要有30MB的网络吞吐,而我们测试环境都只有一些低端的vps节点。

看到才发现,bm这个人真是大忽悠啊。bts一方面采用dpos(从而是中心化的),只有少数节点拥有记账权,在一个节点记账的时候,需要其他节点对它生产的块进行签名,这必然是要走p2p网络的,于是bts开发者大胆假设网络是可以优化的,毕竟想要成为记账节点,怎么也得下点血本来优化一下网络吧。而btc和eth则要分散的多,并且有众多的小节点,区块扩散要慢得多。

号称百万tps的eos,最终又能到多少tps呢?看到数据的时候,还是要多看看多想想,数据是如何得来的,测试的方式是否科学。

5

使用DAG技术的iota

这里引用的一条tweet,说iota在250个节点的网络中能到100tps这个数量级,并且可以发起1000tps的测试(iota应该是节点越多、交易越多反而tps越大):

6

btc/bts/steemit/eth统一比较

btc/bts/steemit/eth每日交易量

整个市场在2018年1月达到最高,从上面的eth图也可以看出,在1月份之后,每日交易量下跌非常明显,说明市场非常低迷。包括bm本人也承认steemit的每日交易量不到2million,也就是tps不到25,而实际上,峰值的tps也不到20,而是只有惊人的18.3个。而号称tps很高的bts,也只有13个tps而已,连测试网络的20个都没有达到。

7

总结

目前区块链系统(不考虑xrp这种中心化的分布式账本和采用DAG的iota),每天的交易量最高的都不超过180万,tps最高也就20附近。我看到微信钱包在最高峰时候能处理20万tps,支付宝在双11的时候时为12万tps,而bts或者说eos之类的分布式p2p系统就号称10万、百万tps,确实有点故意吸引人眼球的意思。

我们以steemit为例,他每天处理了180万笔交易,这个量级对于一个互联网应用而言是很少的,但是却也依然运行良好,原因可能就在于,tps其实指代的都是写入操作,对于steemit而已,很多请求都是读取操作,如果仅仅是读取区块链,那么任何一个全节点都可以读取,这个做sharding就非常方便了。

我们还要想一个问题,公链是否真的那么有价值?现在很多区块链应用都是在eth或者eos之类的公链上开发的,导致eth和eos价格都炒得非常高。但是公链本身性能都不太好的情况下,区块链应用又如何能够跑起来呢?加上一点点攻击就能把整个网络堵死,可用性就太差了。

内容来源:知乎

原文作者: 老污

原文链接:http://t.cn/RDfq00d

Blockathon|48小时极客竞赛,区块链马拉松等你挑战(成都)

时间:2018年9月14-16日

地点:成都高新区天府五街200号菁蓉国际广场2号楼A座12楼中韩互联网+新技术孵化器

  • 招募50名开发者(识别下图二维码或点击“阅读原文”即可报名)

  • 报名费100元为参赛押金,参赛者个人原因不能到场参加活动概不退款;参赛者全程参与活动,待活动结束后现场退还。9月14日18:00开始第一次签到,9月15日和16日每天早上都要记得签到哦。

  • 主办方免费提供2天的食物、饮料,并为每一位参会者准备一件文化衫

转载于:https://my.oschina.net/u/3782027/blog/1941712

区块链100讲:区块链的TPS性能相关推荐

  1. 区块链100讲:带你走进EOS的存储系统

    2019独角兽企业重金招聘Python工程师标准>>> 1 海量数据 在一个完全去中心化的区块链系统中,每个节点如果想验证某一笔交易是否正确,则必须下载完整的区块链数据,随着时间的推 ...

  2. 区块链100讲:据说,80%的人都搞不懂哈希算法

    2019独角兽企业重金招聘Python工程师标准>>> 前面的<区块链100讲>介绍了区块链.算力.挖矿等,几乎每一讲都会提到一个词哈希(Hashing).聊到区块链的时 ...

  3. 区块链100讲:不做码农做矿工,该怎么和爹妈解释

    说起区块链和比特币的时候都会提到一个词"挖矿",还有个角色叫"矿工",等等,区块链不是属于技术圈吗?怎么和挖矿扯上关系了?只听说过管IT圈儿的人叫码农,怎么还有 ...

  4. 区块链100讲:梅克尔树保障区块链数据不可篡改,想换根就要砍树!

    2019独角兽企业重金招聘Python工程师标准>>> 区块链100讲上期我们讲了哈希算法和公开密钥算法,说到哈希算法提到了一个名词"Merkle tree",梅 ...

  5. 区块链100讲:Truffle——一个更简单的部署智能合约的方法

    本期<区块链100讲>我们将介绍一个更简单的部署智能合约的方法:Truffle. 1 什么是Truffle ? Truffle是针对基于以太坊的Solidity语言的一套开发框架.本身基于 ...

  6. 区块链100讲:V神·以太坊上的分片

    五月初,以太坊创始人"V神"Vitalik Buterin表示,以太坊的内部扩展解决方案--分片已经接近完成.以太坊分片旨在将以太坊分成几个并发网络,从而使整个网络更加高效地扩展, ...

  7. 区块链100讲:能够证明你是你的数字签名和多重签名

    随着区块链相关技术的创新和突破,很多有形或无形资产都将实现去中心化,数字资产将无处不在.要保护数字出版物版权,实现去中心化,解决业界多年来版权保护不力的难题.无论数字资产,还是数字出版版权,都是有明确 ...

  8. 区块链100讲:从村里的账本来看什么是区块链

    2019独角兽企业重金招聘Python工程师标准>>> 很久以前就有个想法,把区块链的技术和概念整理成一个体系化的知识图谱,方便大家查阅和学习,大话已说出去很久,却一直没有践行(pa ...

  9. 区块链100讲:Vitalik Buterin-以太坊Casper惩罚条件的最小化

    1 什么是Casper **Casper是一种基于保证金的经济激励共识协议(security-deposit based economic consensus protocol).**协议中的节点,作 ...

  10. 区块链100讲:从宠物商店案例看DAPP架构和WEB3.JS交互接口

    1 文章摘要 [本文目标] 了解ETH生态下DAPP去中心化应用程序的框架和交互流程,了解WEB3.JS的作用和接口函数. [前置条件] 完成了<技术小白如何开发一个DAPP区块链应用(以宠物商 ...

最新文章

  1. Directx 顶点和顶点缓存
  2. 华为路由器RIP协议通信的配置
  3. 【转】U3D手游《苍穹变》性能优化经验谈
  4. opensips和pbx之间的连接
  5. 判断直线与线段是否相交,相交则输出交点x轴坐标
  6. 50张图,带你认识大学各专业
  7. 【转】敏捷开发,你真的做对了吗?
  8. 【CodeForces - 920E】Connected Components? (dsu,补图连通块,STLset+map,bfs 或bitset)
  9. 功能引导 android,Flutter实现App功能引导页
  10. 清华AI画虾师,想当现代齐白石
  11. OpenProj打开不了或者提示”Failed to load Java VM Library”的错误的解决方案
  12. 智能蓝牙技术原理及设计方案集锦
  13. Adobe完全卸载工具
  14. 安装docker多系统操作示列(window为例)
  15. 用计算机拜年祝福语,适合拜年发的朋友圈祝福语
  16. 各银行信用卡延误险整理
  17. HEALTH_WARN 1 filesystem is degraded,一直在rejoin状态
  18. android平板刷成windows,安卓系统的平板电脑可以刷成windows系统吗?
  19. Shell中显示彩色二维码
  20. C++控制输出的字体颜色

热门文章

  1. mysql 屏蔽索引_mysql强制索引和禁止某个索引
  2. PHP随机静态页面生成系统源码雨尘SEO系统
  3. 黑侠百度URL批量推送程序
  4. 此计算机无法设置密码,电脑该怎么设置密码
  5. 超级抖音腾讯视频V3.6.0小程序源码 前端+后端 支持视频采集和上传
  6. 短网址缩短和还原综合源码
  7. IDEA配置Docker一键部署SpringBoot项目(企业级做法)
  8. 怎么去掉ECSHOP的Powered by ECShop版权信息
  9. 李彦宏:百度计划开发移动操作系统
  10. .NET 开发系统 -知识 点