11 个版本 (破坏性更新)
使用旧的 Rust 2015
0.9.0 | 2021 年 11 月 23 日 |
---|---|
0.8.0 | 2020 年 5 月 24 日 |
0.7.1 | 2020 年 5 月 13 日 |
0.6.0 | 2020 年 1 月 23 日 |
0.3.0 | 2018 年 3 月 31 日 |
#8 in #vanity
16KB
186 行
Stellar Vanity
一个简单的 CLI 工具,用于生成 Stellar 非凡地址。
非凡地址:类似于个性化车牌,非凡加密货币地址是一个地址,其开头(前缀)或结尾(后缀)包含特殊或有意义的短语。生成此类地址需要工作量。
基准测试
基准测试是通过使用 criterion.rs 通过 cargo bench 执行 benches/benchmark.rs 文件来完成的。
如何进行基准测试?
啊,非常感谢!我的计算能力有限(如果你也如此...不要尝试,可能需要很长时间且成本高昂)
git clone https://github.com/robertDurst/stellar-vanity-address-generator.git
cdstellar-vanity-address-generator
cargobench
基准测试配置
- 尽可能多的线程(见以下说明)
- 每种方法不同的样本数量
- 1 - 3 个前缀
注意:这使用了 num_cpus::get() 从 num_cpus 确定可用的最大核心数。如果不希望这样做,您将不得不手动设置此数字...或者如果您知道如何传递 CLI 参数给 cargo bench,可以打开一个 pr :)
如何使用库
use stellar_vanity::vanity_key::AddressGenerator, deserialize_public_key};;
let mut generator: AddressGenerator = Default::default();
let keypair = generator.find(|key| {
let public = deserialize_public_key(key);
// any conditions go here
public.as_str().ends_with("RUST") // e.g. find address with the "RUST" suffix
});
这将无限循环,直到找到具有所需属性的关键字。一旦找到非凡地址,将返回一个密钥对,可以使用 deserialize_public_key 和 deserialize_private_key 分别反序列化。注意,这是一个同步函数。
如何使用 CLI
cargo run -- [--postfix=<POSTFIX>] [--prefix=<PREFIX>] [-c=<NUMBER_OF_THREADS>]
Either `--postfix` or `--prefix` option is required, while thread count is optional.
例如,以下命令使用 8 个线程查找以 pizza 结尾的地址
cargo run -- -c=8 --postfix=pizza
--prefix
和 --postfix
选项将使用正则表达式进行搜索。您可能需要在命令行运行时将表达式用引号括起来。
以下示例使用 8 个线程查找以 joe 结尾的地址,地址前有一个数字。
cargo run -- -c=8 --postfix='[0-9]joe'
依赖项
约 7.5MB
约 131K SLoC