aboutsummaryrefslogtreecommitdiffstats
path: root/eth/peer.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-04-18 08:21:07 +0800
committerobscuren <geffobscura@gmail.com>2015-04-18 08:21:07 +0800
commitcc436c4b28c95f825499d67c92a18de5d27e90c2 (patch)
tree1b98f50aff0d071b943951c9244bab2fb1451077 /eth/peer.go
parentc2f410214c99ee3636cfb670e84e5f05d179a1ef (diff)
downloaddexon-cc436c4b28c95f825499d67c92a18de5d27e90c2.tar.gz
dexon-cc436c4b28c95f825499d67c92a18de5d27e90c2.tar.zst
dexon-cc436c4b28c95f825499d67c92a18de5d27e90c2.zip
eth: additional cleanups to the subprotocol, improved block propagation
* Improved block propagation by sending blocks only to peers to which, as far as we know, the peer does not know about. * Made sub protocol its own manager * SubProtocol now contains the p2p.Protocol which is used instead of a function-returning-protocol thing.
Diffstat (limited to 'eth/peer.go')
-rw-r--r--eth/peer.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/eth/peer.go b/eth/peer.go
index db7fea7a7..8cedbd85a 100644
--- a/eth/peer.go
+++ b/eth/peer.go
@@ -78,6 +78,12 @@ func (p *peer) sendBlocks(blocks []*types.Block) error {
return p2p.Send(p.rw, BlocksMsg, blocks)
}
+func (p *peer) sendNewBlock(block *types.Block) error {
+ p.blockHashes.Add(block.Hash())
+
+ return p2p.Send(p.rw, NewBlockMsg, []interface{}{block, block.Td})
+}
+
func (p *peer) requestHashes(from common.Hash) error {
p.Debugf("fetching hashes (%d) %x...\n", maxHashes, from[0:4])
return p2p.Send(p.rw, GetBlockHashesMsg, getBlockHashesMsgData{from, maxHashes})