add -x <hexheader> option; rename blake2b to blake2-asm

This commit is contained in:
tromp 2016-10-28 12:17:34 -04:00
parent 9179de6aef
commit bf5c2b01fd
15 changed files with 35 additions and 14 deletions

View File

@ -31,14 +31,14 @@ eq1445avx2: equi.h equi_miner.h equi_miner.cpp blake2-avx2/blake2bip.c Makefile
eq1445avx21: equi.h equi_miner.h equi_miner.cpp blake2-avx2/blake2bip.c Makefile
$(GPP) -DUSE_AVX2 -DRESTBITS=4 -DWN=144 -DWK=5 equi_miner.cpp blake/blake2b.cpp blake2-avx2/blake2bip.c -o eq1445avx21
dev: equi.h dev_miner.h dev_miner.cpp blake2b/asm/zcblake2_avx2.o Makefile
$(GPP) -DATOMIC dev_miner.cpp blake/blake2b.cpp blake2b/asm/zcblake2_avx2.o -o dev
dev: equi.h dev_miner.h dev_miner.cpp blake2-asm/asm/zcblake2_avx2.o Makefile
$(GPP) -DATOMIC dev_miner.cpp blake/blake2b.cpp blake2-asm/asm/zcblake2_avx2.o -o dev
dev1: equi.h dev_miner.h dev_miner.cpp blake2b/asm/zcblake2_avx2.o Makefile
$(GPP) dev_miner.cpp blake/blake2b.cpp blake2b/asm/zcblake2_avx2.o -o dev1
dev1: equi.h dev_miner.h dev_miner.cpp blake2-asm/asm/zcblake2_avx2.o Makefile
$(GPP) dev_miner.cpp blake/blake2b.cpp blake2-asm/asm/zcblake2_avx2.o -o dev1
hash1: equi.h dev_miner.h dev_miner.cpp blake2b/asm/zcblake2_avx2.o Makefile
$(GPP) -DHASHONLY dev_miner.cpp blake/blake2b.cpp blake2b/asm/zcblake2_avx2.o -o hash1
hash1: equi.h dev_miner.h dev_miner.cpp blake2-asm/asm/zcblake2_avx2.o Makefile
$(GPP) -DHASHONLY dev_miner.cpp blake/blake2b.cpp blake2-asm/asm/zcblake2_avx2.o -o hash1
equidev: equi.h equi_dev_miner.h equi_dev_miner.cpp Makefile
$(GPP) -DATOMIC equi_dev_miner.cpp blake/blake2b.cpp blake2-avx2/blake2bip.c -o equidev
@ -76,11 +76,11 @@ test1445: eq14451 verify1445 Makefile
spark: equi1g
time ./equi1g
blake2b/asm/zcblake2_avx1.o:
make -C blake2b
blake2-asm/asm/zcblake2_avx1.o:
make -C blake2-asm
blake2b/asm/zcblake2_avx2.o:
make -C blake2b
blake2-asm/asm/zcblake2_avx2.o:
make -C blake2-asm
clean:
make -C blake2b clean && rm -f dev dev1 equi equi1 eqavx2 eqavx21 equi1g eq1445 eq14451 eq1445avx2 eq1445avx21 eqcuda eqcuda1445 verify

View File

@ -3,6 +3,17 @@
#include "equi_miner.h"
#include <unistd.h>
#include "ctype.h"
int hextobyte(const char * x) {
u32 b = 0;
for (int i = 0; i < 2; i++) {
uchar c = tolower(x[i]);
assert(isxdigit(c));
b = (b << 4) | (c - (c >= '0' && c <= '9' ? '0' : ('a' - 10)));
}
return b;
}
int main(int argc, char **argv) {
int nthreads = 1;
@ -10,8 +21,9 @@ int main(int argc, char **argv) {
int range = 1;
bool showsol = false;
const char *header = "";
const char *hex = "";
int c;
while ((c = getopt (argc, argv, "h:n:r:t:s")) != -1) {
while ((c = getopt (argc, argv, "h:n:r:t:x:s")) != -1) {
switch (c) {
case 'h':
header = optarg;
@ -28,6 +40,9 @@ int main(int argc, char **argv) {
case 't':
nthreads = atoi(optarg);
break;
case 'x':
hex = optarg;
break;
}
}
#ifndef XWITHASH
@ -40,7 +55,7 @@ int main(int argc, char **argv) {
#else
assert(nthreads==1);
#endif
printf("Looking for wagner-tree on (\"%s\",%d", header, nonce);
printf("Looking for wagner-tree on (\"%s\",%d", hex ? "0x..." : header, nonce);
if (range > 1)
printf("-%d", nonce+range-1);
printf(") with %d %d-bit digits and %d threads\n", NDIGITS, DIGITBITS, nthreads);
@ -56,8 +71,14 @@ int main(int argc, char **argv) {
u32 sumnsols = 0;
char headernonce[HEADERNONCELEN];
u32 hdrlen = strlen(header);
memcpy(headernonce, header, hdrlen);
memset(headernonce+hdrlen, 0, sizeof(headernonce)-hdrlen);
if (*hex) {
assert(strlen(hex) == 2 * HEADERNONCELEN);
for (int i = 0; i < HEADERNONCELEN; i++)
headernonce[i] = hextobyte(&hex[2*i]);
} else {
memcpy(headernonce, header, hdrlen);
memset(headernonce+hdrlen, 0, sizeof(headernonce)-hdrlen);
}
for (int r = 0; r < range; r++) {
((u32 *)headernonce)[32] = htole32(nonce+r);
eq.setheadernonce(headernonce, sizeof(headernonce));