예제 #1
0
 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));
     }
 }
예제 #2
0
        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));
        }