3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-01-31 23:32:16 +00:00

Split expensive blocks into sigExpensive and largeReorg.

This commit is contained in:
Matt Corallo 2013-04-24 11:48:18 -04:00
parent d1e689e6c5
commit 1dadb33c28
3 changed files with 8 additions and 6 deletions

View File

@ -45,6 +45,8 @@ public class BitcoindComparisonTool {
public static void main(String[] args) throws Exception {
BriefLogFormatter.init();
System.out.println("USAGE: runLargeReorgs(1/0)");
boolean runLargeReorgs = Integer.parseInt(args[0]) == 1;
params = NetworkParameters.testNet2();
/**
@ -53,7 +55,7 @@ public class BitcoindComparisonTool {
* You can also opt to comment out these lines to use the default, however that will cause this tool to be
* very significantly less efficient and useful (it will likely run forever trying to mine new blocks).
*
* You could also simply use git apply to apply the "bitcoind-comparison.patch" file included with bitcoinj
* You could also simply use git apply to apply the test-patches included with bitcoind
*/
// bnProofOfWorkLimit set in main.cpp
@ -69,7 +71,7 @@ public class BitcoindComparisonTool {
// Also set block.nTime = 1296688602; in the same block
FullBlockTestGenerator generator = new FullBlockTestGenerator(params);
BlockAndValidityList blockList = generator.getBlocksToTest(true);
BlockAndValidityList blockList = generator.getBlocksToTest(true, runLargeReorgs);
// Only needs to be set in bitcoinj
params.allowEmptyPeerChains = true;

View File

@ -75,7 +75,7 @@ public class FullBlockTestGenerator {
Utils.rollMockClock(0); // Set a mock clock for timestamp tests
}
public BlockAndValidityList getBlocksToTest(boolean addExpensiveBlocks) throws ScriptException, ProtocolException, IOException {
public BlockAndValidityList getBlocksToTest(boolean addSigExpensiveBlocks, boolean runLargeReorgs) throws ScriptException, ProtocolException, IOException {
List<BlockAndValidity> blocks = new LinkedList<BlockAndValidity>();
BlockAndValidityList ret = new BlockAndValidityList(blocks, 10);
@ -730,7 +730,7 @@ public class FullBlockTestGenerator {
blocks.add(new BlockAndValidity(blockToHeightMap, b40, false, true, b39.getHash(), chainHeadHeight + 12, "b40"));
Block b41 = null;
if (addExpensiveBlocks) {
if (addSigExpensiveBlocks) {
b41 = createNextBlock(b39, chainHeadHeight + 13, out12, null);
{
int sigOps = 0;
@ -1304,7 +1304,7 @@ public class FullBlockTestGenerator {
b73.getTransactions().get(0).getOutputs().get(0).getValue(),
b73.getTransactions().get(0).getOutputs().get(0).getScriptPubKey()));
if (addExpensiveBlocks) {
if (runLargeReorgs) {
Block lastBlock = b73;
int nextHeight = chainHeadHeight + 24;
TransactionOutPoint lastOutput = new TransactionOutPoint(params, 2, b73.getTransactions().get(1).getHash());

View File

@ -65,7 +65,7 @@ public class FullPrunedBlockChainTest {
public void testGeneratedChain() throws Exception {
// Tests various test cases from FullBlockTestGenerator
FullBlockTestGenerator generator = new FullBlockTestGenerator(unitTestParams);
BlockAndValidityList blockList = generator.getBlocksToTest(false);
BlockAndValidityList blockList = generator.getBlocksToTest(false, false);
store = new MemoryFullPrunedBlockStore(unitTestParams, blockList.maximumReorgBlockCount);
chain = new FullPrunedBlockChain(unitTestParams, store);