Bee is a Swarm client implemented in Go. It’s the basic building block for the Swarm network: a private; decentralized; and self-sustaining network for permissionless publishing and access to your (application) data.
shallow receipt check should be moved to pushsync (and removed from the pusher). When a shallow receipt is received, pushsync should retry. For light node, in the case that pushsync returns topology.ErrNotFound, if a shallow receipt was received previously, then no error should be returned. For full nodes, if pushsync runs out of peers, it returns errWantSelf (if no receipt was received previously).
in pushsync, a peer should be added to the global skiplist ONLY on error (including shallow receipts). A temporary skiplist per request should be kept to prevent the request from going to the same peer on retries (similar to how the retrieval protocol does it).
closes https://github.com/ethersphere/bee/issues/4683