Example #1
0
 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;
 }
Example #2
0
        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));
        }
Example #4
0
 public PeerToPeerService(SimpleBlockChain blockChain, ILogger <PeerToPeerService> logger)
 {
     this.blockChain = blockChain ?? throw new System.ArgumentNullException(nameof(blockChain));
     this.logger     = logger ?? throw new ArgumentNullException(nameof(logger));
 }