public void CanValidateBlocks() { foreach (var block in StoredBlock.EnumerateFolder(@"data\blocks")) { ValidationState validation = Network.Main.CreateValidationState(); validation.Now = block.Item.Header.BlockTime; Assert.True(validation.CheckBlock(block.Item)); } }
public void May15() { // Putting a 1MB binary file in the git repository is not a great // idea, so this test is only run if you manually download // test/data/Mar12Fork.dat from // http://sourceforge.net/projects/bitcoin/files/Bitcoin/blockchain/Mar12Fork.dat/download var tMay15 = Utils.UnixTimeToDateTime(1368576000); ValidationState state = Network.Main.CreateValidationState(); state.CheckProofOfWork = false; state.Now = tMay15; // Test as if it was right at May 15 Block forkingBlock = read_block("Mar12Fork.dat"); // After May 15'th, big blocks are OK: forkingBlock.Header.BlockTime = tMay15; // Invalidates PoW Assert.True(state.CheckBlock(forkingBlock)); }