这个问题在这里已有答案:
我正在尝试使用secp256k1库生成密钥对 .
在官方文档中我找到了这段代码:
use rand::OsRng;
use secp256k1::{Secp256k1, Message};
let secp = Secp256k1::new();
let mut rng = OsRng::new().expect("OsRng");
let (secret_key, public_key) = secp.generate_keypair(&mut rng);
我把它放在我的_13514中:
[dependencies]
rand = "0.6.1"
[dependencies.secp256k1]
features = ["rand"]
version = "0.12.0"
但是,我收到此编译错误:
secp.generate_keypair(&mut rng); | ^^^^^^^^^^^^^^^^ trait secp256k1 :: rand :: Rng未实现std :: result :: Result <rand :: rngs :: OsRng,rand :: Error>
我是Rust的新手,我正在努力理解它,但我发现它非常困难 . 请解释一下我的错误 . 谢谢!
1 回答
这似乎是一个箱子版本不匹配 . 最新版本的
rand
箱子是0.6.1
,但secp256k1 0.12.0
取决于更旧的版本 -0.4.3
.快速解决方法是使用旧版本的
rand
:并考虑要求
secp256k1
的作者更新其依赖项 .我发现这种方式的方法是搜索
Cargo.lock
文件,该文件包含应用程序使用的所有依赖项的实际版本 .