#public-key #nostr #mining #bech32 #pubkeys

bin+lib rana

Nostr 公钥挖掘工具

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 密码学

Download history 13/week @ 2024-03-10 2/week @ 2024-03-17 5/week @ 2024-03-31

每月117次下载

MIT 许可证

27KB
487

拉纳 🐸

Rana

挖掘可用于 nostr 的公钥。

这是基于 nip13 示例。

提供所需的难度或虚荣前缀作为参数。见下文。

要求

  1. 您需要 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