我打算在我的智能合约中实现这段代码:
(defun absBug:integer (num:integer)
;; This property fails
@model [(property (>= result 0))]
(if (= (- (* (- num 6) (+ num 11)) (* 42 num)) (* (* 64 7) 52270780833))
(- 1)
(abs num)
)
我想知道自从我实施正式验证以来,一旦将此合同部署到任何链上,会不会有任何延迟或速度变慢?还是一次完成计算并存储下去?
(我知道我的代码会给出正确的答案,事后我必须对此进行调整)
答案 0 :(得分:1)
不,它不会影响延迟或链上的任何其他性能。
正式验证的目的是证明合同是无错误且可部署的,因此它是在部署之前而不是在链上运行的。
仅供参考,当您在Electron docs上进行开发时,默认情况下它将运行形式验证。但是,如果您是在计算机上本地开发合同,则需要运行(验证'contract-name)来进行正式验证,这是所有计算都进行的时间。