區塊鏈30fbric
Ⅰ 智慧谷區塊鏈的運算速度
區塊鏈速度問題
並⾏計算與熱點賬戶
區塊鏈的運⾏速度會受多種因素影響,包括加密解密計算、交易⼴播和排序、共識演算法多階段提交的協作開銷、虛擬機執⾏速度等,以及受CPU 核數主頻、磁碟IO、⽹絡帶寬等硬體性能影響。
由於區塊鏈是先天的跨⽹絡的分布式協作系統,⽽且強調安全性、可⽤性、容錯性、⼀致性、事務性,⽤較復雜的演算法和繁瑣的多參與⽅協作來獲得去信任化、數據不可篡改以及交易可追溯等特出的功能優勢,根據分布式的CAP原理,在同等的硬體資源投⼊的前提下,區塊鏈的性能往往低於中⼼化的系統,其表現就是並發數不⾼,交易時延較明顯。
根據分布式的CAP原理,在同等的硬體資源投⼊的前提下,區塊鏈的性能往往低於中⼼化的系統,其表現就是並發數不⾼,交易時延較明顯。 我們已經在多個⽅⾯對系統運⾏的全流程進⾏細致的優化,包括加密解密計算,交易處理流程,共識演算法,存儲優化等,使我們的區塊鏈平台在單鏈架構時,運⾏速度達到了⼀個較⾼的性能⽔准,基本能滿⾜⼀般的⾦融業務要求。
同時我們也意識到,對於⽤戶數、交易量、存量數據較⼤或可能有顯著增長的海量服務場景,對系統提出了更⾼的容量和擴展性要求,單鏈架構總是會遇到軟體架構或硬體資源⽅⾯的瓶頸。
類似Fa bric的架構-分組
br ic
⽽區塊鏈的系統特性決定,在區塊鏈中增加節點,只會增強系統的容錯性,增加參與者的授信背書等,⽽不會增加性能,只增加節點不能解決問題,這就需要通過架構上的調整來應對性能挑戰,所以,我們提出了「並⾏計算,多鏈運⾏」的⽅案。
並⾏多鏈的架構基本思路是在⼀個區塊鏈⽹絡⾥,存在多個分組,每個組是⼀個完整的區塊鏈⽹絡,有獨⽴的軟體模塊,硬體資源,獨⽴完成機構間共識,有獨⽴的數據存儲。
平台提供了基礎的分組的策略和實現、路由模塊、並⾏多鏈的構建⼯具等,如何根據業務場景設計不同的分組,如根據機構維度,⽤戶維度還是交易維度,甚⾄是時間維度等,都可以再進⾏靈活的設計和操作。
根據可定製的路由規則,參與到區塊鏈⽹絡的所有機構和⽤戶,或者區塊鏈⾥不同類型的交易,可以接⼊到不同的分組⾥,每個分組處理特定的⼀部分交易,當機構或⽤戶數增加,交易量變⼤或者交易類型增加,都可以快捷的增加分組,並在路由策略⾥進⾏設定,將新增的流量分配到新的分組⾥。並⾏多鏈架構類似資料庫的分庫分表,或者互聯⽹服務的分SET模型,理論上只要投⼊⾜夠的資源,則系統能處理的流量沒有上限,整個系統具有⾜夠的彈性。
同時,⼀個區塊鏈⽹絡⾥的多個分組秉承邏輯和配置⾼⼀致性的原則,在商業規則、運營管理上都使⽤統⼀的策略,⽐如,每個分組上的智能合約是完全相同的,核⼼配置數據也是相同的,只有分組⾥的機構、⽤戶以及交易類型有所不同。
或者,雖然因為分組間功能設計的差異,導致不同分組上的智能合約有所不同,如⼀些分組是處理⽤戶在線交易,強調低時延性,其他分組處理機構間的對賬和清結算,關注批量數據處理,那麼部署在這些分組上的智能合約會有所不同,但都會通過所有機構以及區塊鏈的運營委員會共同確認,通過共識演算法保證部署實施的⼀致性,公開性,不可篡改性。
與Fabric的通道配置chaincode類似
[圖⽚上傳失敗...(image-bd8c12-1542642499169)]
在實現了區塊鏈分組後,分組之間有可能出現互相發⽣交易的場景,實際上就是不同區塊鏈系統之間的通信和交易,類似「跨鏈」的架構。在這個環節,需要關注的是分組間的通信可靠性,分布式事務完整性和⼀致性,以及分組之間可驗證、不可篡改、可追溯的互信性和交易安全性。
熱點賬戶
在此版本,我們根據⾦融業常見的「熱點帳戶」場景,提出了⼀種解決⽅案。
在很多⾦融交易場景⾥,可能會出現⼤量的獨⽴⽤戶帳戶和少數集中的⼀個或多個熱點帳戶產⽣交易的情況,如⽤戶往某個熱賣中的商戶付款,或者⽤戶頻繁從某個帳戶中提現或者獲取優惠券、積分或者其他資產等,由於⽤戶帳戶數量較⼤,
相對來說,這些被集中訪問的商戶帳戶,就被稱為「熱點帳戶」。熱點帳戶在完成和⽤戶的交易之外,還需要匯總所有的交易結果,計算總分帳,余額等,以便完成其特有的商業流程,如清結算等。
由於針對熱點賬戶的交易量較⼤且所有⽤戶都可能和它發⽣交易,我們考慮設計多個並⾏的交易鏈,⾸先將⽤戶按照⼀定的性能模型分組,每個針對⽤戶的分組⽽構建的獨⽴的區塊鏈組件,我們稱為「⽤戶交易鏈」。舉例:預估為每個分組100萬⽤戶,5個分組能容納500萬⽤戶(實際的每組能容納的⽤戶數需要根據業務場景實測評估),這樣我們構建了5個「⽤戶交易鏈」。
然後,熱點帳戶本⾝可以集中在⼀個熱點賬戶的鏈上(也可以分配在某⼀個分組⾥),熱點賬戶鏈主要⽤於准實時的匯總各「⽤戶交易鏈」的賬務,以管理熱點賬戶的總分帳,如總收⼊,總⽀出,帳戶准實時余額等。
為了⽀持⽤戶和熱點賬戶的交易,熱點帳戶在每個「⽤戶交易鏈」上,都會設⽴⼀個影⼦戶,⽤戶在實時交易時,實際上是和「⽤戶交易鏈」內的熱點帳戶影⼦戶發⽣交易,每次交易都在⽤戶交易鏈內部進⾏共識,不同的分組可以並⾏的進⾏交易計算,互不相關,⽤戶和影⼦戶之間的交易完成後,即意味著⽤戶和熱點帳戶的交易完成。系統的容量和⽤戶交易鏈的個數有關,⽤戶交易鏈越多,系統容量越⼤,⽤戶體驗得到了保障。
在⽤戶交易鏈上,熱點帳戶影⼦戶⾥只保存該分組⾥的總分帳,即⼀部分⽤戶進⾏交易後,影⼦戶⾥產⽣的收⼊、⽀出等,⽤戶交易鏈會定期構建⼀次鏈內賬⽬清算交易,並向熱點帳戶鏈發起⼀次跨鏈匯總交易,熱點帳戶鏈接收到交易之後,會到⽤戶交易鏈去驗證交易發送者的⾝份、匯總交易的存在性、賬⽬的真實性和准確性,驗證成功後,在熱點帳戶鏈上繼續進⾏賬⽬計算和⼊賬操作,流程結束。
整個過程會通過鏈間的中繼,進⾏多次雙向通信,且在不同的鏈上完整的執⾏共識確認。⽤戶和影⼦戶的交易可在⼀次共識的時間段內完成,時延較短,以滿⾜⽤戶體驗。熱點賬戶的總分帳計算為准實時完成,其時延取決於定時發起匯總交易的間隔,以及⽤戶交易鏈和熱點帳戶鏈的共識時間。系統會保證⽤戶交易鏈和熱點帳戶鏈之間的交易不錯、不亂、不漏,具備事務⼀致性和完整性。
並⾏多鏈計算是⼀個基礎的系統擴展⽅案,熱點帳戶的解決⽅案是⼀個場景性的實現,充分理解並⾏多鏈計算和跨鏈交易的實現後,可以針對有海量需求的各種⾦融交易場景,設計出不同的⽅案來,以解決具體的場景問題。
[圖⽚上傳失敗...(image-d21c82-1542642499169)]
¥
5.9
網路文庫VIP限時優惠現在開通,立享6億+VIP內容
立即獲取
區塊鏈速度問題
區塊鏈速度問題
並⾏計算與熱點賬戶
區塊鏈的運⾏速度會受多種因素影響,包括加密解密計算、交易⼴播和排序、共識演算法多階段提交的協作開銷、虛擬機執⾏速度等,以及受CPU 核數主頻、磁碟IO、⽹絡帶寬等硬體性能影響。
由於區塊鏈是先天的跨⽹絡的分布式協作系統,⽽且強調安全性、可⽤性、容錯性、⼀致性、事務性,⽤較復雜的演算法和繁瑣的多參與⽅協作來獲得去信任化、數據不可篡改以及交易可追溯等特出的功能優勢,根據分布式的CAP原理,在同等的硬體資源投⼊的前提下,區塊鏈的性能往往低於中⼼化的系統,其表現就是並發數不⾼,交易時延較明顯。
根據分布式的CAP原理,在同等的硬體資源投⼊的前提下,區塊鏈的性能往往低於中⼼化的系統,其表現就是並發數不⾼,交易時延較明顯。