public BlocksController(SimpleBlockChain blockChain, PeerToPeerService p2pService, ILogger <BlocksController> logger, IBlockFactory <SimpleBlock, string> blockFactory ) { _blockChain = blockChain ?? throw new ArgumentNullException(nameof(blockChain)); _p2PService = p2pService ?? throw new ArgumentNullException(nameof(p2pService)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _blockFactory = blockFactory; }
public void TestBlockChain() { var blockChain = new SimpleBlockChain(100, 1); blockChain.Add("tom", "jim", 1); blockChain.Add("tom", "jim", 2); blockChain.Add("bob", "alice", 3); Thread.Sleep(1000); Console.WriteLine(blockChain.ToString()); Assert.IsTrue(blockChain.IsValid()); }
public void IsValidNewBlockTest() { var hasher = new SHA256HashProvider(); var factory = new SimpleBlockFactory(hasher); var blockchain = new SimpleBlockChain(hasher, factory); var genesisBlock = factory.CreateGenesisBlock(); var blockWithBadIndex = new SimpleBlock(0, "1", 0, "new block", "0"); Assert.False(blockchain.IsValidNewBlock(genesisBlock, blockWithBadIndex)); var blockWithBadHash = new SimpleBlock(1, "1", 0, "new block", "VERY BAD HASH"); Assert.False(blockchain.IsValidNewBlock(genesisBlock, blockWithBadHash)); var validBlock = new SimpleBlock(2, "2", 0, "new block"); hasher.Hash(validBlock); Assert.False(blockchain.IsValidNewBlock(genesisBlock, blockWithBadHash)); }
public PeerToPeerService(SimpleBlockChain blockChain, ILogger <PeerToPeerService> logger) { this.blockChain = blockChain ?? throw new System.ArgumentNullException(nameof(blockChain)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); }