diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 480a02f24b..dd53f58232 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -436,9 +436,10 @@ class CCustomParams : public CRegTestParams { std::vector man_bytes = ParseHex(gArgs.GetArg("-con_mandatorycoinbase", "")); consensus.mandatory_coinbase_destination = CScript(man_bytes.begin(), man_bytes.end()); // Blank script allows any coinbase destination - // Block signing encumberance script - std::vector sign_bytes = ParseHex(gArgs.GetArg("-signblockscript", "")); + // Block signing encumberance script, default of 51 aka OP_TRUE + std::vector sign_bytes = ParseHex(gArgs.GetArg("-signblockscript", "51")); consensus.signblockscript = CScript(sign_bytes.begin(), sign_bytes.end()); + g_signed_blocks = !sign_bytes.empty(); // Custom chains connect coinbase outputs to db by default consensus.connect_genesis_outputs = gArgs.GetArg("-con_connect_coinbase", true); diff --git a/src/consensus/params.h b/src/consensus/params.h index e82c134cc8..d90901faf4 100644 --- a/src/consensus/params.h +++ b/src/consensus/params.h @@ -84,6 +84,7 @@ struct Params { CAmount genesis_subsidy; bool connect_genesis_outputs; CScript signblockscript; + // g_signed_blocks - Whether blocks are signed or not, get around circular dep }; } // namespace Consensus diff --git a/src/primitives/block.cpp b/src/primitives/block.cpp index ee41cc88d6..01d20719d4 100644 --- a/src/primitives/block.cpp +++ b/src/primitives/block.cpp @@ -10,6 +10,8 @@ #include #include +bool g_signed_blocks = false; + std::string CProof::ToString() const { return strprintf("CProof(challenge=%s, solution=%s)", diff --git a/src/primitives/block.h b/src/primitives/block.h index 2c37a718a5..5c182d426f 100644 --- a/src/primitives/block.h +++ b/src/primitives/block.h @@ -11,6 +11,8 @@ #include #include +extern bool g_signed_blocks; + class CProof { public: @@ -79,7 +81,7 @@ public: READWRITE(hashPrevBlock); READWRITE(hashMerkleRoot); READWRITE(nTime); - if (false) { + if (g_signed_blocks) { READWRITE(proof); } else { READWRITE(nBits); @@ -100,7 +102,7 @@ public: bool IsNull() const { - if (false) { + if (g_signed_blocks) { return proof.IsNull(); } else { return (nBits == 0); diff --git a/test/bitcoin_functional/functional/test_framework/util.py b/test/bitcoin_functional/functional/test_framework/util.py index e081aab825..f8689b40c5 100644 --- a/test/bitcoin_functional/functional/test_framework/util.py +++ b/test/bitcoin_functional/functional/test_framework/util.py @@ -307,6 +307,7 @@ def initialize_datadir(dirname, n, chain): f.write("printtoconsole=0\n") f.write("con_blocksubsidy=5000000000\n") f.write("con_connect_coinbase=0\n") + f.write("signblockscript=0\n") os.makedirs(os.path.join(datadir, 'stderr'), exist_ok=True) os.makedirs(os.path.join(datadir, 'stdout'), exist_ok=True) return datadir