jl777 8 years ago
parent
commit
080d57558f
  1. 5
      iguana/dpow/dpow_fsm.c
  2. 10
      iguana/dpow/dpow_tx.c

5
iguana/dpow/dpow_fsm.c

@ -357,9 +357,10 @@ int32_t dpow_update(struct supernet_info *myinfo,struct dpow_info *dp,struct dpo
}
if ( bp->isratify != 0 || (rand() % 10) == 0 )
{
dpow_sendcoinentrys(myinfo,dp,bp);
bp->bestmask = dpow_maskmin(bp->recvmask,bp,&bp->bestk);
dpow_signedtxgen(myinfo,dp,(bp->state < 1000) ? bp->destcoin : bp->srccoin,bp,bp->bestk,bp->bestmask,myind,bp->state < 1000 ? DPOW_SIGBTCCHANNEL : DPOW_SIGCHANNEL,bp->state < 1000);
dpow_sendcoinentrys(myinfo,dp,bp);
if ( bp->bestk >= 0 )
dpow_signedtxgen(myinfo,dp,(bp->state < 1000) ? bp->destcoin : bp->srccoin,bp,bp->bestk,bp->bestmask,myind,bp->state < 1000 ? DPOW_SIGBTCCHANNEL : DPOW_SIGCHANNEL,bp->state < 1000);
printf("ht.%d numnotaries.%d BEST.%llx from RECV.%llx bestk.%d\n",bp->height,bp->numnotaries,(long long)bp->bestmask,(long long)bp->recvmask,bp->bestk);
}
}

10
iguana/dpow/dpow_tx.c

@ -47,21 +47,23 @@ int32_t dpow_bestk(struct dpow_block *bp,uint64_t *maskp)
uint64_t dpow_maskmin(uint64_t refmask,struct dpow_block *bp,int8_t *lastkp)
{
int32_t j,m,k; uint64_t mask = 0;
int32_t j,m,k; uint64_t bestmask,mask;
bestmask = mask = 0;
for (j=m=0; j<bp->numnotaries; j++)
{
k = DPOW_MODIND(bp,j);
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 == DPOW_M(bp) )
{
*lastkp = k;
break;
bestmask = mask;
}
}
}
return(mask);
bp->recvmask = mask;
return(bestmask);
}
struct dpow_block *dpow_heightfind(struct supernet_info *myinfo,struct dpow_info *dp,int32_t height)

Loading…
Cancel
Save