Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
478ec8b666
  1. 1
      crypto777/OS_portable.h
  2. 15
      iguana/SuperNET.c
  3. 2
      iguana/iguana_msg.c
  4. 3
      iguana/iguana_peers.c
  5. 3
      iguana/main.c

1
crypto777/OS_portable.h

@ -312,6 +312,7 @@ bits256 bits256_from_compact(uint32_t c);
int32_t btc_priv2pub(uint8_t pubkey[33],uint8_t privkey[32]);
extern char *Iguana_validcommands[];
extern bits256 GENESIS_PUBKEY,GENESIS_PRIVKEY;
#endif

15
iguana/SuperNET.c

@ -125,8 +125,10 @@ int32_t SuperNET_json2bits(struct supernet_info *myinfo,uint8_t *serialized,int3
*complenp = (int32_t)hconv_bitlen(numbits);
seed = curve25519_shared(myinfo->privkey,destpub);
vcalc_sha256(0,seed2.bytes,seed.bytes,sizeof(seed));
char str[65],str2[65],str3[65],str4[65];
printf("mypriv.%s destpub.%s seed.%s seed2.%s\n",bits256_str(str,myinfo->privkey),bits256_str(str2,destpub),bits256_str(str3,seed),bits256_str(str4,seed2));
int32_t seedlen; seedlen = ramcoder_compress(&compressed[3],maxsize-3,serialized,len,seed2);
char str[65]; printf("strlen.%d len.%d -> complen.%d %s seedlen.%d\n",(int32_t)strlen(jprint(json,0)),len,*complenp,bits256_str(str,seed2),(int32_t)hconv_bitlen(seedlen));
printf("strlen.%d len.%d -> complen.%d %s seedlen.%d\n",(int32_t)strlen(jprint(json,0)),len,*complenp,bits256_str(str,seed2),(int32_t)hconv_bitlen(seedlen));
*complenp = (int32_t)hconv_bitlen(seedlen);
return(len);
}
@ -143,7 +145,7 @@ cJSON *SuperNET_bits2json(struct supernet_info *myinfo,bits256 prevpub,uint8_t *
len = serialized[0];
len = (len << 8) + serialized[1];
len = (len << 8) + serialized[2];
seed = curve25519_shared(myinfo->privkey,prevpub);
seed = curve25519_shared(GENESIS_PRIVKEY,prevpub);
vcalc_sha256(0,seed2.bytes,seed.bytes,sizeof(seed));
char str[65]; printf("compressed len.%d seed2.(%s)\n",len,bits256_str(str,seed2));
numbits = ramcoder_decompress(space,IGUANA_MAXPACKETSIZE,&serialized[3],len<<3,seed2);
@ -298,9 +300,12 @@ char *SuperNET_forward(struct supernet_info *myinfo,char *hexmsg,uint32_t destip
return(SuperNET_DHTsend(myinfo,routehash,hexmsg,maxdelay));
}
int32_t SuperNET_destination(struct supernet_info *myinfo,uint32_t *destipbitsp,bits256 *destpubp,int32_t *maxdelayp,cJSON *json)
int32_t SuperNET_destination(struct supernet_info *myinfo,uint32_t *destipbitsp,bits256 *destpubp,int32_t *maxdelayp,cJSON *json,char *remoteaddr)
{
char *destip; int32_t destflag = SUPERNET_FORWARD;
char *destip; int32_t destflag = 0;
if ( remoteaddr != 0 && remoteaddr[0] != 0 )
destflag = SUPERNET_FORWARD;
else destflag = SUPERNET_ISMINE;
if ( (destip= jstr(json,"destip")) != 0 )
*destipbitsp = (uint32_t)calc_ipbits(destip);
else *destipbitsp = 0;
@ -321,7 +326,7 @@ char *SuperNET_JSON(struct supernet_info *myinfo,cJSON *json,char *remoteaddr)
if ( remoteaddr != 0 && strcmp(remoteaddr,"127.0.0.1") == 0 )
remoteaddr = 0;
//printf("SuperNET_JSON.(%s) remote.(%s)\n",jprint(json,0),remoteaddr!=0?remoteaddr:"");
destflag = SuperNET_destination(myinfo,&destipbits,&destpub,&maxdelay,json);
destflag = SuperNET_destination(myinfo,&destipbits,&destpub,&maxdelay,json,remoteaddr);
printf("destflag.%d\n",destflag);
if ( (destflag & SUPERNET_FORWARD) != 0 )
{

2
iguana/iguana_msg.c

@ -138,9 +138,9 @@ void iguana_gotversion(struct iguana_info *coin,struct iguana_peer *addr,struct
iguana_queue_send(coin,addr,0,serialized,"verack",0,0,0);
//iguana_send_ping(coin,addr);
}
else printf("nServices.%lld nonce.%llu non-relay node.(%s)\n",(long long)vers->nServices,(long long)vers->nonce,addr->ipaddr);
if ( (vers->nServices & (1<<7)) == (1<<7) )
addr->supernet = 1;
else printf("nServices.%lld nonce.%llu non-relay node.(%s) supernet.%d\n",(long long)vers->nServices,(long long)vers->nonce,addr->ipaddr,addr->supernet);
if ( vers->nStartingHeight > coin->longestchain )
coin->longestchain = vers->nStartingHeight;
iguana_queue_send(coin,addr,0,serialized,"getaddr",0,0,0);

3
iguana/iguana_peers.c

@ -714,7 +714,7 @@ uint32_t iguana_possible_peer(struct iguana_info *coin,char *ipaddr)
expand_ipbits(checkaddr,ipbits);
if ( strcmp(checkaddr,ipaddr) == 0 )
{
printf("valid ipaddr.(%s) MAXPEERS.%d\n",ipaddr,coin->MAXPEERS);
//printf("valid ipaddr.(%s) MAXPEERS.%d\n",ipaddr,coin->MAXPEERS);
if ( (iA= iguana_iAddrhashfind(coin,ipbits,1)) != 0 )
{
if ( iA->status != IGUANA_PEER_CONNECTING && iA->status != IGUANA_PEER_READY && iA->status != IGUANA_PEER_ELIGIBLE )
@ -918,6 +918,7 @@ void iguana_dedicatedloop(struct iguana_info *coin,struct iguana_peer *addr)
#endif
addr->addrind = (int32_t)(((long)addr - (long)&coin->peers.active[0]) / sizeof(*addr));
ipbits = (uint32_t)addr->ipbits;
addr->pubkey = GENESIS_PUBKEY;
vcalc_sha256(0,addr->iphash.bytes,(uint8_t *)&ipbits,sizeof(ipbits));
char str[65]; printf("start dedicatedloop.%s addrind.%d %s\n",addr->ipaddr,addr->addrind,bits256_str(str,addr->iphash));
addr->maxfilehash2 = IGUANA_MAXFILEITEMS;

3
iguana/main.c

@ -258,6 +258,7 @@ void iguana_main(void *arg)
{
char helperstr[64],*tmpstr,*helperargs,*ipaddr,*coinargs=0,*secret,*jsonstr = arg;
int32_t i,len,flag,c; cJSON *json; uint8_t secretbuf[512]; int64_t allocsize;
memset(&MYINFO,0,sizeof(MYINFO));
if ( (ipaddr= OS_filestr(&allocsize,"ipaddr")) != 0 )
{
printf("got ipaddr.(%s)\n",ipaddr);
@ -297,7 +298,6 @@ void iguana_main(void *arg)
API_json = jobj(API_json,"API");
free(tmpstr);
}
memset(&MYINFO,0,sizeof(MYINFO));
OS_randombytes(MYINFO.privkey.bytes,sizeof(MYINFO.privkey));
if ( jsonstr != 0 && (json= cJSON_Parse(jsonstr)) != 0 )
{
@ -317,6 +317,7 @@ void iguana_main(void *arg)
coinargs = jsonstr;
}
MYINFO.myaddr.pubkey = curve25519(MYINFO.privkey,curve25519_basepoint9());
char str[65],str2[65]; printf("PRIV.%s PUB.%s\n",bits256_str(str,MYINFO.privkey),bits256_str(str2,MYINFO.myaddr.pubkey));
if ( IGUANA_NUMHELPERS == 0 )
IGUANA_NUMHELPERS = 1;
for (i=0; i<IGUANA_NUMHELPERS; i++)

Loading…
Cancel
Save