15 个版本
0.0.16 | 2024 年 3 月 9 日 |
---|---|
0.0.15 | 2024 年 2 月 29 日 |
0.0.14 | 2023 年 8 月 30 日 |
0.0.8 | 2023 年 7 月 23 日 |
0.0.6 | 2023 年 3 月 22 日 |
#511 in 加密学
21 每月下载
用于 4 crates
67KB
1.5K SLoC
drand-core: Rust 对 drand 的实现
drand-core 是一个用于检索由 drand 信号标收集的公共随机数的库。它具有 HTTP 客户端和验证方法。
格式规范位于 drand.love/docs/specification。drand 是在 可扩展抗偏差分布式随机数 中设计的。
参考互操作性 Go 实现可在 drand/drand 找到。
目录
特性
- 检索并验证 drand 随机数
- 内置信号标时间估计
- 链式和非链式随机数
- 在 G1 和 G2 上进行签名验证
- 与 Go 和 JS 实现的互操作性
- wasm32 兼容库
下一步
- P2P 随机数检索
安装
环境 | CLI 命令 |
---|---|
Cargo (Rust 1.74+) | cargo安装 drand_core |
该库针对以下目标进行了测试: x86_64-unknown-linux-gnu
、armv7-unknown-linux-gnueabihf
、aarch64-unknown-linux-gnu
、wasm32-unknown-unknown
使用
从 https://drand.cloudflare.com
获取最新的信号标。
use drand_core::HttpClient;
// Create a new client.
let client: HttpClient = "https://drand.cloudflare.com".try_into().unwrap();
// Get the latest beacon. By default, it verifies its signature against the chain info, and correlates the returned round number with the chain genesis time.
let latest = client.latest()?;
代码示例在 drand_core/examples 中提供。您可以使用 cargo run --examples <name>
运行它们。
常用远程
ID | 远程 | 时间锁定加密 |
---|---|---|
quicknet-cloudflare |
https://drand.cloudflare.com/52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971 |
是 |
quicknet-pl |
https://api.drand.sh/52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971 |
是 |
mainnet-cloudflare |
https://drand.cloudflare.com |
否 |
mainnet-pl |
https://api.drand.sh |
否 |
drand_core
不包含默认的远程信号标。您应该选择适合您需求的。
更多信号标来源可在 drand 网站 上找到。
安全考虑
此库尚未经过审计。请自行决定是否使用。
许可证
本项目采用 MIT 许可证。
贡献
除非您明确声明,否则您提交的任何贡献都应按上述 MIT 许可证进行许可,不得附加任何其他条款或条件。
依赖项
~8-18MB
~298K SLoC