走進區塊鏈:迅雷鏈百萬TPS背後的故事
12月8日,深圳終於進入冬天模式,飄起寒風。鏈創未來-迅雷鏈技術沙龍的現場卻比之前五期還要火爆,現場300多名開發者濟濟一堂,迎來這場別開生面的技術盛宴。作為大家的老朋友,迅雷鏈研發負責人張慧勇為大家揭祕迅雷鏈百萬TPS背後的故事,獨有的同構多鏈框架技術,吸引了現場的關注。
為什麼要追求百萬級的TPS?
針對開發者提出兩個疑問:迅雷鏈百萬級TPS的效能對於目前的交易需求來說是否真的有必要?以及,實際應用中,是否真的達到了如此高的效能?
張慧勇首做出肯定的回答,百萬級的TPS是非常有必要的。如果我們相信區塊鏈是與網際網路同等量級的基礎服務,那就一定需要一個非常高的交易處理能力,一方面是要滿足應用對TPS能力的低成本要求,也就是效能越高,單位能力的成本就越低;另外,只有足夠高的效能,才能支撐具備想象空間的各種應用,不能讓應用實現的可能,受制於底層效能的瓶頸。
在他看來,百萬級的TPS並不能算“完美”效能。因為一旦有大規模的落地應用,其併發交易處理請求是非常驚人的。張慧勇以最簡單的運動應用舉例,執行時,應用需要記錄人的位置、心跳等指標的資料狀態、運動頻率等。資料能夠及時同步到鏈上是所有使用者的根本需求,假如有1萬人同時使用,就會產生高達幾十萬的併發請求。如果使用者規模繼續擴大,百萬級的TPS同樣會面臨效能不足。
變通的處理首發則是,在較低TPS的情況上實現高併發的資料上鍊。解決原理是設立一箇中繼伺服器,所有實時資料,先上傳伺服器,再分批次地寫到區塊鏈,這樣可以大大降低對主鏈效能的要求。但問題是,中繼伺服器的存在是違背區塊鏈原理的,有這樣一箇中心化的節點存在,整條鏈的可信度都會下降。所以綜合來看,百萬級乃至更高的TPS非常有必要。
如何實現百萬級TPS?
迅雷鏈同構多鏈框架
同構多鏈框架帶來了效能的提升,加強了業務的可擴充套件的,並縮小了儲存需求。多鏈是指多條鏈,不同使用者的資料會落到不同的鏈上,同構就是每一條鏈用的程式是一樣的。單個節點只需負責單一鏈上的相關資料,不僅對儲存的需求變小,同時效能得到了極大提升。而且由於多鏈是可以無限擴充套件的,再加上了同構的特性,由此又得到效能上的擴充套件。
增加多鏈時,效能的損耗幾乎可以忽略不計,整體上呈線性增長,並不會因為同時執行多條鏈,而導致效能受損。目前,迅雷鏈獨有的同構多鏈架構已得到驗證,引領了行業趨勢。張慧勇認為,同構多鏈會成為區塊鏈技術的未來方向。
為什麼選擇PBFT共識演算法?
PBFT結構示意圖
迅雷鏈選擇PBFT演算法的原因,其一,商業級的應用難以選擇隨機性的功能演算法,使用者無法接受區塊鏈產生的分叉。比如,購買時下單,使用者很難接受賣家一會說這個定單交易成功,一會又說不成功。或明明買到了,最後交易沒有達成。其二,商業級應用都需要秒級的確認能力。隨機選擇演算法的區塊鏈,確認需要少則幾分鐘,多則數小時乃至一天,顯然無法實現商用。
PBFT就是一種控制類的演算法,它與隨機選擇演算法不同,在一致性和秒級確認上有突出優勢,能夠保證不分叉、秒級出塊,具備了商用的基本條件。
不過PBFT演算法也存在缺點,就是會面臨停機可能性,當有1/3的節點故障時,就會導致全鏈停機。但是這個問題,正好用迅雷鏈的特性來加以解決,玩客雲構建的共享計算為迅雷鏈提供的150萬個共享節點,正因為有如此大的量級,所以迅雷鏈不會面臨節點不夠的問題,可以從容擇優選取優質節點來作為記賬節點,保證整個鏈永不停機。
迅雷鏈的服務層上增加了哪些東西?
在應用實際開發過程中開發者對區塊鏈技術還比較陌生,尤其對區塊鏈不夠熟悉。為了降低開發者門檻,更易使用,迅雷鏈在服務層上增加了很多特色內容。
1、合約中心
迅雷鏈提供的智慧合約模板,把原本需要從頭設計開發的區塊鏈智慧合約,整理成一個個可以輕鬆呼叫的模板,與當前通用的IT呼叫方式類似,以方便開發者接入。種類豐富,覆蓋大部分常見的業務場景,未來還將繼續增加模板型別。
2、迅雷鏈檔案系統(TCFS)
迅雷鏈推出的檔案系統,即知名的TCFS,解決了大檔案、大資料上鍊儲存的問題。在此之前,區塊鏈上鍊儲存的成本非常高,導致很多應用無法實現。TCFS系統不但解決了鏈上資料儲存的技術問題,更讓儲存成本變得可以接受,成為區塊鏈應用能夠落地的前提之一。
3、迅雷鏈外圍輔助系統
為降低區塊鏈應用開發門檻,迅雷鏈推出多種外圍輔助系統,其中包括區塊鏈虛擬機器的更新、業務流程的設計、技術人才的招聘和培訓,以及對區塊鏈改造的諮詢建議等。
張慧勇表示,迅雷鏈希望通過多樣的輔助系統,為那些想要接入區塊鏈、使用區塊鏈的傳統企業減負,為他們賦能,讓企業真正的把區塊鏈“用”起來。