code: func (bc *BlockChain) GetBodyRLP(hash common.Hash) rlp.RawValue {
  	// Short circuit if the body's already in the cache, retrieve otherwise
  	if cached, ok := bc.bodyRLPCache.Get(hash); ok {
  		return cached.(rlp.RawValue)
  	}
  	number := bc.hc.GetBlockNumber(hash)
  	if number == nil {
  		return nil
  	}
  	body := rawdb.ReadBodyRLP(bc.db, hash, *number)
  	if len(body) == 0 {
  		return nil
  	}
  	// Cache the found body for next time and return
  	bc.bodyRLPCache.Add(hash, body)
  	return body
  }
docs: // GetBodyRLP retrieves a block body in RLP encoding from the database by hash,
  // caching it if found.