14 个不稳定版本 (3 个破坏性更新)
0.5.4 | 2023年7月5日 |
---|---|
0.5.3 | 2023年6月1日 |
0.5.2 | 2023年3月9日 |
0.5.1 | 2023年2月1日 |
0.2.1 | 2022年12月8日 |
#379 in 密码学
每月117次下载
27KB
487 行
拉纳 🐸
挖掘可用于 nostr 的公钥。
这是基于 nip13 示例。
提供所需的难度或虚荣前缀作为参数。见下文。
要求
- 您需要 Rust 版本 1.64 或更高版本才能编译。
安装
使用 Cargo 安装(需要 ~/.cargo/bin 在 PATH 中)
$ cargo install rana
编译并执行它
要在 Ubuntu/Pop!_OS/Debian 上编译,请安装 cargo,然后运行以下命令
$ sudo apt update
$ sudo apt install -y cmake build-essential
然后克隆仓库,构建并运行
$ git clone https://github.com/grunch/rana.git
$ cd rana
$ cargo run --release
默认情况下,它将生成一个难度为 10
的公钥,但您可以使用适当的参数自定义其难度或虚荣前缀。
用法
Options:
-d, --difficulty <DIFFICULTY>
Enter the number of starting bits that should be 0. [default: 10]
-v, --vanity <VANITY_PREFIX>
Enter the prefix your public key should have when expressed
as hexadecimal.
-n, --vanity-n-prefix <VANITY_NPUB_PREFIXES_RAW_INPUT>
Enter the prefix your public key should have when expressed
in npub format (Bech32 encoding). Specify multiple vanity
targets as a comma-separated list.
-s, --vanity-n-suffix <VANITY_NPUB_SUFFIXES_RAW_INPUT>
Enter the suffix your public key should have when expressed
in npub format (Bech32 encoding). Specify multiple vanity
targets as a comma-separated list.
-c, --cores <NUM_CORES>
Number of processor cores to use
-r, --restore <MNEMONIC_PHRASE>
Restore from mnemonic to public private key
-g, --generate <WORD_COUNT>
Word count of mnemonic to be generated. Should be either 12,18 or 24
-p, --passphrase <WORD_COUNT>
Passphrase used for restoring mnemonic to keypair
-q, --qr
Print QR code of the private key
示例
$ cargo run --release -- --difficulty=20
# Vanity only accepts hexadecimal values. DEAD corresponds to https://www.hexdictionary.com/hex/DEAD, not an example username string.
$ cargo run --release -- --vanity=dead
$ cargo run --release -- --vanity-n-prefix=rana
$ cargo run --release -- --vanity-n=rana,h0dl,n0strfan
$ cargo run --release -- -n=rana,h0dl,n0strfan
$ cargo run --release -- --vanity-n-suffix=ranaend
# You can combine prefix and suffix
$ cargo run --release -- -n=rana,h0dl,n0strfan -s theend,end
# Generate key pair with 12 words mnemonic
$ cargo run --release -- -g 12
# Restore key pair from mnemonic. Use quotes and separate each word with a space
$ cargo run --release -- -r "congress evoke onion donate fantasy soccer project fiction envelope body faith mean"
如果您已通过 cargo install
安装
$ rana --difficulty=20
$ rana --vanity=dead
$ rana --vanity-n-prefix=rana
$ rana -n=rana,h0dl,n0strfan
$ rana -n=rana,h0dl,n0strfan -s theend,end
请注意,您不能同时指定难度和虚荣前缀。此外,您的要求越多,达到满意公钥所需的时间就越长。
一次性搜索多个虚荣目标
指定多个 vanity-n-*
目标允许您利用为生成每个新的 npub
候选人已经完成的工作。搜索候选 npub
以查找附加目标是极快的,因为它只是一个简单的字符串比较。
从统计学的角度来看,搜索 rana,h0dl
应该比搜索 rana
然后单独搜索 hodl
所需的时间短一半。
依赖项
~13–27MB
~360K SLoC