headerQueue.deliver¶
| Source (upstream pre-purge) | Current | |
|---|---|---|
| File | eth/downloader/fetchers_concurrent_headers.go |
fetchers_concurrent_headers_pow.go |
| Symbol | headerQueue.deliver |
headerQueue.deliver |
| Ref | 45baf2111~1 |
etc/v1.17.3-full-node |
3-way merge — purge → getc ← upstream¶
pre-purge≈ adapted (origin inferred by similarity)
↗// deliver is responsible for taking a generic response packet from the concurrent
// fetcher, unpacking the header data and delivering it to the downloader's queue.
func (q *headerQueue) deliver(peer *peerConnection, packet *eth.Response) (int, error) {
headers := *packet.Res.(*eth.BlockHeadersRequest)
hashes := packet.Meta.([]common.Hash)
≈ accepted, err := q.queue.DeliverHeaders(peer.id, headers, hashes, q.d.headerProcCh)
↗ switch {
case err == nil && len(headers) == 0:
peer.log.Trace("Requested headers delivered")
case err == nil:
peer.log.Trace("Delivered new batch of headers", "count", len(headers), "accepted", accepted)
default:
peer.log.Debug("Failed to deliver retrieved headers", "err", err)
}
return accepted, err
}
core-geth validation — +1 -1
| | | |---|---| | File | [`fetchers_concurrent_headers.go`](https://github.com/etclabscore/core-geth/blob/v1.12.20/eth/downloader/fetchers_concurrent_headers.go) | | Symbol | `headerQueue.deliver` | | Ref | `v1.12.20` |--- a/core-geth/eth/downloader/fetchers_concurrent_headers.go
+++ b/etc/eth/downloader/fetchers_concurrent_headers_pow.go
@@ -4,7 +4,7 @@
headers := *packet.Res.(*eth.BlockHeadersRequest)
hashes := packet.Meta.([]common.Hash)
- accepted, err := q.queue.DeliverHeaders(peer.id, headers, hashes, q.headerProcCh)
+ accepted, err := q.queue.DeliverHeaders(peer.id, headers, hashes, q.d.headerProcCh)
switch {
case err == nil && len(headers) == 0:
peer.log.Trace("Requested headers delivered")