Pact 的形式验证变慢了吗?
Formal Verification slow down with Pact?
我打算在我的智能合约中实现这段代码:
(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)
)
我想知道,既然我正在实施形式化验证,那么一旦我将这个合约部署到任何一条链上,是否会有任何延迟或变慢?还是计算一次并存储起来?
(我知道我的代码给出了正确的答案,我必须在事后进行调整)
不,它不会影响链上的延迟或任何其他性能。
形式化验证的目的是为了证明合约无BUG且可部署,因此在部署前运行不在链上
仅供参考,当您在 pact-web 上开发时,默认情况下 运行 是正式验证。但是,如果您在本地机器上开发合约,则需要 运行(验证“合约名称”)到 运行 形式验证,这是所有计算发生的时间。
我打算在我的智能合约中实现这段代码:
(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)
)
我想知道,既然我正在实施形式化验证,那么一旦我将这个合约部署到任何一条链上,是否会有任何延迟或变慢?还是计算一次并存储起来?
(我知道我的代码给出了正确的答案,我必须在事后进行调整)
不,它不会影响链上的延迟或任何其他性能。
形式化验证的目的是为了证明合约无BUG且可部署,因此在部署前运行不在链上
仅供参考,当您在 pact-web 上开发时,默认情况下 运行 是正式验证。但是,如果您在本地机器上开发合约,则需要 运行(验证“合约名称”)到 运行 形式验证,这是所有计算发生的时间。