Transactions

如何估計智能合約交易的平均時間

  • October 5, 2020

我在乙太坊區塊鍊網路上創建了一個去中心化的應用程序。該應用程序從區塊鍊網路上的不同地址接收數據,並將這些數據保存在區塊鍊網路中。此數據作為參數發送,我如何計算這些事務的響應時間(以毫秒為單位)。例如:當交易數量 = 1 且交易數量為 100,200,300 時,從提議的智能合約讀取數據的響應時間(以毫秒為單位)等等。

據我了解,您正試圖估計呼叫智能合約(特別是讀取呼叫)所花費的時間。換句話說,區塊鏈處理一筆交易需要多長時間?

讀取和寫入呼叫都作為交易發送,但是,後者需要挖礦和成本,因為它會改變區塊鏈的狀態並需要共識,而前者不需要。讀取呼叫只是一個數據庫查找,它從區塊鏈中獲取請求的值,由您連接到的區塊鏈節點在本地執行。

(我假設您已經建立了與區塊鏈節點的連接並且您能夠發出呼叫)

對於不需要挖礦的讀取呼叫: 您必須記錄呼叫智能合約(即發出 RPC 呼叫)之前的時間,讓我們稱之為t0,並記錄節點響應該呼叫之後的時間(即當返回請求的值時),讓我們稱之為t1

花費的時間很簡單,t1 - t0。

對於需要探勘的寫入呼叫: t0 應在發送交易之前擷取,t1 應在該交易的確認消息返回時擷取。

如上,所用時間為 t1 - t0。

如何對其進行程式取決於您使用的程式語言。例如,在 Golang 中,您可以使用 t0 = time.Now() 記錄特定點的時間,然後使用 time.Now().Sub(t0) 獲取持續時間(t1 - t0)。

引用自:https://ethereum.stackexchange.com/questions/87996