區塊鏈的TPS效能

區塊鏈的TPS效能

塊連線

有態度/有深度/有溫度

關注

區塊鏈的TPS效能

文 | 老汙

最近在做一個區塊鏈系統的底層設計,有一個繞不開的問題是,就是我的系統能提供多少個tps。為此,我收集了一些現有區塊鏈(當然也包括DAG等分散式賬本技術)的tps資料。

區塊鏈的TPS效能

1.ripple:

號稱轉賬神器的ripple,轉賬快速,並且手續費也很低,所以我本人經常用它來做不同交易所之間的轉賬。從ripple官網的資料看,大概有1500tps:

區塊鏈的TPS效能

xrp的tps資料,來自ripple官網

區塊鏈的TPS效能

2.eth:

以最高的日期算,當日的tps是1349890/24/60/60。0=15。616666666666667。

區塊鏈的TPS效能

eth的tps資料,來自etherscan。io

區塊鏈的TPS效能

3.steemit:

來自2018年4月的資料,在最高點是180萬左右,算下來tps是20。8。

區塊鏈的TPS效能

steemit的tps

區塊鏈的TPS效能

4. bitshares:

bitshares這個就比較有趣了,因為它在15年時候就號稱自己10萬tps了,而btc/eth等還在10附近玩耍,查著四個數量級呢,那麼它這10萬tps是如何得來的呢?

區塊鏈的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(或者說記賬節點吧)之間的延遲呢?

區塊鏈的TPS效能

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呢?看到資料的時候,還是要多看看多想想,資料是如何得來的,測試的方式是否科學。

區塊鏈的TPS效能

5.使用DAG技術的iota

這裡引用的一條tweet,說iota在250個節點的網路中能到100tps這個數量級,並且可以發起1000tps的測試(iota應該是節點越多、交易越多反而tps越大):

區塊鏈的TPS效能

區塊鏈的TPS效能

6.btc/bts/steemit/eth統一比較:

區塊鏈的TPS效能

區塊鏈的TPS效能

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

整個市場在2018年1月達到最高,從上面的eth圖也可以看出,在1月份之後,每日交易量下跌非常明顯,說明市場非常低迷。包括bm本人也承認steemit的每日交易量不到2million,也就是tps不到25,而實際上,峰值的tps也不到20,而是隻有驚人的18。3個。而號稱tps很高的bts,也只有13個tps而已,連測試網路的20個都沒有達到。

區塊鏈的TPS效能

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

文章釋出只為分享區塊鏈技術內容,版權歸原作者所有,觀點僅代表作者本人。

區塊鏈的TPS效能

END