csharp 基本区块链.Net实施

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 基本区块链.Net实施相关的知识,希望对你有一定的参考价值。

using System;
using System.Security.Cryptography;
using System.Text;

namespace Blockchain
{
    public class Block
    {
        private DateTime _timestamp;
        public int Index { get; private set; }
        public string Data { get; private set; }
        public string PreviousHash { get; private set; }

        public Block( int index, string data, string previousHash )
        {
            Index = index;
            Data = data;
            PreviousHash = previousHash;
            _timestamp = DateTime.Now;
        }

        // create the hash value of the block
        public string GetHashValue()
        {
            // block data to hash
            var dataToHash = string.Format( "{0}_{1}_{2}_{3}", Index, _timestamp.ToString(), Data, PreviousHash );

            var hasher = SHA256.Create();

            var hashValue = hasher.ComputeHash( Encoding.UTF8.GetBytes( dataToHash ) );

            return Convert.ToBase64String( hashValue );
        }

        // create the first block of blockchain
        public static Block CreateGenesisBlock() => new Block( 0, "Genesis block", "0" );

        // create next block
        public static Block CreateNextBlock( Block lastBlock, string data ) => 
            new Block( lastBlock.Index + 1, data, lastBlock.GetHashValue() );
    }
}

以上是关于csharp 基本区块链.Net实施的主要内容,如果未能解决你的问题,请参考以下文章

《区块链应用指南方法与实践》读书笔记

《区块链应用指南方法与实践》读书笔记

《区块链应用指南方法与实践》读书笔记

《区块链应用指南方法与实践》读书笔记

区块链与国际贸易

《人民法院在线诉讼规则》正式实施,明确区块链数据存证效力范围