Esempio n. 1
0
        public virtual void CreateGenesisBlockIfNotExist()
        {
            var metaData = GetBlockchainMetadata();

            if (metaData.Nodes < 1)
            {
                var genesisBlock =
                    new DataAccess.Model.Block.GenesisBlock
                {
                    Id        = "0",
                    UniqueId  = Guid.Empty.ToString(),
                    QueueTime = TimeSpan.Zero,
                    Depth     = 0,
                    Header    = new DataAccess.Model.Block.Header
                    {
                        Nonce              = Guid.Empty.ToString().Replace("-", ""),
                        Target             = Guid.Empty.ToString().Replace("-", ""),
                        Version            = BlockchainNodeConfiguration.Version,
                        ParentHash         = null,
                        TimeStamp          = DateTime.MinValue,
                        MerkleTreeRootHash = null
                    },
                    Body = new DataAccess.Model.Block.Body
                    {
                        Transactions = new HashSet <DataAccess.Model.Transaction.Transaction>(), MerkleTree = null
                    }
                };

                _blockchainRepository.AddBlock(genesisBlock);
            }
        }