Skip to content

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")

← Sync & Downloader