10 个版本
0.1.17 | 2022 年 1 月 11 日 |
---|---|
0.1.16 | 2021 年 12 月 3 日 |
0.1.15 | 2021 年 10 月 27 日 |
0.1.14 | 2021 年 9 月 28 日 |
0.0.2 | 2021 年 7 月 30 日 |
#8 in #clvm
600KB
6.5K SLoC
Rust 语言对 clvm 的实现。
Python 轮文件
使用 maturin
构建用于 Python 的接口。首先,使用以下命令安装到当前虚拟环境:
$ pip install maturin
直接使用以下命令在当前虚拟环境中构建 clvm_rs
:
$ maturin develop --release
在基于 UNIX 的平台上,您可以通过使用 OpenSSL 构建,在 sha256
操作中获得速度提升。
$ maturin develop --release --cargo-extra-args="--features=openssl"
要构建轮文件,请执行以下操作:
$ maturin build --release --no-sdist
或
$ maturin build --release --no-sdist --cargo-extra-args="--features=openssl"
WASM
使用 wasm-pack
构建 npm 使用的 wasm pkg
文件。使用以下命令安装:
$ cargo install wasm-pack
然后执行以下操作构建:
$ wasm-pack build --release
测试
为了运行单元测试,请执行以下操作:
cargo test
模糊测试
clvm_rs
的模糊测试基础设施使用 cargo-fuzz。
有关在 rust 中设置模糊测试的文档可以在 此处 找到。
为了生成初始语料库(用于 run_program
模糊测试器),请执行以下操作:
cd fuzz
mkdir -p corpus/fuzz_run_program/
python gen_corpus.py
要开始,请执行以下操作:
cargo fuzz run fuzz_run_program --jobs=32 -- -rss_limit_mb=4096
但是,使用对您来说最合适的作业数量。
如果您在 clvm_rs
中发现问题,请参阅 漏洞赏金计划。
依赖关系
~1.5–4.5MB
~93K SLoC