无符号整数的 NEAR 和安全数学
NEAR and safe math on unsigned integers
在以太坊 Solidity 上,处理无符号整数余额时需要使用一个名为 SafeMath
的特殊库。这是因为 integer overflow exploits.
用 Rust 编写的 NEAR 智能合约是否需要类似的缓解措施?还是 Rust 会自动捕获溢出并恐慌?
默认情况下,Rust 为调试版本启用溢出检查,但在优化发布版本中禁用。您可以在 Cargo.toml
中轻松调整它,方法是在 profile.release
部分设置 overflow-checks
:
[profile.release]
# ...
overflow-checks = true
NEAR 核心合约 opt-into the paranoid mode.
即使您明确选择使用 saturating_*
or checked_*
方法,仍建议进行额外检查。
在以太坊 Solidity 上,处理无符号整数余额时需要使用一个名为 SafeMath
的特殊库。这是因为 integer overflow exploits.
用 Rust 编写的 NEAR 智能合约是否需要类似的缓解措施?还是 Rust 会自动捕获溢出并恐慌?
默认情况下,Rust 为调试版本启用溢出检查,但在优化发布版本中禁用。您可以在 Cargo.toml
中轻松调整它,方法是在 profile.release
部分设置 overflow-checks
:
[profile.release]
# ...
overflow-checks = true
NEAR 核心合约 opt-into the paranoid mode.
即使您明确选择使用 saturating_*
or checked_*
方法,仍建议进行额外检查。