Merge branch 'frfix' into duke
This commit is contained in:
@@ -5,7 +5,7 @@
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
cd $DIR
|
cd $DIR
|
||||||
|
|
||||||
NAME=HUSHT2
|
NAME=HUSH
|
||||||
|
|
||||||
CLI=${KOMODOCLI:-./komodo-cli}
|
CLI=${KOMODOCLI:-./komodo-cli}
|
||||||
$CLI -ac_name=$NAME "$@"
|
$CLI -ac_name=$NAME "$@"
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
cd $DIR
|
cd $DIR
|
||||||
|
|
||||||
# TESTING VALUES, DO NOT USE EXCEPT FOR DEVELOPMENT
|
# NOT FINALIZED, but very close to our production chainparams
|
||||||
NAME=HUSHT2
|
NAME=HUSH
|
||||||
# this corresponds to FR address RHushEyeDm7XwtaTWtyCbjGQumYyV8vMjn
|
# this corresponds to FR address RHushEyeDm7XwtaTWtyCbjGQumYyV8vMjn
|
||||||
SCRIPT=76a9145eb10cf64f2bab1b457f1f25e658526155928fac88ac
|
SCRIPT=76a9145eb10cf64f2bab1b457f1f25e658526155928fac88ac
|
||||||
|
|
||||||
@@ -18,6 +18,7 @@ FOUNDERS=1
|
|||||||
REWARD=0,1125000000,562500000
|
REWARD=0,1125000000,562500000
|
||||||
PERC=11111111
|
PERC=11111111
|
||||||
HALVING=129,340000,840000
|
HALVING=129,340000,840000
|
||||||
|
# TODO: Re-verify our end block
|
||||||
END=128,340000,5422111
|
END=128,340000,5422111
|
||||||
CLIENTNAME=GoldenSandtrout
|
CLIENTNAME=GoldenSandtrout
|
||||||
|
|
||||||
@@ -27,6 +28,7 @@ HEIR=234
|
|||||||
CHANNEL=235
|
CHANNEL=235
|
||||||
ORACLE=236
|
ORACLE=236
|
||||||
GATEWAY=241
|
GATEWAY=241
|
||||||
|
DILITHIUM=
|
||||||
CCENABLE=$FAUCET,$HEIR,$CHANNEL,$ORACLE,$GATEWAY
|
CCENABLE=$FAUCET,$HEIR,$CHANNEL,$ORACLE,$GATEWAY
|
||||||
|
|
||||||
KMD=${KOMODOD:-./komodod}
|
KMD=${KOMODOD:-./komodod}
|
||||||
|
|||||||
45
src/hushd-testnet
Executable file
45
src/hushd-testnet
Executable file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright (c) 2019 Hush developers
|
||||||
|
|
||||||
|
# set working directory to the location of this script
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
cd $DIR
|
||||||
|
|
||||||
|
# TESTING VALUES, DO NOT USE EXCEPT FOR DEVELOPMENT
|
||||||
|
NAME=HUSHT6
|
||||||
|
# this corresponds to FR address RHushEyeDm7XwtaTWtyCbjGQumYyV8vMjn
|
||||||
|
SCRIPT=76a9145eb10cf64f2bab1b457f1f25e658526155928fac88ac
|
||||||
|
|
||||||
|
# Chain parameters
|
||||||
|
ERAS=3
|
||||||
|
BLOCKTIME=10
|
||||||
|
SUPPLY=6250000
|
||||||
|
FOUNDERS=1
|
||||||
|
REWARD=0,1125000000,562500000
|
||||||
|
HALVING=29,34,84
|
||||||
|
END=28,34,500
|
||||||
|
PERC=11111111
|
||||||
|
CLIENTNAME=GoldenSandtrout
|
||||||
|
PERC=11111111
|
||||||
|
|
||||||
|
# CryptoConditions/Custom Consensus params
|
||||||
|
FAUCET=228
|
||||||
|
HEIR=234
|
||||||
|
CHANNEL=235
|
||||||
|
ORACLE=236
|
||||||
|
GATEWAY=241
|
||||||
|
CCENABLE=$FAUCET,$HEIR,$CHANNEL,$ORACLE,$GATEWAY
|
||||||
|
|
||||||
|
KMD=${KOMODOD:-./komodod}
|
||||||
|
$KMD -ac_name=$NAME -ac_sapling=1 \
|
||||||
|
-ac_reward=$REWARD \
|
||||||
|
-ac_halving=$HALVING \
|
||||||
|
-ac_end=$END \
|
||||||
|
-ac_eras=$ERAS \
|
||||||
|
-ac_blocktime=$BLOCKTIME \
|
||||||
|
-ac_perc=$PERC \
|
||||||
|
-ac_cc=2 -ac_ccenable=$CCENABLE \
|
||||||
|
-ac_founders=$FOUNDERS -ac_supply=$SUPPLY \
|
||||||
|
-ac_perc=$PERC \
|
||||||
|
-clientname=$CLIENTNAME \
|
||||||
|
-ac_script=$SCRIPT "$@"
|
||||||
@@ -1208,13 +1208,52 @@ uint64_t komodo_commission(const CBlock *pblock,int32_t height)
|
|||||||
if ( is_STAKED(ASSETCHAINS_SYMBOL) == 2 )
|
if ( is_STAKED(ASSETCHAINS_SYMBOL) == 2 )
|
||||||
return(0);
|
return(0);
|
||||||
|
|
||||||
int32_t i,j,n=0,txn_count; int64_t nSubsidy; uint64_t commission,total = 0;
|
int32_t i,j,n=0,txn_count,halvings; int64_t nSubsidy; uint64_t commission,total = 0;
|
||||||
txn_count = pblock->vtx.size();
|
txn_count = pblock->vtx.size();
|
||||||
if ( ASSETCHAINS_FOUNDERS != 0 )
|
if ( ASSETCHAINS_FOUNDERS != 0 )
|
||||||
{
|
{
|
||||||
|
// prod values
|
||||||
|
//int32_t starting_commission = 125000000, HALVING1 = 340000, INTERVAL = 840000, TRANSITION = 129, BR_END = 5422111;
|
||||||
|
// testnet values
|
||||||
|
int64_t starting_commission = 125000000, HALVING1 = 34, INTERVAL = 84, TRANSITION = 29, BR_END = 500;
|
||||||
nSubsidy = GetBlockSubsidy(height,Params().GetConsensus());
|
nSubsidy = GetBlockSubsidy(height,Params().GetConsensus());
|
||||||
//fprintf(stderr,"ht.%d nSubsidy %.8f prod %llu\n",height,(double)nSubsidy/COIN,(long long)(nSubsidy * ASSETCHAINS_COMMISSION));
|
|
||||||
commission = ((nSubsidy * ASSETCHAINS_COMMISSION) / COIN);
|
commission = ((nSubsidy * ASSETCHAINS_COMMISSION) / COIN);
|
||||||
|
fprintf(stderr,"ORIG ht.%d nSubsidy %.8f prod %llu\n",height,(double)nSubsidy/COIN,(long long)(nSubsidy * ASSETCHAINS_COMMISSION));
|
||||||
|
|
||||||
|
if ((strcmp(ASSETCHAINS_SYMBOL, "HUSH") != 0) || (strcmp(ASSETCHAINS_SYMBOL, "HUSHT6") != 0)) {
|
||||||
|
// HUSH supply curve cannot be exactly represented via KMD AC CLI args, so we do it ourselves.
|
||||||
|
// You specify the BR, and the FR % gets added so 10% of 12.5 is 1.25
|
||||||
|
// but to tell the AC params, I need to say "11% of 11.25" is 1.25
|
||||||
|
// 11% ie. 1/9th cannot be exactly represented and so the FR has tiny amounts of error unless done manually
|
||||||
|
// Transition period of 128 blocks has BR=FR=0
|
||||||
|
if (height < TRANSITION) {
|
||||||
|
commission = 0;
|
||||||
|
} else if (height < HALVING1) {
|
||||||
|
commission = starting_commission;
|
||||||
|
} else if (height < HALVING1+1*INTERVAL) {
|
||||||
|
commission = starting_commission / 2;
|
||||||
|
} else if (height < HALVING1+2*INTERVAL) {
|
||||||
|
commission = starting_commission / 4;
|
||||||
|
} else if (height < HALVING1+3*INTERVAL) {
|
||||||
|
commission = starting_commission / 8;
|
||||||
|
} else if (height < HALVING1+4*INTERVAL) {
|
||||||
|
commission = starting_commission / 16;
|
||||||
|
} else if (height < HALVING1+5*INTERVAL) {
|
||||||
|
commission = starting_commission / 32;
|
||||||
|
} else if (height < HALVING1+6*INTERVAL) { // Block 5380000
|
||||||
|
// Block reward will go to zero between 7th+8th halvings
|
||||||
|
commission = starting_commission / 64;
|
||||||
|
} else if (height < HALVING1+7*INTERVAL) {
|
||||||
|
commission = starting_commission / 128; // Block 6220000
|
||||||
|
}
|
||||||
|
|
||||||
|
// enforce the end of FR when BR ends
|
||||||
|
if (height > BR_END) {
|
||||||
|
commission = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fprintf(stderr,"AFTER ht.%d nSubsidy %.8f prod %llu\n",height,(double)nSubsidy/COIN,(long long)(nSubsidy * ASSETCHAINS_COMMISSION));
|
||||||
|
|
||||||
if ( ASSETCHAINS_FOUNDERS > 1 )
|
if ( ASSETCHAINS_FOUNDERS > 1 )
|
||||||
{
|
{
|
||||||
if ( (height % ASSETCHAINS_FOUNDERS) == 0 )
|
if ( (height % ASSETCHAINS_FOUNDERS) == 0 )
|
||||||
@@ -1251,7 +1290,7 @@ uint64_t komodo_commission(const CBlock *pblock,int32_t height)
|
|||||||
}
|
}
|
||||||
if ( commission < 10000 )
|
if ( commission < 10000 )
|
||||||
commission = 0;
|
commission = 0;
|
||||||
//fprintf(stderr,"-> %.8f\n",(double)commission/COIN);
|
fprintf(stderr,"-> %.8f\n",(double)commission/COIN);
|
||||||
return(commission);
|
return(commission);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2024,7 +2063,7 @@ int64_t komodo_checkcommission(CBlock *pblock,int32_t height)
|
|||||||
checktoshis = komodo_commission(pblock,height);
|
checktoshis = komodo_commission(pblock,height);
|
||||||
if ( checktoshis >= 10000 && pblock->vtx[0].vout.size() < 2 )
|
if ( checktoshis >= 10000 && pblock->vtx[0].vout.size() < 2 )
|
||||||
{
|
{
|
||||||
//fprintf(stderr,"komodo_checkcommission vsize.%d height.%d commission %.8f\n",(int32_t)pblock->vtx[0].vout.size(),height,(double)checktoshis/COIN);
|
fprintf(stderr,"komodo_checkcommission vsize.%d height.%d commission %.8f\n",(int32_t)pblock->vtx[0].vout.size(),height,(double)checktoshis/COIN);
|
||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
else if ( checktoshis != 0 )
|
else if ( checktoshis != 0 )
|
||||||
|
|||||||
Reference in New Issue
Block a user