diff --git a/iguana/dPoW.h b/iguana/dPoW.h index b9c806590..1cc62863c 100755 --- a/iguana/dPoW.h +++ b/iguana/dPoW.h @@ -43,11 +43,12 @@ #define DPOW_KOMODOCONFIRMS 3 #define DPOW_BTCCONFIRMS 1 #define DPOW_MAXRELAYS 64 +#define DPOW_MAXSIGLEN 128 struct dpow_coinentry { bits256 prev_hash; - uint8_t siglens[DPOW_MAXRELAYS],sigs[DPOW_MAXRELAYS][76]; + uint8_t siglens[DPOW_MAXRELAYS],sigs[DPOW_MAXRELAYS][DPOW_MAXSIGLEN]; int32_t prev_vout; }; @@ -66,7 +67,7 @@ struct dpow_entry int32_t height; uint32_t pendingcrcs[2]; uint16_t ratifysrcvout,ratifydestvout; int8_t bestk,ratifybestk; - uint8_t pubkey[33],ratifysigs[2][76],ratifysiglens[2]; + uint8_t pubkey[33],ratifysigs[2][DPOW_MAXSIGLEN],ratifysiglens[2]; struct dpow_coinentry src,dest; }; @@ -75,7 +76,7 @@ struct dpow_sigentry bits256 beacon; uint64_t mask; int32_t refcount; - uint8_t senderind,lastk,siglen,sig[76],senderpub[33]; + uint8_t senderind,lastk,siglen,sig[DPOW_MAXSIGLEN],senderpub[33]; }; struct komodo_notaries @@ -103,7 +104,7 @@ struct dpow_block int32_t rawratifiedlens[2],height,numnotaries,numerrors,completed,minsigs,duration,numratified,isratify,require0,scores[DPOW_MAXRELAYS]; int8_t bestk,ratifybestk,pendingbestk,pendingratifybestk; cJSON *ratified; - uint8_t myind,ratified_pubkeys[DPOW_MAXRELAYS][33],ratifysigs[2][76],ratifysiglens[2]; + uint8_t myind,ratified_pubkeys[DPOW_MAXRELAYS][33],ratifysigs[2][DPOW_MAXSIGLEN],ratifysiglens[2]; char handles[DPOW_MAXRELAYS][32]; char signedtx[32768]; uint8_t ratifyrawtx[2][32768]; uint32_t pendingcrcs[2]; }; diff --git a/iguana/dpow/dpow_network.c b/iguana/dpow/dpow_network.c index 88d5bdd5c..36ace8186 100755 --- a/iguana/dpow/dpow_network.c +++ b/iguana/dpow/dpow_network.c @@ -22,7 +22,7 @@ struct dpow_nanoutxo uint64_t bestmask,recvmask; uint32_t pendingcrcs[2]; uint16_t srcvout,destvout; - uint8_t sigs[2][76],siglens[2],bestk,pad; + uint8_t sigs[2][DPOW_MAXSIGLEN],siglens[2],bestk,pad; } PACKED; struct dpow_nanomsghdr @@ -183,7 +183,7 @@ void dpow_nanoutxoset(struct dpow_nanoutxo *np,struct dpow_block *bp,int32_t isr } } -void dpow_ratify_update(struct supernet_info *myinfo,struct dpow_info *dp,struct dpow_block *bp,uint8_t senderind,int8_t bestk,uint64_t bestmask,uint64_t recvmask,bits256 srcutxo,uint16_t srcvout,bits256 destutxo,uint16_t destvout,uint8_t siglens[2],uint8_t sigs[2][76],uint32_t pendingcrcs[2]) +void dpow_ratify_update(struct supernet_info *myinfo,struct dpow_info *dp,struct dpow_block *bp,uint8_t senderind,int8_t bestk,uint64_t bestmask,uint64_t recvmask,bits256 srcutxo,uint16_t srcvout,bits256 destutxo,uint16_t destvout,uint8_t siglens[2],uint8_t sigs[2][DPOW_MAXSIGLEN],uint32_t pendingcrcs[2]) { int8_t bestks[64]; int32_t counts[64],i,j,numcrcs=0,numdiff,besti,best,bestmatches = 0,matches = 0; uint64_t masks[64],matchesmask; uint32_t crcval=0; //char str[65],str2[65]; @@ -346,7 +346,7 @@ void dpow_ratify_update(struct supernet_info *myinfo,struct dpow_info *dp,struct } } -void dpow_notarize_update(struct supernet_info *myinfo,struct dpow_info *dp,struct dpow_block *bp,uint8_t senderind,int8_t bestk,uint64_t bestmask,uint64_t recvmask,bits256 srcutxo,uint16_t srcvout,bits256 destutxo,uint16_t destvout,uint8_t siglens[2],uint8_t sigs[2][76]) +void dpow_notarize_update(struct supernet_info *myinfo,struct dpow_info *dp,struct dpow_block *bp,uint8_t senderind,int8_t bestk,uint64_t bestmask,uint64_t recvmask,bits256 srcutxo,uint16_t srcvout,bits256 destutxo,uint16_t destvout,uint8_t siglens[2],uint8_t sigs[2][DPOW_MAXSIGLEN]) { int32_t i,bestmatches = 0,matches = 0; if ( bp->isratify == 0 && bp->state != 0xffffffff && senderind >= 0 && senderind < bp->numnotaries && bits256_nonz(srcutxo) != 0 && bits256_nonz(destutxo) != 0 )