code: func (p *peerConnection) FetchBodies(request *fetchRequest) error {
  	// Sanity check the protocol version
  	if p.version < 62 {
  		panic(fmt.Sprintf("body fetch [eth/62+] requested on eth/%d", p.version))
  	}
  	// Short circuit if the peer is already fetching
  	if !atomic.CompareAndSwapInt32(&p.blockIdle, 0, 1) {
  		return errAlreadyFetching
  	}
  	p.blockStarted = time.Now()
  
  	// Convert the header set to a retrievable slice
  	hashes := make([]common.Hash, 0, len(request.Headers))
  	for _, header := range request.Headers {
  		hashes = append(hashes, header.Hash())
  	}
  	go p.peer.RequestBodies(hashes)
  
  	return nil
  }
docs: // FetchBodies sends a block body retrieval request to the remote peer.