1 个不稳定版本
0.0.2 | 2020年2月13日 |
---|
#27 在 #bls-signatures
19KB
378 行
bls-eth for Rust
这是一个 bls 的包装库,具有 BLS_ETH=1
。
如何构建 libbls384_256.a
从 bls-eth-go-binary/bls/lib 复制或根据 readme.md 构建它。
新闻
支持新的 eth2.0 功能。
bls-eth-rust | eth2.0 规范名称 |
---|---|
SecretKey::sign | 签名 |
PublicKey::verify | 验证 |
Signature::aggregate | 聚合 |
Signature::fast_aggregate_verify | 快速聚合验证 |
Signature::aggregate_verify_no_check | 聚合验证 |
检查函数
- verify_signature_order ; make
deserialize
检查顺序的正确性 - Signature::is_valid_order ; 检查顺序的正确性
- verify_publickey_order ; make
deserialize
检查顺序的正确性 - PublicKey::is_valid_order ; 检查顺序的正确性
- are_all_msg_different ; 检查所有消息是否彼此不同
如何测试
env RUSTFLAGS="-L<directory of libbls384_256.a>" cargo test
例如,在 Linux 上,
mkdir work
cd work
git clone https://github.com/herumi/bls-eth-go-binary
git clone https://github.com/herumi/bls-eth-rust
cd bls-eth-rust
env RUSTFLAGS="-L../bls-eth-go-binary/bls/lib/linux/amd64/" cargo test
如何运行基准测试
env RUSTFLAGS="-L../bls-eth-go-binary/bls/lib/linux/amd64/" cargo bench
许可证
修改后的新 BSD 许可证 http://opensource.org/licenses/BSD-3-Clause
作者
MITSUNARI Shigeo([email protected])
依赖项
~8–19MB
~250K SLoC