Browse Source

Merge pull request #140 from jl777/dev

Dev
win-cross
jl777 8 years ago
committed by GitHub
parent
commit
5aa434e9fe
  1. 15
      iguana/dpow/dpow_fsm.c
  2. 6
      iguana/dpow/dpow_network.c

15
iguana/dpow/dpow_fsm.c

@ -158,7 +158,7 @@ void dpow_statemachinestart(void *ptr)
{ {
void **ptrs = ptr; void **ptrs = ptr;
struct supernet_info *myinfo; struct dpow_info *dp; struct dpow_checkpoint checkpoint; struct supernet_info *myinfo; struct dpow_info *dp; struct dpow_checkpoint checkpoint;
int32_t i,j,ht,destprevvout0,srcprevvout0,numratified=0,kmdheight,myind = -1; uint8_t pubkeys[64][33]; cJSON *ratified=0,*item; struct iguana_info *src,*dest; char *jsonstr,*handle,*hexstr,str[65],str2[65],srcaddr[64],destaddr[64]; bits256 zero,srchash,destprevtxid0,srcprevtxid0; struct dpow_block *bp; struct dpow_entry *ep = 0; uint32_t duration,minsigs,starttime,srctime; int32_t i,j,ht,extralen,destprevvout0,srcprevvout0,numratified=0,kmdheight,myind = -1; uint8_t extras[10000],pubkeys[64][33]; cJSON *ratified=0,*item; struct iguana_info *src,*dest; char *jsonstr,*handle,*hexstr,str[65],str2[65],srcaddr[64],destaddr[64]; bits256 zero,srchash,destprevtxid0,srcprevtxid0; struct dpow_block *bp; struct dpow_entry *ep = 0; uint32_t duration,minsigs,starttime,srctime;
memset(&zero,0,sizeof(zero)); memset(&zero,0,sizeof(zero));
srcprevtxid0 = destprevtxid0 = zero; srcprevtxid0 = destprevtxid0 = zero;
srcprevvout0 = destprevvout0 = -1; srcprevvout0 = destprevvout0 = -1;
@ -387,9 +387,14 @@ void dpow_statemachinestart(void *ptr)
} }
sleep(1); sleep(1);
} }
if ( bp->isratify == 0 || (starttime= checkpoint.timestamp) == 0 ) if ( bp->isratify == 0 )
bp->starttime = starttime = (uint32_t)time(NULL); {
printf("myind.%d isratify.%d DPOW.%s statemachine checkpoint.%d %s start.%u\n",bp->myind,bp->isratify,src->symbol,checkpoint.blockhash.height,bits256_str(str,checkpoint.blockhash.hash),checkpoint.timestamp); if ( (starttime= checkpoint.timestamp) == 0 )
bp->starttime = starttime = (uint32_t)time(NULL);
extralen = dpow_paxpending(extras);
bp->paxwdcrc = bp->notaries[bp->myind].paxwdcrc = calc_crc32(0,extras,extralen);
}
printf("PAXWDCRC.%x myind.%d isratify.%d DPOW.%s statemachine checkpoint.%d %s start.%u\n",bp->paxwdcrc,bp->myind,bp->isratify,src->symbol,checkpoint.blockhash.height,bits256_str(str,checkpoint.blockhash.hash),checkpoint.timestamp);
for (i=0; i<sizeof(srchash); i++) for (i=0; i<sizeof(srchash); i++)
srchash.bytes[i] = dp->minerkey33[i+1]; srchash.bytes[i] = dp->minerkey33[i+1];
//printf("start utxosync start.%u %u\n",starttime,(uint32_t)time(NULL)); //printf("start utxosync start.%u %u\n",starttime,(uint32_t)time(NULL));
@ -433,7 +438,7 @@ void dpow_statemachinestart(void *ptr)
break; break;
} }
} }
printf("isratify.%d bestk.%d %llx sigs.%llx state machine ht.%d completed state.%x %s.%s %s.%s recvmask.%llx\n",bp->isratify,bp->bestk,(long long)bp->bestmask,(long long)(bp->bestk>=0?bp->destsigsmasks[bp->bestk]:0),bp->height,bp->state,dp->dest,bits256_str(str,bp->desttxid),dp->symbol,bits256_str(str2,bp->srctxid),(long long)bp->recvmask); printf("isratify.%d bestk.%d %llx sigs.%llx state machine ht.%d completed state.%x %s.%s %s.%s recvmask.%llx paxwdcrc.%x\n",bp->isratify,bp->bestk,(long long)bp->bestmask,(long long)(bp->bestk>=0?bp->destsigsmasks[bp->bestk]:0),bp->height,bp->state,dp->dest,bits256_str(str,bp->desttxid),dp->symbol,bits256_str(str2,bp->srctxid),(long long)bp->recvmask,bp->paxwdcrc);
dp->lastrecvmask = bp->recvmask; dp->lastrecvmask = bp->recvmask;
dp->ratifying -= bp->isratify; dp->ratifying -= bp->isratify;
free(ptr); free(ptr);

6
iguana/dpow/dpow_network.c

@ -254,7 +254,7 @@ int32_t dpow_addnotary(struct supernet_info *myinfo,struct dpow_info *dp,char *i
void dpow_nanomsginit(struct supernet_info *myinfo,char *ipaddr) void dpow_nanomsginit(struct supernet_info *myinfo,char *ipaddr)
{ {
char str[512]; int32_t timeout,retval; char str[512]; int32_t timeout,retval,maxsize;
if ( myinfo->ipaddr[0] == 0 ) if ( myinfo->ipaddr[0] == 0 )
{ {
printf("need to set ipaddr before nanomsg\n"); printf("need to set ipaddr before nanomsg\n");
@ -316,6 +316,8 @@ void dpow_nanomsginit(struct supernet_info *myinfo,char *ipaddr)
myinfo->numdpowipbits = 1; myinfo->numdpowipbits = 1;
timeout = 1000; timeout = 1000;
nn_setsockopt(myinfo->dpowsock,NN_SOL_SOCKET,NN_RCVTIMEO,&timeout,sizeof(timeout)); nn_setsockopt(myinfo->dpowsock,NN_SOL_SOCKET,NN_RCVTIMEO,&timeout,sizeof(timeout));
maxsize = 1024 * 1024;
printf("RCVBUF.%d\n",nn_setsockopt(myinfo->dpowsock,NN_SOL_SOCKET,NN_RCVBUF,&maxsize,sizeof(maxsize)));
nn_setsockopt(myinfo->dexsock,NN_SOL_SOCKET,NN_RCVTIMEO,&timeout,sizeof(timeout)); nn_setsockopt(myinfo->dexsock,NN_SOL_SOCKET,NN_RCVTIMEO,&timeout,sizeof(timeout));
nn_setsockopt(myinfo->repsock,NN_SOL_SOCKET,NN_RCVTIMEO,&timeout,sizeof(timeout)); nn_setsockopt(myinfo->repsock,NN_SOL_SOCKET,NN_RCVTIMEO,&timeout,sizeof(timeout));
printf("DEXINIT dex.%d rep.%d\n",myinfo->dexsock,myinfo->repsock); printf("DEXINIT dex.%d rep.%d\n",myinfo->dexsock,myinfo->repsock);
@ -660,7 +662,7 @@ void dpow_send(struct supernet_info *myinfo,struct dpow_info *dp,struct dpow_blo
if ( bp->isratify == 0 ) if ( bp->isratify == 0 )
{ {
extralen = dpow_paxpending(extras); extralen = dpow_paxpending(extras);
bp->notaries[bp->myind].paxwdcrc = calc_crc32(0,extras,extralen); bp->paxwdcrc = bp->notaries[bp->myind].paxwdcrc = calc_crc32(0,extras,extralen);
dpow_nanoutxoset(&np->notarize,bp,0); dpow_nanoutxoset(&np->notarize,bp,0);
} else dpow_nanoutxoset(&np->ratify,bp,1); } else dpow_nanoutxoset(&np->ratify,bp,1);
np->size = size; np->size = size;

Loading…
Cancel
Save