//1.生成一个新区块
        /// <summary>
        /// 生成一个新区块
        /// </summary>
        /// <param name="data">交易数据</param>
        /// <param name="height">区块的高度</param>
        /// <param name="prevBlockHash">上一个区块的hash</param>
        /// <returns></returns>
        public Block(Transaction[] data, long height, byte[] prevBlockHash)
        {
            //创建区块
            Height        = height;
            PrevBlockHash = prevBlockHash;
            Txs           = data;
            Timestamp     = Utils.GetTimeStamp();
            Nonce         = 0;
            // 调用工作量证明的方法并且返回有效的Hash和Nonce
            var pow = new ProofOfWork(this);

            var(hash, nonce) = pow.Run();

            this.Hash  = hash;
            this.Nonce = nonce;
        }
        //1.生成一个新区块
        /// <summary>
        /// 生成一个新区块
        /// </summary>
        /// <param name="data">交易数据</param>
        /// <param name="height">区块的高度</param>
        /// <param name="prevBlockHash">上一个区块的hash</param>
        /// <returns></returns>
        public Block(string data, long height, byte[] prevBlockHash)
        {
            //创建区块
            Height        = height;
            PrevBlockHash = prevBlockHash;
            Data          = Encoding.Default.GetBytes(data);
            Timestamp     = Utils.GetTimeStamp();
            Nonce         = 0;
            // 调用工作量证明的方法并且返回有效的Hash和Nonce
            var pow = new ProofOfWork(this);

            var(hash, nonce) = pow.Run();

            this.Hash  = hash;
            this.Nonce = nonce;
        }