Exemple #1
0
        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();
        }
Exemple #2
0
        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);
            }
        }