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); }
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; }