Beispiel #1
0
        //-----Functions
        public void CreateGenesisBlock()
        {
            BlockHeader genesisBlockHeader = new BlockHeader(0, BlockchainFunctions.Timestamp(), "0000000000000000000000000000000000000000000000000000000000000000");
            Block       genesisBlock       = new Block(genesisBlockHeader, pendingTransactions.ToArray());

            genesisBlock.MineBlock(difficulty);
            chain.Add(genesisBlock);
        }
Beispiel #2
0
        public void MineSelectedTransactions(string minerAddress)
        {
            BlockHeader newBlockHeader = new BlockHeader(chain.ToArray().Length, BlockchainFunctions.Timestamp(), GetLatestBlock().hash);
            Block       newBlock       = new Block(newBlockHeader, SelectPendingTransactions(blockSize));

            newBlock.MineBlock(difficulty);
            chain.Add(newBlock);
        }
        public void MinePendingTransactions(string mineRewardAddress)
        {
            var block = new Block(DateTime.UtcNow, new { data = "My wallet" }, _pendingTransactions, GetLatestBlock().Hash);

            block.MineBlock(Difficulty);
            AddBlock(block);
            _pendingTransactions = new List <Transaction>
            {
                (new Transaction(null, mineRewardAddress, Reward))
            };
        }
Beispiel #4
0
        /// <summary>
        /// Add a new block to the chain.
        /// </summary>
        /// <param name="data">The block data to be added to the chain.</param>
        public void AddBlock(BlockData data)
        {
            // Get the last block in the chain.
            var lastBlock = GetLastBlock();

            // Create a new block with the data and the parent hash.
            var block = new Block(data, lastBlock.Hash);

            // Generate a new block from the difficulty setting and data provided.
            block.MineBlock(Difficulty);

            // Add the new block to the chain.
            Chain.Add(block);
        }
        public void AddBlock(Block block)
        {
            if (!IsChainValid())
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Chain is not valid. Break operation!");
                Console.ResetColor();
                return;
            }

            block.Transactions = _pendingTransactions;
            block.PreviousHash = GetLatestBlock().Hash;
            block.MineBlock(Difficulty);
            _chain.Add(block);
            Console.WriteLine("Added new block to chain");
        }
Beispiel #6
0
 public void AddBlock(Block newBlock)
 {
     newBlock.PreviousHash = LastBlok.Hash;
     newBlock.MineBlock(difficulty);
     chain.Add(newBlock);
 }
Beispiel #7
0
 public static void AddBlock(Block newBlock)
 {
     newBlock.MineBlock(difficulty);
     blockchain.Add(newBlock);
 }