private void InitBlockChain() { FrmMainBlockChain blockChain = null; string blockChainLock; do { blockChainLock = string.Format(BlockChainLock, _currentFile); if (File.Exists(blockChainLock) == false) { break; } _currentFile++; } while (true); File.WriteAllText(blockChainLock, "Lock"); string blockChainFile = string.Format(BlockChainFile, _currentFile); if (File.Exists(blockChainFile)) { string contentBlockChainFile = File.ReadAllText(blockChainFile); blockChain = JsonParser.ParseText(contentBlockChainFile, typeof(FrmMainBlockChain), typeof(BlockChain), typeof(Block), typeof(Transaction)) as FrmMainBlockChain; } if (blockChain != null) { _nullCoin = blockChain.BlockChain; txtMinerName.Text = blockChain.Miner; } else { _nullCoin = new BlockChain(genesisDate: new DateTime(2000, 1, 1), difficulty: 2); txtMinerName.Text = string.Empty; } Lists_Update(); }
private void SaveBlockChain() { string blockChainFile = string.Format(BlockChainFile, _currentFile); if (File.Exists(blockChainFile)) { File.Delete(blockChainFile); } FrmMainBlockChain blockChain = new FrmMainBlockChain { BlockChain = _nullCoin, Miner = txtMinerName.Text, }; string strBlockChain = JsonWriter.WriteObject(blockChain, indent: true); File.WriteAllText(blockChainFile, strBlockChain); string blockChainLock = string.Format(BlockChainLock, _currentFile); if (File.Exists(blockChainLock)) { File.Delete(blockChainLock); } }