2 个版本
0.4.1 | 2023年4月2日 |
---|---|
0.4.0 | 2023年4月2日 |
#10 在 #vanity
28 每月下载量
1.5MB
620 行
monero-vanity
monero-vanity 是一个 GUI/CLI 工具,可以生成门罗币的自选地址,如下所示
44hintoFpuo3ugKfcqJvh5BmrsTRpnTasJmetKC4VXCt6QDtbHVuixdTtsm6Ptp7Y8haXnJ6j8Gj2dra8CKy5ewz7Vi9CYW
GUI
CLI
比较
生成器 | 所需硬件 | 正则表达式 | 计算种子 | 正常速度 | 正则表达式速度 |
---|---|---|---|---|---|
vanity-monero | CPU (x86, 32/64位) | 是 | 是 | 400k/sec | 170k/sec |
monero-vanity | CPU (x86, 64位) | 是 | 否 | 5.8million/sec | 5.8million/sec |
vanity-xmr-cuda | NVIDIA GPU (带 CUDA) | 否 | 否 | 8.1million/sec |
测试硬件:Ryzen 5950x, GTX 1660 Ti
估算
字符 | 示例 | 粗略时间估计 |
---|---|---|
1 | 44h |
即时 |
2 | 44hi |
即时 |
3 | 44hin |
即时 |
4 | 44hint |
2 秒 |
5 | 44hinto |
1 分钟,30 秒 |
6 | 44hintoj |
1 小时,30 分钟 |
7 | 44hintoja |
4 天,10 小时 |
8 | 44hintojan |
280 天 |
9 | 44hintojana |
49 年 |
10 | 44hintojanai |
3,151 年 |
11 | 44hintojanaiy |
100,852 年 |
12 | 44hintojanaiyo |
几乎永远不会 |
假设每秒5.8百万密钥的速度
GUI 使用
找到地址后,创建一个新的 Monero 钱包
输入地址、私钥和私用花费密钥
并验证您的钱包地址是否正确
CLI 使用
Usage: monero-vanity [--OPTIONS]
Options:
-t, --threads <THREADS> How many threads to use [default: HALF_THREADS]
-p, --pattern <PATTERN> Address regex pattern to look for
-f, --first Start from 1st character instead of: ^4.PATTERN.*$
-r, --refresh <REFRESH> How many milliseconds in-between output refreshes [default: 500]
-v, --version Print version
-h, --help Print help (see more with '--help')
示例 1 - 使用一半线程的基本模式
./monero-vanity --pattern hinto
> 44hinto...
示例 2 - 使用一半线程的高级正则表达式模式
./monero-vanity --first --pattern "^4(4|8)h(i|1)nto.*$"
> 48hinto...
找到私用花费密钥后
./monero-wallet-cli --generate-from-spend-key YOUR_WALLET_NAME
输入私钥,生成的钱包将具有找到的地址。
注意
- Rust 正则表达式在任意模式下都允许使用
- 所有字符必须是 ASCII、Unicode 或正则表达式模式
I
,O
,l
,0
,+
,/
是 门罗币地址 中无效的字符- 使用少于最大线程可能更快
monero-vanity
会自动在输入前加上 ^4.
,并在后面加上 .*$
,使得您的模式从地址的第三个字符开始,到第43个字符。
示例输入: hinto
实际使用的正则表达式: ^4.hinto.*$
要禁用此功能,请使用 --first
。
警告:这会使您完全控制正则表达式,您可以输入任何值,甚至是不可实现的值。
安装
在此处下载:下载
Cargo
如果您有 cargo
,可以使用以下命令安装:
cargo install monero-vanity
Arch
如果您正在使用 Arch Linux,可以使用以下命令从 AUR 安装:
paru monero-vanity
实现
- 随机
[u8; 64]
生成(512位/64字节) - 通过减少上述字节创建标量
- 使用正则表达式检查压缩的EdwardsPoint的Base58编码(4...)
- 如果匹配,则创建完整地址并返回给用户,否则...
- 将EdwardsPoint增加1并继续
注意
- 每个线程都会生成自己的RNG种子
- (可选)私有的 视图 密钥也是通过减少 512随机位 创建的
构建
cargo build --release
针对您的特定CPU进行了优化(速度提高高达15%)
RUSTFLAGS="-C target-cpu=native" cargo build --release
感谢
特别感谢 kayabaNerve 在ECC密码学和Rust方面的帮助(他就是为什么它这么快的原因)。
依赖项
~27–66MB
~1M SLoC