From be695b4bff18a31c36f912d840bd5d00c64c4c44 Mon Sep 17 00:00:00 2001 From: jl777 Date: Thu, 3 May 2018 15:51:35 +0300 Subject: [PATCH] Test --- iguana/dpow/dpow_network.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/iguana/dpow/dpow_network.c b/iguana/dpow/dpow_network.c index 57c8c23ce..d493dc418 100755 --- a/iguana/dpow/dpow_network.c +++ b/iguana/dpow/dpow_network.c @@ -1464,7 +1464,7 @@ void dpow_nanomsginit(struct supernet_info *myinfo,char *ipaddr) void dpow_bestconsensus(struct dpow_info *dp,struct dpow_block *bp) { - int8_t bestks[64]; int32_t wts[64],owts[64],counts[64],i,j,numcrcs=0,numdiff,besti,bestmatches = 0,matches = 0; uint64_t masks[64],matchesmask,recvmask; uint32_t crcval=0; char srcaddr[64],destaddr[64]; + int8_t bestks[64]; uint32_t sortbuf[64],wts[64],owts[64],counts[64]; int32_t i,j,numcrcs=0,numdiff,besti,bestmatches = 0,matches = 0; uint64_t masks[64],matchesmask,recvmask; uint32_t crcval=0; char srcaddr[64],destaddr[64]; memset(wts,0,sizeof(wts)); memset(owts,0,sizeof(owts)); for (i=0; inumnotaries; i++) @@ -1475,6 +1475,9 @@ void dpow_bestconsensus(struct dpow_info *dp,struct dpow_block *bp) if ( ((1LL << j) & recvmask) != 0 ) owts[j]++; } + for (i=0; inumnotaries; i++) + sortbuf[i] = (wts[i] * owts[i]); + revsort32(sortbuf,bp->numnotaries,sizeof(*sortbuf)); memset(masks,0,sizeof(masks)); memset(bestks,0xff,sizeof(bestks)); memset(counts,0,sizeof(counts)); @@ -1529,8 +1532,12 @@ void dpow_bestconsensus(struct dpow_info *dp,struct dpow_block *bp) if ( bp->myind == 0 ) { for (i=0; inumnotaries; i++) - printf("%d:%d ",wts[i],owts[i]); - printf("%s.%d set matches.%d best.%d to (%d %llx) recv.%llx\n",dp->symbol,bp->height,bp->matches,bp->bestmatches,bp->bestk,(long long)bp->bestmask,(long long)recvmask); + printf("(%d:%d %d)%s ",wts[i],owts[i],wts[i]*owts[i],wts[i]*owts[i]>sortbuf[bp->numnotaries/2]?"*":""); + printf("median.%d %s.%d set matches.%d best.%d to (%d %llx) recv.%llx\n",sortbuf[bp->numnotaries/2],dp->symbol,bp->height,bp->matches,bp->bestmatches,bp->bestk,(long long)bp->bestmask,(long long)recvmask); + for (i=0; inumnotaries; i++) + if ( wts[i] == 0 || owts[i] == 0 ) + printf("%s.%d:%d ",Notaries_elected[i][0],wts[i],owts[i]); + printf(" <- problem nodes\n"); } } bp->recvmask |= recvmask;