They are called Hush Arrakis Chains (HACs) now
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
# Hush Smart Chains
|
# Hush Arrakis Chains
|
||||||
|
|
||||||
An overview of HSCs can be found here:
|
An overview of HSCs can be found here:
|
||||||
|
|
||||||
https://git.hush.is/hush/hush-smart-chains
|
https://git.hush.is/hush/hush-smart-chains
|
||||||
|
|
||||||
Hush Smart Chains allow you to create a privacy coin with no custom C++ code, just running one command!
|
Hush Arrakis Chains allow you to create a privacy coin with no custom C++ code, just running one command!
|
||||||
The new coin that is created can use either Equihash PoW (ASIC or GPU) or RandomX PoW (CPU).
|
The new coin that is created can use either Equihash PoW (ASIC or GPU) or RandomX PoW (CPU).
|
||||||
|
|
||||||
## HSC Creator
|
## HSC Creator
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ public:
|
|||||||
consensus.nPowMaxAdjustDown = 32; // 32% adjustment down
|
consensus.nPowMaxAdjustDown = 32; // 32% adjustment down
|
||||||
consensus.nPowMaxAdjustUp = 16; // 16% adjustment up
|
consensus.nPowMaxAdjustUp = 16; // 16% adjustment up
|
||||||
// we are emulating old node behavior at startup, they used 150s
|
// we are emulating old node behavior at startup, they used 150s
|
||||||
consensus.nPowTargetSpacing = 150; // 75; // HUSH is 75 seconds, Hush Smart Chains are 60 seconds by default
|
consensus.nPowTargetSpacing = 150; // 75; // HUSH is 75 seconds, Hush Arrakis Chains are 60 seconds by default
|
||||||
consensus.nPowAllowMinDifficultyBlocksAfterHeight = boost::none;
|
consensus.nPowAllowMinDifficultyBlocksAfterHeight = boost::none;
|
||||||
// HUSH never had Sprout in our blockchain history, but some internals require *knowing* about Sprout
|
// HUSH never had Sprout in our blockchain history, but some internals require *knowing* about Sprout
|
||||||
// or it breaks backward compatibility. We do what we can.
|
// or it breaks backward compatibility. We do what we can.
|
||||||
|
|||||||
@@ -948,7 +948,7 @@ CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams);
|
|||||||
// This function defines the Hush Founders Reward (AKA Dev Tax)
|
// This function defines the Hush Founders Reward (AKA Dev Tax)
|
||||||
// 10% of all block rewards go towards Hush core team
|
// 10% of all block rewards go towards Hush core team
|
||||||
// If you do not like this, you are encouraged to fork the chain
|
// If you do not like this, you are encouraged to fork the chain
|
||||||
// or start your own Hush Smart Chain: https://git.hush.is/hush/hush-smart-chains
|
// or start your own Hush Arrakis Chain: https://git.hush.is/hush/hush-smart-chains
|
||||||
// HUSH supply curve cannot be exactly represented via CLI args, so we do it ourselves.
|
// HUSH supply curve cannot be exactly represented via CLI args, so we do it ourselves.
|
||||||
// You specify the BR, and the FR % gets added so 10% of 12.5 is 1.25
|
// 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
|
// but to tell the AC params, I need to say "11% of 11.25" is 1.25
|
||||||
|
|||||||
@@ -1611,7 +1611,7 @@ uint64_t hush_block_subsidy(int height)
|
|||||||
return subsidy;
|
return subsidy;
|
||||||
}
|
}
|
||||||
|
|
||||||
// wrapper for more general supply curves of Hush Smart Chains
|
// wrapper for more general supply curves of Hush Arrakis Chains
|
||||||
uint64_t hush_sc_block_subsidy(int nHeight)
|
uint64_t hush_sc_block_subsidy(int nHeight)
|
||||||
{
|
{
|
||||||
// Find current era, start from beginning reward, and determine current subsidy
|
// Find current era, start from beginning reward, and determine current subsidy
|
||||||
|
|||||||
@@ -1128,7 +1128,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler)
|
|||||||
LogPrintf("%s: parameter interaction: -externalip set -> setting -discover=0\n", __func__);
|
LogPrintf("%s: parameter interaction: -externalip set -> setting -discover=0\n", __func__);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read asmap file by default for HUSH3 and all Hush Smart Chains
|
// Read asmap file by default for HUSH3 and all Hush Arrakis Chains
|
||||||
if (GetArg("-asmap",1)) {
|
if (GetArg("-asmap",1)) {
|
||||||
fs::path asmap_path = fs::path(GetArg("-asmap", ""));
|
fs::path asmap_path = fs::path(GetArg("-asmap", ""));
|
||||||
|
|
||||||
|
|||||||
@@ -1128,7 +1128,7 @@ void static RandomXMiner()
|
|||||||
char randomxHash[RANDOMX_HASH_SIZE];
|
char randomxHash[RANDOMX_HASH_SIZE];
|
||||||
rxdebug("%s: created randomxHash of size %d\n", RANDOMX_HASH_SIZE);
|
rxdebug("%s: created randomxHash of size %d\n", RANDOMX_HASH_SIZE);
|
||||||
char randomxKey[82]; // randomx spec says keysize of >60 bytes is implementation-specific
|
char randomxKey[82]; // randomx spec says keysize of >60 bytes is implementation-specific
|
||||||
// initial randomx key is unique to every Hush Smart Chain, and has at least 9 bytes (2^9=128 bits) of entropy
|
// initial randomx key is unique to every Hush Arrakis Chain, and has at least 9 bytes (2^9=128 bits) of entropy
|
||||||
// since magic is 4 bytes, rpc port is 4 bytes and smart chain symbol must be at least 1 character long
|
// since magic is 4 bytes, rpc port is 4 bytes and smart chain symbol must be at least 1 character long
|
||||||
snprintf(randomxKey, 81, "%08x%s%08x", ASSETCHAINS_MAGIC, SMART_CHAIN_SYMBOL, ASSETCHAINS_RPCPORT);
|
snprintf(randomxKey, 81, "%08x%s%08x", ASSETCHAINS_MAGIC, SMART_CHAIN_SYMBOL, ASSETCHAINS_RPCPORT);
|
||||||
|
|
||||||
|
|||||||
@@ -2733,7 +2733,7 @@ bool CNode::GetTlsValidate()
|
|||||||
{
|
{
|
||||||
if (tlsValidate == eTlsOption::FALLBACK_UNSET)
|
if (tlsValidate == eTlsOption::FALLBACK_UNSET)
|
||||||
{
|
{
|
||||||
// This is useful for private Hush Smart Chains, that want to exist
|
// This is useful for private Hush Arrakis Chains, that want to exist
|
||||||
// on a closed VPN with an internal CA or trusted cert system, or
|
// on a closed VPN with an internal CA or trusted cert system, or
|
||||||
// various other use cases
|
// various other use cases
|
||||||
if ( GetBoolArg("-tlsvalidate", false)) {
|
if ( GetBoolArg("-tlsvalidate", false)) {
|
||||||
|
|||||||
@@ -578,7 +578,7 @@ unsigned int CalculateNextWorkRequired(arith_uint256 bnAvg,
|
|||||||
return bnNew.GetCompact();
|
return bnNew.GetCompact();
|
||||||
}
|
}
|
||||||
|
|
||||||
// HUSH does not use these functions but Hush Smart Chains can opt-in to using more bleeding edge DAA's
|
// HUSH does not use these functions but Hush Arrakis Chains can opt-in to using more bleeding edge DAA's
|
||||||
// ASIC chains do not need these protections as much -- Duke Leto
|
// ASIC chains do not need these protections as much -- Duke Leto
|
||||||
unsigned int lwmaGetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params& params)
|
unsigned int lwmaGetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params& params)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -363,7 +363,7 @@ bool AsyncRPCOperation_sendmany::main_impl() {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SCENARIO #0 (All HUSH and Hush Smart Chains)
|
* SCENARIO #0 (All HUSH and Hush Arrakis Chains)
|
||||||
* Sprout not involved, so we just use the TransactionBuilder and we're done.
|
* Sprout not involved, so we just use the TransactionBuilder and we're done.
|
||||||
* We added the transparent inputs to the builder earlier.
|
* We added the transparent inputs to the builder earlier.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user