Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disallow auxpow parent blocks that have auxpow themselves. #199

Merged
merged 1 commit into from
Dec 4, 2014

Conversation

domob1812
Copy link
Contributor

Currently, auxpow parent blocks may contain an auxpow field themselves. This allows (in theory) for arbitrarily large auxpow's. While this is mostly a theoretical problem, it should be fixed eventually. This patch makes namecoind reject auxpow parent blocks that have an auxpow themselves in a softfork (the height needs to be determined).

domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Nov 22, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Nov 22, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Nov 25, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Nov 26, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Nov 28, 2014
@JeremyRand
Copy link
Member

I'm not qualified to review the code, but I have no problem with the proposed changes on a concept level.

domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Dec 2, 2014
@phelixbtc
Copy link
Contributor

Compiles on Windows and downloads the blockchain. ACK

phelixbtc added a commit that referenced this pull request Dec 4, 2014
Disallow auxpow parent blocks that have auxpow themselves.
@phelixbtc phelixbtc merged commit d34714a into namecoin:namecoinq Dec 4, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Dec 6, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Dec 9, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Dec 15, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Dec 16, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Dec 16, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Dec 17, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Dec 21, 2014
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Jan 6, 2015
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Jan 12, 2015
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Jan 14, 2015
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Jan 16, 2015
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Jan 20, 2015
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Jan 20, 2015
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Jan 22, 2015
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Jan 22, 2015
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Jan 23, 2015
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Jan 25, 2015
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Jan 29, 2015
domob1812 added a commit to domob1812/namecoin-core that referenced this pull request Feb 2, 2015
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request May 20, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request May 20, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request May 22, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request May 30, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Jun 2, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Jun 2, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Jun 4, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
micaelmalta pushed a commit to micaelmalta/dogecoin that referenced this pull request Jun 5, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
micaelmalta pushed a commit to micaelmalta/dogecoin that referenced this pull request Jun 5, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Jun 5, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Jun 5, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Jun 5, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Jun 8, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Jun 12, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Jun 12, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Jun 17, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Sep 5, 2021
Changes are as below:

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.

Update getauxblock.py for new 'generate' RPC call.

Add 'auxpow' to block JSON.

Accept auxpow as PoW verification.

Add unit tests for auxpow verification.

Add check for memory-layout of CBlockVersion.

Weaken auxpow chain ID checks for the testnet.

Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.

Introduce CPureBlockHeader.

Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.

Differentiate between uint256 and arith_uint256.

This change was done upstream, modify the auxpow code.

Add missing lock in auxpow_tests.

Fix REST header check for auxpow headers.

Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.

Correctly set the coinbase for getauxblock results.

Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)

Implement getauxblock plus regression test.

Turn auxpow test into FIXTURE test.

This allows using of the Params() calls.

Move CMerkleTx code to auxpow.cpp.

Otherwise we get linker errors when building without wallet.

Fix rebase with BIP66.

Update the code to handle BIP66's nVersion=3.

Enforce that auxpow parent blocks have no auxpow block version.

This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.

Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Sep 7, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Sep 8, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Sep 10, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Sep 11, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Sep 11, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Sep 11, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Sep 24, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Nov 14, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Nov 14, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Nov 14, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Nov 26, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
rnicoll pushed a commit to rnicoll/dogecoin that referenced this pull request Nov 26, 2021
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
patricklodder pushed a commit to patricklodder/dogecoin that referenced this pull request May 11, 2022
Changes are as below:

* Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This allows to take care of interpreting the field into a base version, auxpow flag and the chain ID.
* Update getauxblock.py for new 'generate' RPC call.
* Add 'auxpow' to block JSON.
* Accept auxpow as PoW verification.
* Add unit tests for auxpow verification.
* Add check for memory-layout of CBlockVersion.
* Weaken auxpow chain ID checks for the testnet.
* Allow Params() to overrule when to check the auxpow chain ID and for legacy blocks.  Use this to disable the checks on testnet.
* Split the block header part that is used by auxpow and the "real" block header (that uses auxpow) to resolve the cyclic dependency between the two.
* Differentiate between uint256 and arith_uint256.
* Add missing lock in auxpow_tests.
* Fix REST header check for auxpow headers.
  * Those can be longer, thus take that into account.  Also perform the check actually on an auxpow header.
* Correctly set the coinbase for getauxblock results.
* Call IncrementExtraNonce in getauxblock so that the coinbase is actually initialised with the stuff it should be.  (BIP30 block height and COINBASE_FLAGS.)
* Implement getauxblock plus regression test.
* Turn auxpow test into FIXTURE test.
  * This allows using of the Params() calls.
* Move CMerkleTx code to auxpow.cpp.
  * Otherwise we get linker errors when building without wallet.
* Fix rebase with BIP66.
* Update the code to handle BIP66's nVersion=3.
* Enforce that auxpow parent blocks have no auxpow block version.
  * This is for compatibility with namecoind.  See also namecoin/namecoin-legacy#199.
* Move auxpow-related parameters to Consensus::Params.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants