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

Apache-2.0 许可

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