沒錯,分片技術就可以理解成你可以讓50個學生分為10組同來同時做題。這樣一來,就變成了一個簡單的算術題了,如果一個分片一秒鐘可以處理10個交易,那10個分片一秒鐘就可以處理100個交易。吞吐量(TPS)自然就能得到一定的提升。
TASchain的分片計算並行框架
Chiron共識機制下3000+的TPS已經可以足夠支撐大多數的商業化應用,但考慮到對超大規模應用的擴充套件性支援,TAS借鑑了Google的MapReduce和阿里雲批次計算思想,設計了分片並行交易執行框架,以進一步提高吞吐量。
在TAS的平行計算框架中,將重節點邏輯上分為計算節點和提案節點。也就是說,在一個鑄塊週期裡,根據上一區塊產生的隨機數可以選定多個提案節點(詳見Chiron共識機制),而根據簽名與交易發起人的地址的運算,選定的節點稱之為計算節點。計算節點負責執行交易,提案節點負責塊的生成。
小T解讀
TASchian的分片計算過程可以這樣理解,一個班級要大掃除,班主任根據以往的值日情況,把同學們分成了若干個掃地組,掃地組負責各個角落的清潔工作。等大家都掃完了,班主任確認這次大掃除的獎品。
其中有幾個概念小T再為各位做進一步解釋。
交易分片:每當一筆交易進入網路時,TAS會根據交易傳送者的地址和上一塊的簽名,將交易透過VRF輸出隨機傳送到不同的分片中,這一過程被稱為交易分片。並且相同的交易發起人發起的多筆交易,都將落到同一個計算節點。這個設計既提高了效率,又保證了用最小時間視窗即可驗證雙花問題。
交易執行:計算節點會根據當前賬戶狀態執行交易,同時記錄賬戶狀態變化等情況。對於交易的執行往往需要依賴狀態資料,例如賬戶餘額、合約內儲存的使用者資料等。在TAS的設計中,計算節點儲存了完整的狀態資訊,一旦接受到一個新塊,就會更新本地狀態。所以計算節點本地即可完成交易的執行,無需進行跨鏈等複雜互動。
合併:對於每一筆交易的執行結果,計算節點提交給提案節點的內容包括賬戶狀態樹根hash(簡稱根hash)、交易影響的賬戶、賬戶狀態的差值。提案節點遍歷收到的所有結果,對比本地根hash與結果中的根hash,篩選出交易結果,稱之為候選集。提案節點將候選集中的賬戶狀態差值,合併到本地賬戶之上,生成最終的賬戶狀態。
驗證:驗證組接收到候選區塊後,以組協作方式來完成候選區塊驗證,並透過門限簽名方式在達成組內共識的同時也產生當前輪的真隨機數R1,在新塊B1中寫入R1,將新塊B1向全網廣播。
與有著“分片之王”的Zilliqa相比,TAS系統下驗證組內所有成員收到門限簽名後均能恢復出最終組簽名,不需選定某位成員成為Leader,完成最後的多重簽名聚合操作,系統的魯棒性以及安全性要優於Zilliqa。