This release updates syg_go for Yggdrasil 0.4.0, switching to ed25519 keys. syg_go now also vendors not only src/address.AddrForKey function from Yggdrasil, but also GenerateKey from crypto/ed25519 with minor microoptimizations. As usual, this is tweakable with cmdline options.
|1 year ago|
|.drone.yml||2 years ago|
|.goreleaser.yml||2 years ago|
|LICENSE||2 years ago|
|README.md||1 year ago|
|crypto.go||1 year ago|
|crypto_test.go||1 year ago|
|debug.go||2 years ago|
|go.mod||1 year ago|
|go.sum||1 year ago|
|main.go||1 year ago|
This program reimplements
SimpleYggGen in Go, importing
the original Yggdrasil code for generating keys and utilizing multiple CPU
threads for mining. It is based on
cmd/genkeys from yggdrasil-go.
% go get -u -v git.tdem.in/tdemin/syg_go
If you're an Arch Linux user, you can install it from AUR:
% yay -S syg_go
- regex-based key mining (see
- bruteforce-resistant keys mining mode (see
- multithreaded key mining (see
% syg_go -help Usage of syg_go: -highaddr high address mining mode, excludes regex -iter uint per how many iterations to output status (default 100000) -original use original Yggdrasil code -regex string regex to match addresses against (default "::") -threads int how many threads to use for mining (default 16) -version display version
This program outputs keys found to stdout and iterations numbers reached to stderr so that users can redirect the (possibly) irrelevant status output to /dev/null. To redirect status output to /dev/null, run:
% syg_go ...flags... 2>/dev/null
SimpleYggGen is originally a project by @acetone, who wrote a Bash miner for getting "magic" Yggdrasil addresses following a pattern. The main problem with his implementation was that it ran grep and yggdrasil as separate processes, making mining very slow. Even though @acetone later made a C++ implementation, it still relied on running Yggdrasil as a separate process.
As of August 2020 @acetone reworked his C++ miner implementation, and SYG-C++ is a lot more performant than this program, making 4 times more iterations in the same time. It might be feasible to use his program instead unless you're running an architecture where SYG-C++ won't build.
Obviously far superior to the original SimpleYggGen.
With multiple threads it takes SimpleYggGen a month to run through a few
million cycles and find keys for
::). syg_go has found keys for
206:bcdb::ac47:4e3b:b97e:df4e with the same
target in 27 minutes, utilizing 8 threads on AMD Ryzen 1700X.
With 8 threads on Ryzen 1700X while searching for
:: this program reaches:
- 10 000 000 iterations in 2 minutes, 36 seconds
- 100 000 000 iterations in 25 minutes, 58 seconds
- 500 000 000 iterations in 2 hours, 10 minutes
This program contains some modded code from Yggdrasil that aims to improve
performance. If you prefer to use original Yggdrasil code, set
go tool pprof support is available when building with
-tags debug. The
program will launch an HTTP server attachable by pprof, listening on the address
specified by the
SYGGO_HTTP environment variable.