The program now vendors some more Yggdrasil code to improve performance; as of now it's just the IP address calculation function with a simple tweak that nonetheless speeds it up by 10% (preallocating the slice for `temp`). Vendored code can be turned off at any time by using `-original` flag when running syg_go. Vendored code is also covered with tests so that vendored implementation stays compatible with Yggdrasil.
|2 years ago|
|.drone.yml||2 years ago|
|.goreleaser.yml||2 years ago|
|LICENSE||2 years ago|
|README.md||2 years ago|
|crypto.go||2 years ago|
|crypto_test.go||2 years ago|
|go.mod||2 years ago|
|go.sum||2 years ago|
|main.go||2 years ago|
This program reimplements SimpleYggGen in Go, importing the original Yggdrasil code for generating keys and utilizing multiple CPU threads for mining.
% go get -u -v git.tdem.in/tdemin/syg_go
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 relies on running Yggdrasil as a separate process.
Obviously far superior to the original SimpleYggGen (Yggdrasil link, you might need to install Yggdrasil to open this link).
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
% syg_go -help Usage of syg_go: -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