OSDN Git Service

Merge pull request #771 from Bytom/fix-lru-cache-get
[bytom/bytom.git] / netsync / message.go
index eee3c1b..ec6e1c9 100644 (file)
@@ -146,15 +146,17 @@ func (m *StatusRequestMessage) String() string {
 
 //StatusResponseMessage get status response msg
 type StatusResponseMessage struct {
-       Height  uint64
-       RawHash [32]byte
+       Height      uint64
+       RawHash     [32]byte
+       GenesisHash [32]byte
 }
 
 //NewStatusResponseMessage construct get status response msg
-func NewStatusResponseMessage(blockHeader *types.BlockHeader) *StatusResponseMessage {
+func NewStatusResponseMessage(blockHeader *types.BlockHeader, hash *bc.Hash) *StatusResponseMessage {
        return &StatusResponseMessage{
-               Height:  blockHeader.Height,
-               RawHash: blockHeader.Hash().Byte32(),
+               Height:      blockHeader.Height,
+               RawHash:     blockHeader.Hash().Byte32(),
+               GenesisHash: hash.Byte32(),
        }
 }
 
@@ -164,10 +166,17 @@ func (m *StatusResponseMessage) GetHash() *bc.Hash {
        return &hash
 }
 
+//GetGenesisHash get hash from msg
+func (m *StatusResponseMessage) GetGenesisHash() *bc.Hash {
+       hash := bc.NewHash(m.GenesisHash)
+       return &hash
+}
+
 //String convert msg to string
 func (m *StatusResponseMessage) String() string {
        hash := m.GetHash()
-       return fmt.Sprintf("StatusResponseMessage{Height: %d, Hash: %s}", m.Height, hash.String())
+       genesisHash := m.GetGenesisHash()
+       return fmt.Sprintf("StatusResponseMessage{Height: %d, Best hash: %s, Genesis hash: %s}", m.Height, hash.String(), genesisHash.String())
 }
 
 //MineBlockMessage new mined block msg