add -x <hexheader> option; rename blake2b to blake2-asm
This commit is contained in:
parent
9179de6aef
commit
bf5c2b01fd
20
Makefile
20
Makefile
|
@ -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
|
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
|
$(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
|
dev: equi.h dev_miner.h dev_miner.cpp blake2-asm/asm/zcblake2_avx2.o Makefile
|
||||||
$(GPP) -DATOMIC dev_miner.cpp blake/blake2b.cpp blake2b/asm/zcblake2_avx2.o -o dev
|
$(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
|
dev1: equi.h dev_miner.h dev_miner.cpp blake2-asm/asm/zcblake2_avx2.o Makefile
|
||||||
$(GPP) dev_miner.cpp blake/blake2b.cpp blake2b/asm/zcblake2_avx2.o -o dev1
|
$(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
|
hash1: equi.h dev_miner.h dev_miner.cpp blake2-asm/asm/zcblake2_avx2.o Makefile
|
||||||
$(GPP) -DHASHONLY dev_miner.cpp blake/blake2b.cpp blake2b/asm/zcblake2_avx2.o -o hash1
|
$(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
|
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
|
$(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
|
spark: equi1g
|
||||||
time ./equi1g
|
time ./equi1g
|
||||||
|
|
||||||
blake2b/asm/zcblake2_avx1.o:
|
blake2-asm/asm/zcblake2_avx1.o:
|
||||||
make -C blake2b
|
make -C blake2-asm
|
||||||
|
|
||||||
blake2b/asm/zcblake2_avx2.o:
|
blake2-asm/asm/zcblake2_avx2.o:
|
||||||
make -C blake2b
|
make -C blake2-asm
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
make -C blake2b clean && rm -f dev dev1 equi equi1 eqavx2 eqavx21 equi1g eq1445 eq14451 eq1445avx2 eq1445avx21 eqcuda eqcuda1445 verify
|
make -C blake2b clean && rm -f dev dev1 equi equi1 eqavx2 eqavx21 equi1g eq1445 eq14451 eq1445avx2 eq1445avx21 eqcuda eqcuda1445 verify
|
||||||
|
|
|
@ -3,6 +3,17 @@
|
||||||
|
|
||||||
#include "equi_miner.h"
|
#include "equi_miner.h"
|
||||||
#include <unistd.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 main(int argc, char **argv) {
|
||||||
int nthreads = 1;
|
int nthreads = 1;
|
||||||
|
@ -10,8 +21,9 @@ int main(int argc, char **argv) {
|
||||||
int range = 1;
|
int range = 1;
|
||||||
bool showsol = false;
|
bool showsol = false;
|
||||||
const char *header = "";
|
const char *header = "";
|
||||||
|
const char *hex = "";
|
||||||
int c;
|
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) {
|
switch (c) {
|
||||||
case 'h':
|
case 'h':
|
||||||
header = optarg;
|
header = optarg;
|
||||||
|
@ -28,6 +40,9 @@ int main(int argc, char **argv) {
|
||||||
case 't':
|
case 't':
|
||||||
nthreads = atoi(optarg);
|
nthreads = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
|
case 'x':
|
||||||
|
hex = optarg;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifndef XWITHASH
|
#ifndef XWITHASH
|
||||||
|
@ -40,7 +55,7 @@ int main(int argc, char **argv) {
|
||||||
#else
|
#else
|
||||||
assert(nthreads==1);
|
assert(nthreads==1);
|
||||||
#endif
|
#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)
|
if (range > 1)
|
||||||
printf("-%d", nonce+range-1);
|
printf("-%d", nonce+range-1);
|
||||||
printf(") with %d %d-bit digits and %d threads\n", NDIGITS, DIGITBITS, nthreads);
|
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;
|
u32 sumnsols = 0;
|
||||||
char headernonce[HEADERNONCELEN];
|
char headernonce[HEADERNONCELEN];
|
||||||
u32 hdrlen = strlen(header);
|
u32 hdrlen = strlen(header);
|
||||||
memcpy(headernonce, header, hdrlen);
|
if (*hex) {
|
||||||
memset(headernonce+hdrlen, 0, sizeof(headernonce)-hdrlen);
|
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++) {
|
for (int r = 0; r < range; r++) {
|
||||||
((u32 *)headernonce)[32] = htole32(nonce+r);
|
((u32 *)headernonce)[32] = htole32(nonce+r);
|
||||||
eq.setheadernonce(headernonce, sizeof(headernonce));
|
eq.setheadernonce(headernonce, sizeof(headernonce));
|
||||||
|
|
Loading…
Reference in New Issue