public bool AddForeignBlock(Block block) { if (block.GetPreviousHash().Equals(blocks[blocks.Count - 1].GetHash())) { blocks.Add(block); BlockChainSerializer.serialize(blocks, blockChainName); return(true); } return(false); }
public void InternalAdd() { Prescription prescription = prescriptionToAdd; Block block = null; do { UpdateBlockChain(); Block lastBlock = blocks[blocks.Count - 1]; block = new Block(lastBlock.GetHash(), prescription); } while (!CheckAddedBlock(block)); blocks.Add(block); BlockChainSerializer.serialize(blocks, blockChainName); prescriptionToAdd = null; }
public void InternalUpdateBlockChain() { blockChainClient.sendNewChainMethod = GiveNewChain; while (!CheckCurrentChain()) { foreach (KeyValuePair <string, bool> keyValue in validator.verificationAnswers) { if (keyValue.Value == false) { ChainRequestSent = true; blockChainClient.SendRequestOfChain(keyValue.Key); break; } } while (!ChainRequestSent) { //wait for answer } } BlockChainSerializer.serialize(blocks, blockChainName); }