Browse Source

Merge pull request #172 from jl777/dev

Dev
win-cross
jl777 8 years ago
committed by GitHub
parent
commit
990c8da8da
  1. 2
      iguana/dPoW.h
  2. 2
      iguana/dpow/dpow_rpc.c
  3. 41
      iguana/iguana777.c
  4. 2
      iguana/iguana_unspents.c
  5. 33
      iguana/tests/assetchains
  6. 2
      includes/iguana_structs.h

2
iguana/dPoW.h

@ -19,7 +19,7 @@
#define DPOW_FIRSTRATIFY 1000 #define DPOW_FIRSTRATIFY 1000
#define DPOW_CHECKPOINTFREQ 10 #define DPOW_CHECKPOINTFREQ 10
#define DPOW_MINSIGS 11 #define DPOW_MINSIGS 17
//#define DPOW_M(bp) ((bp)->minsigs) // (((bp)->numnotaries >> 1) + 1) //#define DPOW_M(bp) ((bp)->minsigs) // (((bp)->numnotaries >> 1) + 1)
#define DPOW_MODIND(bp,offset) (((((bp)->height / DPOW_CHECKPOINTFREQ) % (bp)->numnotaries) + (offset)) % (bp)->numnotaries) #define DPOW_MODIND(bp,offset) (((((bp)->height / DPOW_CHECKPOINTFREQ) % (bp)->numnotaries) + (offset)) % (bp)->numnotaries)
#define DPOW_VERSION 0x0777 #define DPOW_VERSION 0x0777

2
iguana/dpow/dpow_rpc.c

@ -560,6 +560,8 @@ int32_t dpow_haveutxo(struct supernet_info *myinfo,struct iguana_info *coin,bits
{ {
i = (r + j) % n; i = (r + j) % n;
item = jitem(unspents,i); item = jitem(unspents,i);
if ( is_cJSON_False(jobj(item,"spendable")) != 0 )
continue;
satoshis = SATOSHIDEN * jdouble(item,"amount"); satoshis = SATOSHIDEN * jdouble(item,"amount");
if ( satoshis == DPOW_UTXOSIZE && (address= jstr(item,"address")) != 0 && strcmp(address,coinaddr) == 0 ) if ( satoshis == DPOW_UTXOSIZE && (address= jstr(item,"address")) != 0 && strcmp(address,coinaddr) == 0 )
{ {

41
iguana/iguana777.c

@ -872,12 +872,13 @@ void iguana_callcoinstart(struct supernet_info *myinfo,struct iguana_info *coin)
memset(zero.bytes,0,sizeof(zero)); memset(zero.bytes,0,sizeof(zero));
if ( (bp= iguana_bundlecreate(coin,&bundlei,0,*(bits256 *)coin->chain->genesis_hashdata,zero,1)) != 0 ) if ( (bp= iguana_bundlecreate(coin,&bundlei,0,*(bits256 *)coin->chain->genesis_hashdata,zero,1)) != 0 )
bp->bundleheight = 0; bp->bundleheight = 0;
coin->notarychain = -1;
if ( coin->FULLNODE == 0 ) if ( coin->FULLNODE == 0 )
{ {
coin->notarychain = -1;
for (i=0; i<sizeof(NOTARYCHAINS)/sizeof(*NOTARYCHAINS); i++) for (i=0; i<sizeof(NOTARYCHAINS)/sizeof(*NOTARYCHAINS); i++)
if ( strcmp(coin->symbol,NOTARYCHAINS[i]) == 0 ) if ( strcmp(coin->symbol,NOTARYCHAINS[i]) == 0 )
{ {
printf("SET NOTARYCHAIN.%d\n",i);
coin->notarychain = i; coin->notarychain = i;
break; break;
} }
@ -885,10 +886,7 @@ void iguana_callcoinstart(struct supernet_info *myinfo,struct iguana_info *coin)
addr = &coin->peers->active[IGUANA_MAXPEERS-2]; addr = &coin->peers->active[IGUANA_MAXPEERS-2];
iguana_initpeer(coin,addr,(uint32_t)calc_ipbits(coin->seedipaddr)); iguana_initpeer(coin,addr,(uint32_t)calc_ipbits(coin->seedipaddr));
printf("SEED_IPADDR initpeer.(%s) notarychain.%d\n",addr->ipaddr,coin->notarychain); printf("SEED_IPADDR initpeer.(%s) notarychain.%d\n",addr->ipaddr,coin->notarychain);
if ( coin->notarychain < 0 ) iguana_launch(coin,"connection",iguana_startconnection,addr,IGUANA_CONNTHREAD);
{
iguana_launch(coin,"connection",iguana_startconnection,addr,IGUANA_CONNTHREAD);
}
} }
void iguana_coinloop(void *arg) void iguana_coinloop(void *arg)
@ -899,20 +897,6 @@ void iguana_coinloop(void *arg)
coins++; coins++;
coin = coins[0]; coin = coins[0];
printf("begin coinloop[%d] %s\n",n,coin->symbol); printf("begin coinloop[%d] %s\n",n,coin->symbol);
if ( myinfo->IAMNOTARY != 0 && (alladdresses= _dex_alladdresses(myinfo,coin->symbol)) != 0 )
{
if ( (alljson= cJSON_Parse(alladdresses)) != 0 )
{
if ( is_cJSON_Array(alljson) != 0 && (n= cJSON_GetArraySize(alljson)) > 0 )
{
for (i=0; i<n; i++)
if ( (retstr= dpow_importaddress(myinfo,coin,jstri(alljson,i),i<n-1)) != 0 )
free(retstr);
}
free_json(alljson);
}
free(alladdresses);
}
memset(zero.bytes,0,sizeof(zero)); memset(zero.bytes,0,sizeof(zero));
while ( 1 ) while ( 1 )
{ {
@ -921,6 +905,25 @@ void iguana_coinloop(void *arg)
{ {
if ( (coin= coins[i]) != 0 ) if ( (coin= coins[i]) != 0 )
{ {
if ( coin->didaddresses == 0 )
{
coin->didaddresses = 1;
coin->notarychain = -1;
if ( myinfo->IAMNOTARY != 0 && (alladdresses= _dex_alladdresses(myinfo,coin->symbol)) != 0 )
{
if ( (alljson= cJSON_Parse(alladdresses)) != 0 )
{
if ( is_cJSON_Array(alljson) != 0 && (n= cJSON_GetArraySize(alljson)) > 0 )
{
for (i=0; i<n; i++)
if ( (retstr= dpow_importaddress(myinfo,coin,jstri(alljson,i),i<n-1)) != 0 )
free(retstr);
}
free_json(alljson);
}
free(alladdresses);
}
}
if ( coin->FULLNODE < 0 || coin->notarychain >= 0 ) if ( coin->FULLNODE < 0 || coin->notarychain >= 0 )
continue; continue;
/*if ( strcmp(coin->symbol,"RELAY") == 0 ) /*if ( strcmp(coin->symbol,"RELAY") == 0 )

2
iguana/iguana_unspents.c

@ -1220,6 +1220,8 @@ int32_t iguana_RTunspentslists(struct supernet_info *myinfo,struct iguana_info *
{ {
for (i=0; i<n; i++) for (i=0; i<n; i++)
{ {
if ( is_cJSON_False(jobj(item,"spendable")) != 0 )
continue;
item = jitem(array,i); item = jitem(array,i);
if ( (spendscriptstr= jstr(item,"scriptPubKey")) == 0 ) if ( (spendscriptstr= jstr(item,"scriptPubKey")) == 0 )
{ {

33
iguana/tests/assetchains

@ -1,33 +0,0 @@
#!/bin/bash
./assetchaind -ac_name=USD -addnode=78.47.196.146 &
./assetchaind -ac_name=EUR -addnode=78.47.196.146 &
./assetchaind -ac_name=JPY -addnode=78.47.196.146 &
./assetchaind -ac_name=GBP -addnode=78.47.196.146 &
./assetchaind -ac_name=AUD -addnode=78.47.196.146 &
./assetchaind -ac_name=CAD -addnode=78.47.196.146 &
./assetchaind -ac_name=CHF -addnode=78.47.196.146 &
./assetchaind -ac_name=NZD -addnode=78.47.196.146 &
./assetchaind -ac_name=CNY -addnode=78.47.196.146 &
./assetchaind -ac_name=RUB -addnode=78.47.196.146 &
./assetchaind -ac_name=MXN -addnode=78.47.196.146 &
./assetchaind -ac_name=RBL -addnode=78.47.196.146 &
./assetchaind -ac_name=INR -addnode=78.47.196.146 &
./assetchaind -ac_name=HKD -addnode=78.47.196.146 &
./assetchaind -ac_name=TRY -addnode=78.47.196.146 &
./assetchaind -ac_name=ZAR -addnode=78.47.196.146 &
./assetchaind -ac_name=PLN -addnode=78.47.196.146 &
./assetchaind -ac_name=NOK -addnode=78.47.196.146 &
./assetchaind -ac_name=SEK -addnode=78.47.196.146 &
./assetchaind -ac_name=DKK -addnode=78.47.196.146 &
./assetchaind -ac_name=CZK -addnode=78.47.196.146 &
./assetchaind -ac_name=HUF -addnode=78.47.196.146 &
./assetchaind -ac_name=ILS -addnode=78.47.196.146 &
./assetchaind -ac_name=KRW -addnode=78.47.196.146 &
./assetchaind -ac_name=MYR -addnode=78.47.196.146 &
./assetchaind -ac_name=PHP -addnode=78.47.196.146 &
./assetchaind -ac_name=RON -addnode=78.47.196.146 &
./assetchaind -ac_name=SGD -addnode=78.47.196.146 &
./assetchaind -ac_name=THB -addnode=78.47.196.146 &
./assetchaind -ac_name=BGN -addnode=78.47.196.146 &
./assetchaind -ac_name=IDR -addnode=78.47.196.146 &
./assetchaind -ac_name=HRK -addnode=78.47.196.146 &

2
includes/iguana_structs.h

@ -517,7 +517,7 @@ struct iguana_info
char lastdispstr[2048]; char lastdispstr[2048];
double txidfind_totalmillis,txidfind_num,spendtxid_totalmillis,spendtxid_num; double txidfind_totalmillis,txidfind_num,spendtxid_totalmillis,spendtxid_num;
struct iguana_monitorinfo monitoring[256]; struct iguana_monitorinfo monitoring[256];
int32_t notarychain; int32_t notarychain,didaddresses;
struct datachain_info dPoW; struct datachain_info dPoW;
struct iguana_zblock newblock; char *newblockstr; struct iguana_zblock newblock; char *newblockstr;
int32_t relay_RTheights[BASILISK_MAXRELAYS]; int32_t relay_RTheights[BASILISK_MAXRELAYS];

Loading…
Cancel
Save