|
|
@ -77,24 +77,24 @@ int32_t dpow_bestk(struct dpow_block *bp,uint64_t *maskp) |
|
|
|
|
|
|
|
uint64_t dpow_ratifybest(uint64_t refmask,struct dpow_block *bp,int8_t *lastkp) |
|
|
|
{ |
|
|
|
int32_t j,m,k; uint64_t bestmask,mask = bp->require0; |
|
|
|
int32_t m,k; uint64_t bestmask,mask = bp->require0; |
|
|
|
bestmask = 0; |
|
|
|
*lastkp = -1; |
|
|
|
m = bp->require0; |
|
|
|
for (j=0; j<bp->numnotaries; j++) |
|
|
|
if ( (m= bp->require0) != 0 ) |
|
|
|
mask = 1; |
|
|
|
for (k=m; k<bp->numnotaries; k++) |
|
|
|
{ |
|
|
|
k = DPOW_MODIND(bp,j); |
|
|
|
if ( (bp->require0 != 0 && k == 0) || (bits256_nonz(bp->notaries[k].ratifysrcutxo) != 0 && bits256_nonz(bp->notaries[k].ratifydestutxo) != 0) ) |
|
|
|
//k = DPOW_MODIND(bp,j);
|
|
|
|
if ( bits256_nonz(bp->notaries[k].ratifysrcutxo) != 0 && bits256_nonz(bp->notaries[k].ratifydestutxo) != 0 ) |
|
|
|
{ |
|
|
|
mask |= (1LL << k); |
|
|
|
if ( ++m == DPOW_M(bp) ) |
|
|
|
if ( ++m == bp->minsigs ) |
|
|
|
{ |
|
|
|
*lastkp = k; |
|
|
|
bestmask = mask; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
printf("req.%d m.%d %d best.(%d %llx) ",bp->require0,m,DPOW_MODIND(bp,0),*lastkp,(long long)bestmask); |
|
|
|
return(bestmask); |
|
|
|
} |
|
|
|
|
|
|
@ -112,7 +112,7 @@ uint64_t dpow_maskmin(uint64_t refmask,struct dpow_block *bp,int8_t *lastkp) |
|
|
|
if ( bits256_nonz(bp->notaries[k].src.prev_hash) != 0 && bits256_nonz(bp->notaries[k].dest.prev_hash) != 0 ) |
|
|
|
{ |
|
|
|
mask |= (1LL << k); |
|
|
|
if ( ++m == DPOW_M(bp) ) |
|
|
|
if ( ++m == bp->minsigs ) |
|
|
|
{ |
|
|
|
*lastkp = k; |
|
|
|
bestmask = mask; |
|
|
|