#drand #random

drand_core

drand 客户端库

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

MIT 许可证

67KB
1.5K SLoC

drand-core: Rust 对 drand 的实现

Documentation License crates.io

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-gnuarmv7-unknown-linux-gnueabihfaarch64-unknown-linux-gnuwasm32-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