예제 #1
0
        private Block CreateBlock()
        {
            var transaction = new Transaction
            {
                Id = $"{Guid.NewGuid()}"
            };
            var blockObject = new BlockObject
            {
                Data = transaction
            };

            blockObject.Hash = blockObject.ToHashBytes(HashProvider);

            var block = new Block
            {
                Nonce          = 1,
                PreviousHash   = "rosebud".Sha256(),
                MerkleRootHash = HashProvider.DoubleHash(blockObject.Hash),
                Timestamp      = (uint)DateTimeOffset.UtcNow.ToUnixTimeSeconds(),
                Objects        = new List <BlockObject> {
                    blockObject
                }
            };

            block.MerkleRootHash = block.ComputeMerkleRoot(HashProvider);
            block.Hash           = block.ToHashBytes(HashProvider);
            return(block);
        }