From c059a912db9acf9c0ea49959a2867584715fa141 Mon Sep 17 00:00:00 2001 From: Tanguy Pruvot Date: Mon, 9 May 2016 16:12:07 +0200 Subject: [PATCH] add x17 algo --- rc.local | 2 + stratum/algos/makefile | 2 +- stratum/algos/x17.c | 114 +++++++++++++++++++++++++++++ stratum/algos/x17.h | 16 ++++ stratum/config.sample/x17.conf | 16 ++++ stratum/stratum.cpp | 1 + stratum/stratum.h | 1 + web/yaamp/config.php | 1 + web/yaamp/core/functions/yaamp.php | 5 +- 9 files changed, 156 insertions(+), 2 deletions(-) create mode 100644 stratum/algos/x17.c create mode 100644 stratum/algos/x17.h create mode 100644 stratum/config.sample/x17.conf diff --git a/rc.local b/rc.local index b0ba82b..6b35051 100644 --- a/rc.local +++ b/rc.local @@ -24,6 +24,8 @@ screen -dmS x11 $STRATUM_DIR/run.sh x11 screen -dmS x13 $STRATUM_DIR/run.sh x13 screen -dmS x14 $STRATUM_DIR/run.sh x14 screen -dmS x15 $STRATUM_DIR/run.sh x15 +screen -dmS x17 $STRATUM_DIR/run.sh x17 + screen -dmS sha $STRATUM_DIR/run.sh sha screen -dmS scrypt $STRATUM_DIR/run.sh scrypt screen -dmS scryptn $STRATUM_DIR/run.sh scryptn diff --git a/stratum/algos/makefile b/stratum/algos/makefile index c78f682..3ef3ebc 100644 --- a/stratum/algos/makefile +++ b/stratum/algos/makefile @@ -9,7 +9,7 @@ CFLAGS= $(CXXFLAGS) -std=gnu99 LDFLAGS=-O2 -lgmp SOURCES=lyra2re.c lyra2v2.c Lyra2.c Sponge.c blake.c scrypt.c c11.c x11.c x13.c sha256.c keccak.c \ - x14.c x15.c nist5.c fresh.c quark.c neoscrypt.c scryptn.c qubit.c skein.c groestl.c \ + x14.c x15.c x17.c nist5.c fresh.c quark.c neoscrypt.c scryptn.c qubit.c skein.c groestl.c \ skein2.c zr5.c bmw.c luffa.c pentablake.c whirlpool.c whirlpoolx.c blakecoin.c \ blake2.c blake2s.c \ yescrypt.c yescrypt-opt.c sha256_Y.c \ diff --git a/stratum/algos/x17.c b/stratum/algos/x17.c new file mode 100644 index 0000000..ae170da --- /dev/null +++ b/stratum/algos/x17.c @@ -0,0 +1,114 @@ +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void x17_hash(const char* input, char* output, uint32_t len) +{ + sph_blake512_context ctx_blake; + sph_bmw512_context ctx_bmw; + sph_groestl512_context ctx_groestl; + sph_skein512_context ctx_skein; + sph_jh512_context ctx_jh; + sph_keccak512_context ctx_keccak; + sph_luffa512_context ctx_luffa1; + sph_cubehash512_context ctx_cubehash1; + sph_shavite512_context ctx_shavite1; + sph_simd512_context ctx_simd1; + sph_echo512_context ctx_echo1; + sph_hamsi512_context ctx_hamsi1; + sph_fugue512_context ctx_fugue1; + sph_shabal512_context ctx_shabal1; + sph_whirlpool_context ctx_whirlpool1; + sph_sha512_context ctx_sha512; + sph_haval256_5_context ctx_haval; + + uint32_t hash[16]; + + sph_blake512_init(&ctx_blake); + sph_blake512 (&ctx_blake, input, len); + sph_blake512_close (&ctx_blake, hash); + + sph_bmw512_init(&ctx_bmw); + sph_bmw512 (&ctx_bmw, hash, 64); + sph_bmw512_close(&ctx_bmw, hash); + + sph_groestl512_init(&ctx_groestl); + sph_groestl512 (&ctx_groestl, hash, 64); + sph_groestl512_close(&ctx_groestl, hash); + + sph_skein512_init(&ctx_skein); + sph_skein512 (&ctx_skein, hash, 64); + sph_skein512_close (&ctx_skein, hash); + + sph_jh512_init(&ctx_jh); + sph_jh512 (&ctx_jh, hash, 64); + sph_jh512_close(&ctx_jh, hash); + + sph_keccak512_init(&ctx_keccak); + sph_keccak512 (&ctx_keccak, hash, 64); + sph_keccak512_close(&ctx_keccak, hash); + + sph_luffa512_init (&ctx_luffa1); + sph_luffa512 (&ctx_luffa1, hash, 64); + sph_luffa512_close (&ctx_luffa1, hash); + + sph_cubehash512_init (&ctx_cubehash1); + sph_cubehash512 (&ctx_cubehash1, hash, 64); + sph_cubehash512_close(&ctx_cubehash1, hash); + + sph_shavite512_init (&ctx_shavite1); + sph_shavite512 (&ctx_shavite1, hash, 64); + sph_shavite512_close(&ctx_shavite1, hash); + + sph_simd512_init (&ctx_simd1); + sph_simd512 (&ctx_simd1, hash, 64); + sph_simd512_close(&ctx_simd1, hash); + + sph_echo512_init (&ctx_echo1); + sph_echo512 (&ctx_echo1, hash, 64); + sph_echo512_close(&ctx_echo1, hash); + + sph_hamsi512_init (&ctx_hamsi1); + sph_hamsi512 (&ctx_hamsi1, hash, 64); + sph_hamsi512_close(&ctx_hamsi1, hash); + + sph_fugue512_init (&ctx_fugue1); + sph_fugue512 (&ctx_fugue1, hash, 64); + sph_fugue512_close(&ctx_fugue1, hash); + + sph_shabal512_init (&ctx_shabal1); + sph_shabal512 (&ctx_shabal1, hash, 64); + sph_shabal512_close(&ctx_shabal1, hash); + + sph_whirlpool_init (&ctx_whirlpool1); + sph_whirlpool (&ctx_whirlpool1, hash, 64); + sph_whirlpool_close(&ctx_whirlpool1, hash); + + sph_sha512_init(&ctx_sha512); + sph_sha512(&ctx_sha512,(const void*) hash, 64); + sph_sha512_close(&ctx_sha512,(void*) hash); + + sph_haval256_5_init(&ctx_haval); + sph_haval256_5(&ctx_haval,(const void*) hash, 64); + sph_haval256_5_close(&ctx_haval, hash); + + memcpy(output, hash, 32); +} diff --git a/stratum/algos/x17.h b/stratum/algos/x17.h new file mode 100644 index 0000000..11c29b8 --- /dev/null +++ b/stratum/algos/x17.h @@ -0,0 +1,16 @@ +#ifndef X17_H +#define X17_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +void x17_hash(const char* input, char* output, uint32_t len); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/stratum/config.sample/x17.conf b/stratum/config.sample/x17.conf new file mode 100644 index 0000000..7e76e2a --- /dev/null +++ b/stratum/config.sample/x17.conf @@ -0,0 +1,16 @@ +[TCP] +server = yaamp.com +port = 3737 +password = tu8tu5 + +[SQL] +host = yaampdb +database = yaamp +username = root +password = patofpaq + +[STRATUM] +algo = x17 +difficulty = 0.008 +max_ttf = 50000 + diff --git a/stratum/stratum.cpp b/stratum/stratum.cpp index 5b46099..96ce0b4 100644 --- a/stratum/stratum.cpp +++ b/stratum/stratum.cpp @@ -92,6 +92,7 @@ YAAMP_ALGO g_algos[] = {"x13", x13_hash, 1, 0, 0}, {"x14", x14_hash, 1, 0, 0}, {"x15", x15_hash, 1, 0, 0}, + {"x17", x17_hash, 1, 0, 0}, {"lyra2", lyra2re_hash, 0x80, 0, 0}, {"lyra2v2", lyra2v2_hash, 0x100, 0, 0}, diff --git a/stratum/stratum.h b/stratum/stratum.h index 0d1cf4e..2d1c6fb 100644 --- a/stratum/stratum.h +++ b/stratum/stratum.h @@ -127,6 +127,7 @@ void sha256_double_hash_hex(const char *input, char *output, unsigned int len); #include "algos/x13.h" #include "algos/x14.h" #include "algos/x15.h" +#include "algos/x17.h" #include "algos/nist5.h" #include "algos/fresh.h" #include "algos/quark.h" diff --git a/web/yaamp/config.php b/web/yaamp/config.php index ce423fc..8797092 100644 --- a/web/yaamp/config.php +++ b/web/yaamp/config.php @@ -26,6 +26,7 @@ return array( 'rules'=>array( // prevent /explorer/id//p1/v1/... -> /explorer/?params... '/explorer/' => array('/explorer', 'urlFormat'=>'get'), + 'explorer/' => array('explorer', 'urlFormat'=>'get'), ), ), diff --git a/web/yaamp/core/functions/yaamp.php b/web/yaamp/core/functions/yaamp.php index 98c55ec..e290b54 100755 --- a/web/yaamp/core/functions/yaamp.php +++ b/web/yaamp/core/functions/yaamp.php @@ -26,6 +26,7 @@ function yaamp_get_algos() 'x13', 'x14', 'x15', + 'x17', 'groestl', // dmd-gr -m 256 (deprecated) 'dmd-gr', 'myr-gr', @@ -107,7 +108,8 @@ function getAlgoColors($algo) 'x11' => '#f0f0a0', 'x13' => '#ffd880', 'x14' => '#a0f0c0', - 'x15' => '#f0b0a0', + 'x15' => '#f0b080', + 'x17' => '#f0b0a0', 'argon2' => '#e0d0e0', 'blake' => '#f0f0f0', 'blakecoin' => '#f0f0f0', @@ -151,6 +153,7 @@ function getAlgoPort($algo) 'x11' => 3533, 'x13' => 3633, 'x15' => 3733, + 'x17' => 3737, 'nist5' => 3833, 'x14' => 3933, 'quark' => 4033,