pact-lang - 正式验证因 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)
)
我想知道,由于我正在实施形式验证,一旦我将此合约部署到任何链上,是否会有任何延迟或减速?还是计算完成一次并存储起来?
(我知道我的代码会吐出正确的答案,事后我必须调整)
解决方案
不,它不会影响延迟或链上的任何其他性能。
形式验证的目的是证明合约是无缺陷且可部署的,因此它是在部署之前运行而不是在链上运行。
仅供参考,当您在pact-web上开发时,它默认运行形式验证。但是,如果您在您的机器上本地开发合约,您需要运行 (verify 'contract-name) 来运行形式验证,这是所有计算发生的时候。
推荐阅读
- css - 为什么我的过渡不适用于 Bootstrap-vue 中的警报 v-model?
- html - 与 chrome 不同,firefox 不会正确呈现字体粗细
- java - 来自库 lettuce-core 的客户端 Lettuce 在哪里存储数据?
- sql - 从多个相同日期中选择一个值
- android - 为什么使用 ImageBackground 时按钮无法点击?
- ios - iOS 深色模式。用户界面样式在后台输入时来回更改
- python - 如何在 Django 中执行 Scrapy?
- css - 使 CSS 标题块扩展到页面的两端
- css - 如何在一行中使用卡片来实现这种引导布局?
- html - 下载 MP3 - WGET 有效,CURL 无效