From d8f9470fe23fce7b45fd93c6065b2895a0ae9bc7 Mon Sep 17 00:00:00 2001 From: Gregory Sanders Date: Mon, 29 Oct 2018 15:21:55 -0400 Subject: [PATCH] Add more blocksigning infrastructure --- src/Makefile.am | 1 + src/chain.h | 5 ++++ src/chainparams.cpp | 4 +-- src/pow.cpp | 51 ++++++++++++++++++++++++++++++++++ src/pow.h | 8 ++++++ src/primitives/block.cpp | 10 +++++-- src/script/generic.hpp | 59 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 134 insertions(+), 4 deletions(-) create mode 100644 src/script/generic.hpp diff --git a/src/Makefile.am b/src/Makefile.am index c5eddc6cf0..81700addf3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -159,6 +159,7 @@ BITCOIN_CORE_H = \ rpc/util.h \ scheduler.h \ script/descriptor.h \ + script/generic.hpp \ script/ismine.h \ script/sigcache.h \ script/sign.h \ diff --git a/src/chain.h b/src/chain.h index 01011d54f1..7323d04a09 100644 --- a/src/chain.h +++ b/src/chain.h @@ -212,6 +212,7 @@ public: uint32_t nTime; uint32_t nBits; uint32_t nNonce; + CProof proof; //! (memory only) Sequential id assigned to distinguish order in which blocks are received. int32_t nSequenceId; @@ -240,6 +241,7 @@ public: nTime = 0; nBits = 0; nNonce = 0; + proof.SetNull(); } CBlockIndex() @@ -256,6 +258,7 @@ public: nTime = block.nTime; nBits = block.nBits; nNonce = block.nNonce; + proof = block.proof; } CDiskBlockPos GetBlockPos() const { @@ -405,6 +408,7 @@ public: READWRITE(nTime); READWRITE(nBits); READWRITE(nNonce); + READWRITE(proof); } uint256 GetBlockHash() const @@ -416,6 +420,7 @@ public: block.nTime = nTime; block.nBits = nBits; block.nNonce = nNonce; + block.proof = proof; return block.GetHash(); } diff --git a/src/chainparams.cpp b/src/chainparams.cpp index da1752828d..480a02f24b 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -437,8 +437,8 @@ class CCustomParams : public CRegTestParams { 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("-con_parent_chain_signblockscript", "")); - consensus.parent_chain_signblockscript = CScript(sign_bytes.begin(), sign_bytes.end()); + std::vector sign_bytes = ParseHex(gArgs.GetArg("-signblockscript", "")); + consensus.signblockscript = CScript(sign_bytes.begin(), sign_bytes.end()); // Custom chains connect coinbase outputs to db by default consensus.connect_genesis_outputs = gArgs.GetArg("-con_connect_coinbase", true); diff --git a/src/pow.cpp b/src/pow.cpp index 1414d37564..ac97e12345 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -9,6 +9,19 @@ #include #include #include +#include