| 346 | } |
| 347 | |
| 348 | func (msg *BlockFetchRespMsg) Deserialize(data []byte) error { |
| 349 | buffer := bytes.NewBuffer(data) |
| 350 | blocknum, err := serialization.ReadUint32(buffer) |
| 351 | if err != nil { |
| 352 | return err |
| 353 | } |
| 354 | msg.BlockNumber = blocknum |
| 355 | err = msg.BlockHash.Deserialize(buffer) |
| 356 | if err != nil { |
| 357 | return err |
| 358 | } |
| 359 | blk := &Block{} |
| 360 | if err := blk.Deserialize(buffer.Bytes()); err != nil { |
| 361 | return fmt.Errorf("unmarshal block type: %s", err) |
| 362 | } |
| 363 | msg.BlockData = blk |
| 364 | return nil |
| 365 | } |
| 366 | |
| 367 | // proposal fetch msg is to fetch proposal when peer failed to get proposal locally |
| 368 | type proposalFetchMsg struct { |