Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better IguanaTV #433

Closed
Closed
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion crypto777/m_LP
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
git pull
Alrighttt marked this conversation as resolved.
Show resolved Hide resolved
#git pull
Alrighttt marked this conversation as resolved.
Show resolved Hide resolved
rm *.o
gcc -c -DLIQUIDITY_PROVIDER=1 -O2 *.c jpeg/*.c jpeg/unix/*.c -I/usr/lib/x86_64-linux-gnu/curl
mkdir ../agents
Expand Down
43 changes: 31 additions & 12 deletions iguana/dpow/dpow_fsm.c
Original file line number Diff line number Diff line change
Expand Up @@ -330,8 +330,11 @@ void dpow_statemachinestart(void *ptr)
}
}
portable_mutex_unlock(&dpowT_mutex);

fprintf(stderr, "[---] State: sym.%s, dest.%s, blocks.%d/%d (size.%zu)\n", dp->symbol, dp->dest, busy_blocks, dp->maxblocks, sizeof(*bp));
snprintf(colour, sizeof(colour), strcmp(dp->symbol, "KMD") == 0 ? GREEN : YELLOW);
snprintf(colour2, sizeof(colour2), strcmp(dp->dest, "KMD") == 0 ? GREEN : YELLOW);
printf("%s[-%s-] "RESET,colour,dp->symbol);
printf("State: begin, destination.%s%s "RESET,colour2,dp->dest);
printf("busy blocks.%d/%d (size.%zu)\n"RESET, busy_blocks, dp->maxblocks, sizeof(*bp));
}

//if ( (bp= dpow_heightfind(myinfo,dp, checkpoint.blockhash.height)) == 0 )
Expand All @@ -349,7 +352,11 @@ void dpow_statemachinestart(void *ptr)
bp = calloc(1,sizeof(*bp));
dp->blocks[blockindex] = bp;
portable_mutex_unlock(&dpowT_mutex);
printf("blockindex.%i allocate bp for %s ht.%d -> %s\n",blockindex,src->symbol,checkpoint.blockhash.height,dest->symbol);
snprintf(colour, sizeof(colour), strcmp(src->symbol, "KMD") == 0 ? GREEN : YELLOW);
snprintf(colour2, sizeof(colour2), strcmp(dest->symbol, "KMD") == 0 ? GREEN : YELLOW);
printf("%s[%s] "RESET,colour,src->symbol);
printf("State: allocate bp: blockindex.%i ht.%d ->"RESET,blockindex,checkpoint.blockhash.height);
printf("%s%s\n"RESET,colour2,dest->symbol);
bp->MoM = MoM;
bp->MoMdepth = MoMdepth;
bp->CCid = dp->fullCCid & 0xffff;
Expand Down Expand Up @@ -512,7 +519,11 @@ void dpow_statemachinestart(void *ptr)
return;
}
bp->myind = myind;
printf("[%d] notarize %s->%s %s ht.%d minsigs.%d duration.%d start.%u MoM[%d] %s CCid.%u\n",bp->myind,dp->symbol,dp->dest,bits256_str(str,checkpoint.blockhash.hash),checkpoint.blockhash.height,minsigs,duration,checkpoint.timestamp,bp->MoMdepth,bits256_str(str2,bp->MoM),bp->CCid);
snprintf(colour, sizeof(colour), strcmp(dp->symbol, "KMD") == 0 ? GREEN : YELLOW);
snprintf(colour2, sizeof(colour2), strcmp(dp->dest, "KMD") == 0 ? GREEN : YELLOW);
printf("%s[%s] "RESET,colour,dp->symbol);
printf("Notarize: destination.%s%s "RESET,colour2,dp->dest);
printf("bhash.%s ht.%d minsigs.%d duration.%d start.%u MoM[%d] %s CCid.%u myid.%d\n"RESET,bits256_str(str,checkpoint.blockhash.hash),checkpoint.blockhash.height,minsigs,duration,checkpoint.timestamp,bp->MoMdepth,bits256_str(str2,bp->MoM),bp->CCid,bp->myind);
if ( bp->isratify != 0 && memcmp(bp->notaries[0].pubkey,bp->ratified_pubkeys[0],33) != 0 )
{
for (i=0; i<33; i++)
Expand Down Expand Up @@ -551,7 +562,7 @@ void dpow_statemachinestart(void *ptr)
{
// lock the dest utxo if destination coin is KMD.
if (dpow_lockunspent(myinfo,bp->destcoin,destaddr,bits256_str(str2,ep->dest.prev_hash),ep->dest.prev_vout) != 0)
printf(">>>> LOCKED %s UTXO.(%s) vout.(%d)\n",dest->symbol,bits256_str(str2,ep->dest.prev_hash),ep->dest.prev_vout);
printf(">>>> LOCKED ->%s UTXO.(%s) vout.(%d)\n",dest->symbol,bits256_str(str2,ep->dest.prev_hash),ep->dest.prev_vout);
else
printf("<<<< FAILED TO LOCK %s UTXO.(%s) vout.(%d)\n",dest->symbol,bits256_str(str2,ep->dest.prev_hash),ep->dest.prev_vout);
}
Expand All @@ -562,7 +573,7 @@ void dpow_statemachinestart(void *ptr)
{
// lock the src coin selected utxo if the source coin is KMD.
if (dpow_lockunspent(myinfo,bp->srccoin,srcaddr,bits256_str(str2,ep->src.prev_hash),ep->src.prev_vout) != 0)
printf(">>>> LOCKED %s UTXO.(%s) vout.(%d)\n",src->symbol,bits256_str(str2,ep->src.prev_hash),ep->src.prev_vout);
printf(">>>> LOCKED %s-> UTXO.(%s) vout.(%d)\n",src->symbol,bits256_str(str2,ep->src.prev_hash),ep->src.prev_vout);
else
printf("<<<< FAILED TO LOCK %s UTXO.(%s) vout.(%d)\n",src->symbol,bits256_str(str2,ep->src.prev_hash),ep->src.prev_vout);
}
Expand Down Expand Up @@ -615,7 +626,9 @@ void dpow_statemachinestart(void *ptr)
extralen = dpow_paxpending(myinfo,extras,sizeof(extras),&bp->paxwdcrc,bp->MoM,bp->MoMdepth,bp->CCid,src_or_dest,bp);
bp->notaries[bp->myind].paxwdcrc = bp->paxwdcrc;
}
printf("PAXWDCRC.%x myind.%d isratify.%d DPOW.%s statemachine checkpoint.%d %s start.%u+dur.%d vs %ld MoM[%d] %s\n",bp->paxwdcrc,bp->myind,bp->isratify,src->symbol,checkpoint.blockhash.height,bits256_str(str,checkpoint.blockhash.hash),starttime,bp->duration,time(NULL),bp->MoMdepth,bits256_str(str2,bp->MoM));
snprintf(colour, sizeof(colour), strcmp(src->symbol, "KMD") == 0 ? GREEN : YELLOW);
printf("%s[%s] "RESET,colour,src->symbol);
printf(" State: checkpoint.%d paxwdcrc.%x isratify.%d %s start.%u+dur.%d vs %ld MoM[%d] %s myid.%d\n"RESET,checkpoint.blockhash.height,bp->paxwdcrc,bp->isratify,bits256_str(str,checkpoint.blockhash.hash),starttime,bp->duration,time(NULL),bp->MoMdepth,bits256_str(str2,bp->MoM),bp->myind);
for (i=0; i<sizeof(srchash); i++)
srchash.bytes[i] = dp->minerkey33[i+1];
//printf("start utxosync start.%u %u\n",starttime,(uint32_t)time(NULL));
Expand Down Expand Up @@ -649,7 +662,9 @@ void dpow_statemachinestart(void *ptr)
}
if ( dp->ratifying > 1 )
{
printf("new ratification started. abort ht.%d\n",bp->height);
snprintf(colour, sizeof(colour), strcmp(src->symbol, "KMD") == 0 ? GREEN : YELLOW);
printf("%s[%s] "RESET,colour,src->symbol);
printf("NEW ratification started. ABORT ht.%d\n",bp->height);
break;
}
if ( bp->isratify == 0 )
Expand All @@ -658,7 +673,9 @@ void dpow_statemachinestart(void *ptr)
checkhash = dpow_getblockhash(myinfo,bp->srccoin,bp->height);
if ( bits256_cmp(checkhash,bp->hashmsg) != 0 )
{
printf("%s ht.%d %s got reorged to %s, abort notarization\n",bp->srccoin->symbol,bp->height,bits256_str(str,bp->hashmsg),bits256_str(str2,checkhash));
snprintf(colour, sizeof(colour), RED);
printf("%s[%s] "RESET,colour,dp->symbol);
printf("REORG ht.%d was.%s now.%s, abort notarization\n"RESET,bp->height,bits256_str(str,bp->hashmsg),bits256_str(str2,checkhash));
break;
}
}
Expand All @@ -679,7 +696,9 @@ void dpow_statemachinestart(void *ptr)
}
sleep(30);
}
printf("END isratify.%d:%d bestk.%d %llx sigs.%llx state.%x machine ht.%d completed state.%x %s.%s %s.%s recvmask.%llx paxwdcrc.%x %p %p\n",bp->isratify,dp->ratifying,bp->bestk,(long long)bp->bestmask,(long long)(bp->bestk>=0?bp->destsigsmasks[bp->bestk]:0),bp->state,bp->height,bp->state,dp->dest,bits256_str(str,bp->desttxid),dp->symbol,bits256_str(str2,bp->srctxid),(long long)bp->recvmask,bp->paxwdcrc,src,dest);
snprintf(colour, sizeof(colour), strcmp(dp->symbol, "KMD") == 0 ? GREEN : YELLOW);
printf("%s[%s] "RESET,colour,dp->symbol);
printf("State: completed %x paxwdcrc.%x isratify.%d:%d bestk.%d %llx sig.%llx ht.%d recmask.%llx %p %p txhashes: %s.%s %s.%s\n"RESET,bp->state,bp->paxwdcrc,bp->isratify,dp->ratifying,bp->bestk,(long long)bp->bestmask,(long long)(bp->bestk>=0?bp->destsigsmasks[bp->bestk]:0),bp->height,(long long)bp->recvmask,src,dest,dp->symbol,bits256_str(str2,bp->srctxid),dp->dest,bits256_str(str,bp->desttxid));
dp->lastrecvmask = bp->recvmask;
dp->ratifying -= bp->isratify;
#if STAKEDTEST
Expand Down Expand Up @@ -779,13 +798,13 @@ void dpow_statemachinestart(void *ptr)
if ( ep != 0 && strcmp("KMD",dest->symbol) == 0 && ep->dest.prev_vout != -1 )
{
if ( dpow_unlockunspent(myinfo,bp->destcoin,destaddr,bits256_str(str2,ep->dest.prev_hash),ep->dest.prev_vout) != 0 )
printf(">>>> UNLOCKED %s UTXO.(%s) vout.(%d)\n",dest->symbol,bits256_str(str2,ep->dest.prev_hash),ep->dest.prev_vout);
printf(">>>> UNLOCKED ->%s UTXO.(%s) vout.(%d)\n",dest->symbol,bits256_str(str2,ep->dest.prev_hash),ep->dest.prev_vout);
}
// unlock the src selected utxo on KMD.
if ( ep != 0 && strcmp("KMD",src->symbol) == 0 && ep->src.prev_vout != -1 )
{
if ( dpow_unlockunspent(myinfo,bp->srccoin,srcaddr,bits256_str(str2,ep->src.prev_hash),ep->src.prev_vout) != 0)
printf(">>>> UNLOCKED %s UTXO.(%s) vout.(%d)\n",src->symbol,bits256_str(str2,ep->src.prev_hash),ep->src.prev_vout);
printf(">>>> UNLOCKED %s-> UTXO.(%s) vout.(%d)\n",src->symbol,bits256_str(str2,ep->src.prev_hash),ep->src.prev_vout);
}
portable_mutex_lock(&dpowT_mutex);
dp->blocks[blockindex] = 0;
Expand Down
11 changes: 8 additions & 3 deletions iguana/dpow/dpow_network.c
Original file line number Diff line number Diff line change
Expand Up @@ -2088,7 +2088,9 @@ void dpow_notarize_update(struct supernet_info *myinfo,struct dpow_info *dp,stru
{
if ( bp->pendingbestk < 0 )//bp->pendingbestk != bp->bestk || bp->pendingbestmask != bp->bestmask )
{
printf("new PENDING BESTK (%d %llx) state.%d\n",bp->bestk,(long long)bp->bestmask,bp->state);
snprintf(colour, sizeof(colour), strcmp(dp->symbol, "KMD") == 0 ? GREEN : YELLOW);
printf("%s[%s] "RESET,colour,dp->symbol);
printf("State: New PENDING BESTK (%d %llx) state.%d\n"RESET,bp->bestk,(long long)bp->bestmask,bp->state);
bp->pendingbestk = bp->bestk;
bp->pendingbestmask = bp->bestmask;
dpow_signedtxgen(myinfo,dp,bp->destcoin,bp,bp->pendingbestk,bp->pendingbestmask,bp->myind,DPOW_SIGBTCCHANNEL,1,0);
Expand Down Expand Up @@ -2125,8 +2127,11 @@ void dpow_notarize_update(struct supernet_info *myinfo,struct dpow_info *dp,stru
printf("mypaxcrc.%x\n",bp->paxwdcrc);
}
char str[65];
if ( (rand() % 130) == 0 )
printf("%x ht.%d [%d] ips.%d %s NOTARIZE.%d matches.%d paxmatches.%d bestmatches.%d bestk.%d:%d %llx recv.%llx sigmasks.(%llx %llx) senderind.%d state.%x (%x %x %x) MoM.%s [%d]\n",bp->paxwdcrc,bp->height,bp->myind,dp->numipbits,dp->symbol,bp->minsigs,matches,paxmatches,bestmatches,bp->bestk,bp->pendingbestk,(long long)bp->bestmask,(long long)bp->recvmask,(long long)(bp->bestk>=0?bp->destsigsmasks[bp->bestk]:0),(long long)(bp->bestk>=0?bp->srcsigsmasks[bp->bestk]:0),senderind,bp->state,bp->hashmsg.uints[0],bp->desttxid.uints[0],bp->srctxid.uints[0],bits256_str(str,bp->MoM),bp->MoMdepth);
if ( (rand() % 130) == 0 && matches >10 && bp->bestk > 0) {
snprintf(colour, sizeof(colour), strcmp(dp->symbol, "KMD") == 0 ? GREEN : YELLOW);
printf("%s[%s] "RESET,colour,dp->symbol);
printf("State: NOTARIZE paxwdcrc.%x ht.%d minsig.%d peers.%d matches.%d paxmatches.%d bestmatches.%d bestk.%d:%d %llx recv.%llx sigmasks.(%llx %llx) senderid.%d myid.%d state.%x (%x %x %x) MoM.%s [%d]\n"RESET,bp->paxwdcrc,bp->height,bp->minsigs,dp->numipbits,matches,paxmatches,bestmatches,bp->bestk,bp->pendingbestk,(long long)bp->bestmask,(long long)bp->recvmask,(long long)(bp->bestk>=0?bp->destsigsmasks[bp->bestk]:0),(long long)(bp->bestk>=0?bp->srcsigsmasks[bp->bestk]:0),senderind,bp->myind,bp->state,bp->hashmsg.uints[0],bp->desttxid.uints[0],bp->srctxid.uints[0],bits256_str(str,bp->MoM),bp->MoMdepth);
}
}
}

Expand Down
14 changes: 10 additions & 4 deletions iguana/dpow/dpow_rpc.c
Original file line number Diff line number Diff line change
Expand Up @@ -815,9 +815,13 @@ char *dpow_sendrawtransaction(struct supernet_info *myinfo,struct iguana_info *c
jaddistr(array,signedtx);
paramstr = jprint(array,1);
retstr = bitcoind_passthru(coin->symbol,coin->chain->serverport,coin->chain->userpass,"sendrawtransaction",paramstr);
char colour[16];
snprintf(colour, sizeof(colour), mine != 0 ? GREEN : RED);
fprintf(stderr,"%s>>>>>>>>>>> %s dpow_sendrawtransaction (%s)\n"RESET,colour,coin->symbol,retstr);
if (mine != 0) {
snprintf(colour, sizeof(colour),GREEN);
printf("%s[-%s-] Participant in this round. >>>>> tx:%s\n"RESET,colour,coin->symbol,retstr);
} else {
snprintf(colour, sizeof(colour),RED);
printf("%s[-%s-] Nonparticipant in this round. >> tx:%s\n"RESET,colour,coin->symbol,retstr);
}
free(paramstr);
return(retstr);
}
Expand Down Expand Up @@ -1046,7 +1050,9 @@ int32_t dpow_haveutxo(struct supernet_info *myinfo,struct iguana_info *coin,bits
}
OS_randombytes((uint8_t *)&r,sizeof(r));
i = r % n;
printf("[%s] : chosen = %d out of %d loop.(%d)\n",coin->symbol,i,n,j);
snprintf(colour, sizeof(colour), strcmp(coin->symbol, "KMD") == 0 ? GREEN : YELLOW);
printf("%s[-%s-] "RESET,colour,coin->symbol);
printf(": chosen = %d out of %d loop.(%d)\n"RESET,i,n,j);
if ( (item= jitem(unspents,i)) == 0 )
{
j++;
Expand Down
10 changes: 8 additions & 2 deletions iguana/dpow/dpow_tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -543,7 +543,11 @@ void dpow_rawtxsign(struct supernet_info *myinfo,struct dpow_info *dp,struct igu
if ( valid != 0 )
{
char *txinfo = jprint(item,0);
printf("bestk.%d %llx %s height.%d mod.%d VINI.%d myind.%d MINE.(%s) j.%d\n",bestk,(long long)bestmask,(src_or_dest != 0) ? bp->destcoin->symbol : bp->srccoin->symbol,bp->height,DPOW_MODIND(bp,0),j,myind,txinfo,j);
snprintf(colour, sizeof(colour), strcmp((src_or_dest != 0) ? bp->destcoin->symbol : bp->srccoin->symbol, "KMD") == 0 ? GREEN : YELLOW);
printf("%s[%s] "RESET,colour,(src_or_dest != 0) ? bp->destcoin->symbol : bp->srccoin->symbol);
printf("height.%d bestk.%d %llx mod.%d vin.%d myid.%d "RESET,bp->height,bestk,(long long)bestmask,DPOW_MODIND(bp,0),j,myind);
snprintf(colour2, sizeof(colour2), BRIGHTBLUE);
printf("%sMINE.(%s)\n"RESET,colour2,txinfo);
free(txinfo);
cp->siglens[bestk] = (int32_t)strlen(sigstr) >> 1;
if ( src_or_dest != 0 )
Expand Down Expand Up @@ -673,7 +677,9 @@ void dpow_sigscheck(struct supernet_info *myinfo,struct dpow_info *dp,struct dpo
{
bp->state = state;
dpow_send(myinfo,dp,bp,txid,bp->hashmsg,(src_or_dest != 0) ? DPOW_BTCTXIDCHANNEL : DPOW_TXIDCHANNEL,bp->height,txdata,len+32);
printf("complete statemachine.%s ht.%d state.%d (%x %x)\n",coin->symbol,bp->height,bp->state,bp->hashmsg.uints[0],txid.uints[0]);
snprintf(colour, sizeof(colour), strcmp(coin->symbol, "KMD") == 0 ? GREEN : YELLOW);
printf("%s[%s] "RESET,colour,coin->symbol);
printf("State: fsm complete ht.%d state.%d (%x %x)\n"RESET,bp->height,bp->state,bp->hashmsg.uints[0],txid.uints[0]);
}
} else printf("sendtxid mismatch got %s instead of %s\n",bits256_str(str,txid),bits256_str(str2,signedtxid));
}
Expand Down
3 changes: 2 additions & 1 deletion iguana/iguana_notary.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
int32_t dpow_datahandler(struct supernet_info *myinfo,struct dpow_info *dp,struct dpow_block *bp,uint8_t nn_senderind,uint32_t channel,uint32_t height,uint8_t *data,int32_t datalen);
uint64_t dpow_maskmin(uint64_t refmask,struct dpow_block *bp,int8_t *lastkp);
int32_t dpow_checkutxo(struct supernet_info *myinfo,struct dpow_info *dp,struct dpow_block *bp,struct iguana_info *coin,bits256 *txidp,int32_t *voutp,char *coinaddr,char *srccoin);

char colour[16];
char colour2[16];
#include "dpow/dpow_network.c"
#include "dpow/dpow_rpc.c"
#include "dpow/dpow_tx.c"
Expand Down
1 change: 1 addition & 0 deletions includes/iguana_defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,7 @@ extern int32_t IGUANA_NUMHELPERS;
#define MAGENTA "\033[35m" /* Magenta */
#define CYAN "\033[36m" /* Cyan */
#define WHITE "\033[37m" /* White */
#define BRIGHTBLUE "\033[94m" /* Bright Blue */
#define BOLDBLACK "\033[1m\033[30m" /* Bold Black */
#define BOLDRED "\033[1m\033[31m" /* Bold Red */
#define BOLDGREEN "\033[1m\033[32m" /* Bold Green */
Expand Down