Contract-Development
在智能合約中劃分還是不划分?
我需要我的契約來創建一個事件中兩個大整數(價格)輸出的比率。兩種變體哪個更好:
- 使用數學庫劃分合約;
- 輸出兩個整數並讓鏈外應用程序除法(例如,只需轉換為兩個浮點值以使其更易於程式)?
我認為 2 更好,因為 1 使用額外的氣體進行重型除法操作。對?
我不認為 Solidity 中的數字除法非常昂貴,但不確定。根據您的需要,我可能會更擔心精度:由於 Solidity 中沒有浮點數,因此除法必然會失去一些精度。
無論如何,如果可能的話,在鏈下進行。基本上你應該總是在鏈下做所有事情,除非有理由在鏈上做(比如信任問題)。鏈下劃分非常簡單,記憶體/性能不應該成為問題。