コード例 #1
0
        public Protocol.Block Build(Block block)
        {
            var header           = block.Header;
            var protoBlockHeader = new Protocol.BlockHeader
            {
                PrevBlockHash  = ByteString.CopyFrom(header.PrevBlockHash.GetBytes()),
                MerkleRootHash = ByteString.CopyFrom(header.MerkleRootHash.GetBytes()),
                Timestamp      = header.Timestamp,
                Bits           = header.Bits,
                Nonce          = header.Nonce
            };

            var protoBlock = new Protocol.Block
            {
                BlockHeader = protoBlockHeader,
                Hash        = ByteString.CopyFrom(block.Hash.GetBytes()),
                VoteCounter = block.VoteCounter,
                Votes       = { }
            };

            var protoVotes = block.MerkleTree.Votes.Select(x => this.protoVoteFactory.Build(x));

            protoBlock.Votes.AddRange(protoVotes);

            return(protoBlock);
        }
コード例 #2
0
 public BlockHeader(Protocol.BlockHeader protoBlockHeader)
 {
     this.PrevBlockHash  = new Hash(protoBlockHeader.PrevBlockHash);
     this.MerkleRootHash = new Hash(protoBlockHeader.MerkleRootHash);
     this.Timestamp      = protoBlockHeader.Timestamp;
     this.Bits           = protoBlockHeader.Bits;
     this.Nonce          = protoBlockHeader.Nonce;
 }