====== SimpleYggGen-Go ======
SimpleYggGen-Go — перереализация bash-скрипта [[yggdrasil:address_miners:simpleygggen|SimpleYggGen]] на языке программирования Go, позволяющая работать в несколько потоков и более производительная за счет использования родных библиотек криптографии из Yggdrasil и нативного кода. Основана на программе ''cmd/genkeys'' из Yggdrasil, изначально предназначенной для генерации более устойчивых к коллизиям ключей шифрования.
Текущая версия — **v0.2.1**.
За счет нативного кода и отсутствия затрат на запуск Yggdrasil и grep для выборки адресов дает в несколько тысяч раз большую производительность — на майнинг 100 000 000 ключей уходит 27 минут в 8 потоков на AMD Ryzen 1700X.
Исходный код программы доступен под лицензией MIT.
===== Установка =====
При установленном компиляторе Go:
go get -u -v github.com/tdemin/syg_go
Также собранные бинарники можно загрузить со [[https://git.tdem.in/tdemin/syg_go/releases|страницы релизов]] или [[http://[324:9de3:fea4:f6ac::ace]/files/software/yggdrasil_address_miners/syg_go/|внутрисетевого репозитория]]. Если вы пользуетесь Arch Linux, вы можете установить программу [[https://aur.archlinux.org/packages/syg_go|из AUR]] одной командой:
yay -S syg_go
===== Использование =====
Майнер выполняется в терминале и выводит туда статистику выполнения, а также смайненные ключи.
{{:syg:ygg_syg_go.png?400|}}
У майнера несколько конфигурабельных опций командной строки: ''-threads'', которой устанавливается максимальное число потоков (по умолчанию равно количеству потоков вашего процессора), ''-iter'', с помощью которого задается количество итераций, после которого выводится прогресс (по умолчанию каждые 100 000 итераций для тестов производительности, на современных процессорах имеет смысл задавать в ''100000000'' или выше) и ''-regex'', после которой идет задание целевого регулярного выражения, на соответствие которому проверяется адрес (по умолчанию ''::''). Смысл регулярного выражения тот же, что и у оригинального SimpleYggGen.
С версии 0.1.1 программа перереализует функции вывода адреса для улучшения производительности относительно кода Yggdrasil, включить использование только оригинального кода из Yggdrasil можно опцией ''-original''. С версии 0.1.3 можно также использовать опцию ''-highaddr'', которая устанавливает режим майнинга т.н. "высоких" адресов (т.е. более устойчивых к коллизиям: чем выше начальные биты адреса, тем более устойчив адрес).
Вывод майнера можно сохранять в файл одновременно с выводом в терминал, как это делается, зависит от используемой вами ОС. Например, в *nix-системах можно воспользоваться следующей командой:
syg_go | tee syg.txt
===== Ссылки =====
* [[https://github.com/tdemin/syg_go|Репозиторий проекта]]
* [[https://github.com/tdemin/syg_go/releases|Страница загрузок]]
* [[https://aur.archlinux.org/packages/syg_go|Страница в AUR]]