Testnets
如何在主網上測試時間相關的合約?
在 Ganache 中,我
evm_mine
用來模擬時間的流逝。假設區塊時間足夠準確,在主網上或測試網上測試一些合約的最佳實踐是什麼,這些合約依賴於區塊數進行各種計算?
是否應該啟動一個
truffle test
程序,並且當一個依賴於時間的測試被命中時,只執行一個while指令並等待生成塊號?還是應該使用Oraclize之類的東西?
沒有辦法調整主網上的時間。如果您嘗試執行依賴於時間的測試,最好的選擇是使用 ganache。
另一個選擇是使用 Kovan,它是一個具有 <5s 塊時間的 PoA 測試網。這是一種模仿主網路的好方法,同時仍然獲得更快的阻塞時間。
最後,聽起來您所做的似乎與時間無關,而是與塊數有關。Ganache 確實使用區塊號來處理交易,儘管還不是很清楚。如果它們符合您的需要,您可以使用這些塊編號。
根據評論更新
為了將您目前在 gamache 上的測試應用到測試網路,您需要添加一個 waitForBlock 函式來等待特定的塊號。正如您在問題中提到的,您可以簡單地將其寫入 while 循環。
您可以使用過濾器來等待更改。