code: func (d *Delivery) handleChunkDeliveryMsg(ctx context.Context, sp *Peer, req *ChunkDeliveryMsg) error {
  	var osp opentracing.Span
  	ctx, osp = spancontext.StartSpan(
  		ctx,
  		"handle.chunk.delivery")
  
  	processReceivedChunksCount.Inc(1)
  
  	// retrieve the span for the originating retrieverequest
  	spanId := fmt.Sprintf("stream.send.request.%v.%v", sp.ID(), req.Addr)
  	span := tracing.ShiftSpanByKey(spanId)
  
  	log.Trace("handle.chunk.delivery", "ref", req.Addr, "from peer", sp.ID())
  
  	go func() {
  		defer osp.Finish()
  
  		if span != nil {
  			span.LogFields(olog.String("finish", "from handleChunkDeliveryMsg"))
  			defer span.Finish()
  		}
  
  		req.peer = sp
  		log.Trace("handle.chunk.delivery", "put", req.Addr)
  		err := d.chunkStore.Put(ctx, storage.NewChunk(req.Addr, req.SData))
  		if err != nil {
  			if err == storage.ErrChunkInvalid {
  				// we removed this log because it spams the logs
  				// TODO: Enable this log line
  				// log.Warn("invalid chunk delivered", "peer", sp.ID(), "chunk", req.Addr, )
  				req.peer.Drop(err)
  			}
  		}
  		log.Trace("handle.chunk.delivery", "done put", req.Addr, "err", err)
  	}()
  	return nil
  }
docs: // chunk delivery msg is response to retrieverequest msg