//-----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); }
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)) }; }
/// <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"); }
public void AddBlock(Block newBlock) { newBlock.PreviousHash = LastBlok.Hash; newBlock.MineBlock(difficulty); chain.Add(newBlock); }
public static void AddBlock(Block newBlock) { newBlock.MineBlock(difficulty); blockchain.Add(newBlock); }