所謂同構多鏈框架,顧名思義就是有多條鏈,每條鏈上都運行相同的程序。不同用戶的請求會發到不同的鏈上進行處理。
當 A、B、C、D同時發起請求,比如有 A->B,A->C,A->D , 同時有 B->C, C->D,D->E。A、B、C、D根據路由規則落到不同的鏈上,四條鏈可以并行進行處理,如果一條鏈每秒的打包請求并落區塊的速度是 1000,那么上千條鏈,就可以達到百萬 TPS。
對于普通請求,消耗的鏈克 gas是固定的,這種鏈間的處理是相對容易的,而支持智能合約,需要一些額外的處理。因為要防止惡意的合約或者合約本身的 bug導致占用大量資源,所以需要根據合約執行情況扣除相應的鏈克 gas。
消耗的鏈克 gas是需要從請求發起方的賬戶里扣除的,而真正執行合約的是在合約所在的另一條鏈,所以最終需要的具體數量,在發起請求方所在鏈入鏈這筆請求的時候尚未可知,這怎么辦呢?
解決辦法是在發起方所在鏈扣除請求中傳入的 gasLimit值,也就是用戶指定的上限值,這個請求入塊后同步到合約所在鏈,合約執行后請求入塊能知道這筆請求真正扣掉的通證數量,再通過鏈間通信將鏈里面入塊的合約調用請求同步到發起方所在鏈,發起方確認合約鏈的區塊數據,并把多扣掉的通證退回給發起方。這些對賬戶余額的操作在鏈上都有相應的操作記錄寫入,方便對賬。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。