Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
11b009badf
  1. 26
      basilisk/basilisk.c
  2. 2
      basilisk/basilisk.h
  3. 4
      basilisk/basilisk_bitcoin.c
  4. 2
      gecko/gecko_blocks.c
  5. 4
      gecko/gecko_miner.c

26
basilisk/basilisk.c

@ -162,7 +162,9 @@ struct basilisk_item *basilisk_itemcreate(struct supernet_info *myinfo,char *CMD
if ( (ptr->numrequired= minresults) == 0 ) if ( (ptr->numrequired= minresults) == 0 )
ptr->numrequired = 1; ptr->numrequired = 1;
if ( (ptr->metricfunc= metricfunc) != 0 ) if ( (ptr->metricfunc= metricfunc) != 0 )
ptr->vals = jduplicate(vals); {
//ptr->vals = jduplicate(vals);
}
strcpy(ptr->CMD,CMD); strcpy(ptr->CMD,CMD);
safecopy(ptr->symbol,symbol,sizeof(ptr->symbol)); safecopy(ptr->symbol,symbol,sizeof(ptr->symbol));
ptr->expiration = OS_milliseconds() + timeoutmillis; ptr->expiration = OS_milliseconds() + timeoutmillis;
@ -319,14 +321,14 @@ void basilisk_sendback(struct supernet_info *myinfo,char *origCMD,char *symbol,c
} }
} }
char *basilisk_waitresponse(struct supernet_info *myinfo,char *CMD,char *symbol,char *remoteaddr,struct basilisk_item *Lptr,struct basilisk_item *ptr) char *basilisk_waitresponse(struct supernet_info *myinfo,char *CMD,char *symbol,char *remoteaddr,struct basilisk_item *Lptr,cJSON *vals,struct basilisk_item *ptr)
{ {
char *retstr = 0; char *retstr = 0;
if ( ptr == Lptr ) if ( ptr == Lptr )
{ {
if ( (retstr= Lptr->retstr) == 0 ) if ( (retstr= Lptr->retstr) == 0 )
retstr = clonestr("{\"result\":\"null return from local basilisk_issuecmd\"}"); retstr = clonestr("{\"result\":\"null return from local basilisk_issuecmd\"}");
ptr = basilisk_itemcreate(myinfo,CMD,symbol,Lptr->basilisktag,Lptr->numrequired,Lptr->vals,OS_milliseconds() - Lptr->expiration,Lptr->metricfunc); ptr = basilisk_itemcreate(myinfo,CMD,symbol,Lptr->basilisktag,Lptr->numrequired,vals,OS_milliseconds() - Lptr->expiration,Lptr->metricfunc);
queue_enqueue("submitQ",&myinfo->basilisks.submitQ,&ptr->DL,0); queue_enqueue("submitQ",&myinfo->basilisks.submitQ,&ptr->DL,0);
} }
else else
@ -420,10 +422,10 @@ char *basilisk_standardservice(char *CMD,struct supernet_info *myinfo,bits256 ha
{ {
if ( ptr->expiration <= OS_milliseconds() ) if ( ptr->expiration <= OS_milliseconds() )
ptr->expiration = OS_milliseconds() + BASILISK_TIMEOUT; ptr->expiration = OS_milliseconds() + BASILISK_TIMEOUT;
ptr->vals = jduplicate(valsobj); //ptr->vals = jduplicate(valsobj);
strcpy(ptr->symbol,"BTCD"); strcpy(ptr->symbol,"BTCD");
strcpy(ptr->CMD,CMD); strcpy(ptr->CMD,CMD);
return(basilisk_waitresponse(myinfo,CMD,"BTCD",0,&Lptr,ptr)); return(basilisk_waitresponse(myinfo,CMD,"BTCD",0,&Lptr,valsobj,ptr));
} }
else if ( ptr->numsent > 0 ) else if ( ptr->numsent > 0 )
{ {
@ -450,7 +452,7 @@ void basilisk_functions(struct iguana_info *coin,int32_t protocol)
case IGUANA_PROTOCOL_BITCOIN: case IGUANA_PROTOCOL_BITCOIN:
coin->basilisk_balances = basilisk_bitcoinbalances; coin->basilisk_balances = basilisk_bitcoinbalances;
coin->basilisk_rawtx = basilisk_bitcoinrawtx; coin->basilisk_rawtx = basilisk_bitcoinrawtx;
coin->basilisk_rawtxmetric = basilisk_bitcoin_rawtxmetric; //coin->basilisk_rawtxmetric = basilisk_bitcoin_rawtxmetric;
coin->basilisk_value = basilisk_bitcoinvalue; coin->basilisk_value = basilisk_bitcoinvalue;
coin->basilisk_valuemetric = basilisk_bitcoin_valuemetric; coin->basilisk_valuemetric = basilisk_bitcoin_valuemetric;
break; break;
@ -540,7 +542,9 @@ struct basilisk_item *basilisk_issuecmd(struct basilisk_item *Lptr,basilisk_func
if ( (ptr= (*func)(Lptr,myinfo,coin,remoteaddr,basilisktag,timeoutmillis,vals)) != 0 ) if ( (ptr= (*func)(Lptr,myinfo,coin,remoteaddr,basilisktag,timeoutmillis,vals)) != 0 )
{ {
if ( (ptr->metricfunc= metricfunc) != 0 ) if ( (ptr->metricfunc= metricfunc) != 0 )
ptr->vals = jduplicate(vals); {
//ptr->vals = jduplicate(vals);
}
strcpy(ptr->symbol,symbol); strcpy(ptr->symbol,symbol);
ptr->basilisktag = basilisktag; ptr->basilisktag = basilisktag;
ptr->expiration = OS_milliseconds() + timeoutmillis; ptr->expiration = OS_milliseconds() + timeoutmillis;
@ -572,7 +576,7 @@ char *basilisk_standardcmd(struct supernet_info *myinfo,char *CMD,char *activeco
{ {
if ( (ptr= basilisk_issuecmd(&Lptr,func,metric,myinfo,remoteaddr,basilisktag,activecoin,timeoutmillis,vals)) != 0 ) if ( (ptr= basilisk_issuecmd(&Lptr,func,metric,myinfo,remoteaddr,basilisktag,activecoin,timeoutmillis,vals)) != 0 )
{ {
return(basilisk_waitresponse(myinfo,CMD,coin->symbol,remoteaddr,&Lptr,ptr)); return(basilisk_waitresponse(myinfo,CMD,coin->symbol,remoteaddr,&Lptr,vals,ptr));
} }
else return(clonestr("{\"error\":\"null return from basilisk_issuecmd\"}")); else return(clonestr("{\"error\":\"null return from basilisk_issuecmd\"}"));
} else return(clonestr("{\"error\":\"couldnt get coin\"}")); } else return(clonestr("{\"error\":\"couldnt get coin\"}"));
@ -701,7 +705,7 @@ INT_ARRAY_STRING(basilisk,rawtx,basilisktag,vals,activecoin)
ptr->numrequired = 1; ptr->numrequired = 1;
ptr->uniqueflag = 1; ptr->uniqueflag = 1;
ptr->metricdir = -1; ptr->metricdir = -1;
return(basilisk_waitresponse(myinfo,"RAW",coin->symbol,remoteaddr,&Lptr,ptr)); return(basilisk_waitresponse(myinfo,"RAW",coin->symbol,remoteaddr,&Lptr,vals,ptr));
} else return(clonestr("{\"error\":\"error issuing basilisk rawtx\"}")); } else return(clonestr("{\"error\":\"error issuing basilisk rawtx\"}"));
} else return(retstr); } else return(retstr);
} }
@ -906,8 +910,8 @@ int32_t basilisk_issued_iteration(struct supernet_info *myinfo,struct basilisk_i
for (i=0; i<pending->numresults; i++) for (i=0; i<pending->numresults; i++)
if ( pending->results[i] != 0 ) if ( pending->results[i] != 0 )
free(pending->results[i]), pending->results[i] = 0; free(pending->results[i]), pending->results[i] = 0;
if ( pending->vals != 0 ) //if ( pending->vals != 0 )
free_json(pending->vals), pending->vals = 0; // free_json(pending->vals), pending->vals = 0;
free(pending); free(pending);
flag++; flag++;
} }

2
basilisk/basilisk.h

@ -35,7 +35,7 @@ struct basilisk_item
uint32_t submit,finished,basilisktag,numresults,numsent,numexact,uniqueflag,numrequired,childrendone,numchildren,nBits; uint32_t submit,finished,basilisktag,numresults,numsent,numexact,uniqueflag,numrequired,childrendone,numchildren,nBits;
int32_t refcount; int32_t refcount;
char symbol[32],CMD[4],remoteaddr[64]; char symbol[32],CMD[4],remoteaddr[64];
double expiration; cJSON *vals; int32_t metricdir; void *metricfunc; double expiration; int32_t metricdir; void *metricfunc; //cJSON *vals;
char *retstr,*results[BASILISK_MAXFANOUT]; double metrics[BASILISK_MAXFANOUT]; char *retstr,*results[BASILISK_MAXFANOUT]; double metrics[BASILISK_MAXFANOUT];
}; };

4
basilisk/basilisk_bitcoin.c

@ -372,7 +372,7 @@ void *basilisk_bitcoinvalue(struct basilisk_item *Lptr,struct supernet_info *myi
return(ptr); return(ptr);
} }
double basilisk_bitcoin_rawtxmetric_dependents(struct supernet_info *myinfo,struct iguana_info *coin,struct basilisk_item *ptr,struct bitcoin_rawtxdependents *dependents) /*double basilisk_bitcoin_rawtxmetric_dependents(struct supernet_info *myinfo,struct iguana_info *coin,struct basilisk_item *ptr,struct bitcoin_rawtxdependents *dependents)
{ {
int32_t i,j,numaddrs,notfinished = 0; cJSON *childjson,*addresses; struct basilisk_item *child; double metric = 0.; char *childstr,*coinaddr; int64_t inputsum,value,txfee; int32_t i,j,numaddrs,notfinished = 0; cJSON *childjson,*addresses; struct basilisk_item *child; double metric = 0.; char *childstr,*coinaddr; int64_t inputsum,value,txfee;
for (i=0; i<dependents->numptrs; i++) for (i=0; i<dependents->numptrs; i++)
@ -569,7 +569,7 @@ double basilisk_bitcoin_rawtxmetric(struct supernet_info *myinfo,struct basilisk
cost = 1; cost = 1;
dependents->cost = cost; dependents->cost = cost;
return(0.); return(0.);
} }*/
void *basilisk_bitcoinrawtx(struct basilisk_item *Lptr,struct supernet_info *myinfo,struct iguana_info *coin,char *remoteaddr,uint32_t basilisktag,int32_t timeoutmillis,cJSON *valsobj) void *basilisk_bitcoinrawtx(struct basilisk_item *Lptr,struct supernet_info *myinfo,struct iguana_info *coin,char *remoteaddr,uint32_t basilisktag,int32_t timeoutmillis,cJSON *valsobj)
{ {

2
gecko/gecko_blocks.c

@ -295,7 +295,7 @@ int32_t basilisk_blocksubmit(struct supernet_info *myinfo,struct iguana_info *bt
{ {
valsobj = cJSON_CreateObject(); valsobj = cJSON_CreateObject();
jaddnum(valsobj,"minresults",myinfo->numrelays - 1); jaddnum(valsobj,"minresults",myinfo->numrelays - 1);
jaddnum(valsobj,"timeout",1000); jaddnum(valsobj,"timeout",10000);
jaddnum(valsobj,"fanout",-1); jaddnum(valsobj,"fanout",-1);
jaddstr(valsobj,"symbol",virt->symbol); jaddstr(valsobj,"symbol",virt->symbol);
if ( (str2= basilisk_standardservice("BLK",myinfo,hash2,valsobj,blockstr,1)) != 0 ) if ( (str2= basilisk_standardservice("BLK",myinfo,hash2,valsobj,blockstr,1)) != 0 )

4
gecko/gecko_miner.c

@ -374,8 +374,8 @@ void gecko_miner(struct supernet_info *myinfo,struct iguana_info *btcd,struct ig
free(blockstr); free(blockstr);
else else
{ {
virt->newblockstr = blockstr; //virt->newblockstr = blockstr;
virt->newblock = newblock; //virt->newblock = newblock;
} }
} }
if ( txptrs != (void *)space ) if ( txptrs != (void *)space )

Loading…
Cancel
Save