Note: This is under active development, currently on an
experimental branch offering 5x speedup. I will post further updates when appropriate.
By popular demand:Github:
https://github.com/nym-zone/segvanThe code for this is reasonably solid, notwithstanding some inelegance in main() which will be refactored. On FreeBSD, its been my dogfood for over six weeks; I have also built it and tried basic functionality on Linux. But it needs error, warning, and usage messagesplus the manpage!
When there is significant news (such as major features or a Windows version), I will severely edit this post and bump the thread.
Two recent products (tips would be encouraging):
Those were done together, on one run with each key being searched for a Bech32 pattern
and a nested 3 address pattern. They took 500600 CPU hours on an ultra-slow airgap laptop; for comparison, the same machine requires about 8 hours for a FreeBSD buildworld (!). But I got lucky: I hit a ^bc1qnullnym match after covering only about 25% of a 35-bit bruteforce search. The other took a bit longer; but wasnt so hard, because I permitted a potential extra digit: ^3[0-9]?segwit (case-insensitive matching).
Roadmap/TODO, in no particular order:
- Add threading. I always simply run one instance per core. That doesnt waste anything, because it is a probabilistic search: There is no concept of progress, no need to keep instances synchronized in any way. Threads would make it more convenient. However, before I add a simple pthreads implementation, I want to investigate the impact on the next item.
- Microsoft Windows version, likely via mingw. This is in popular demand. I cant promise a binary on a platform I myself dont even have in my house; but I will try to get a Windows binary made for folks who need it.
- Change/adjust the output format. The current output format is intended for piping to shell scripts, especially for bulk generation mode. If you need to generate ten thousand address/key pairs and pipe those into a `while read` loop, then the current format is ideal.
- Add warning/error/usage messages. This started as an afternoon project for my own use. The code is solid, despite some inelegance in main() which will also be refactored. Its solid, because I need it that way; however, unlike some of my other published software, this was not originally written with other people in mind.
- Finish the manpage!