aboutsummaryrefslogtreecommitdiffstats
path: root/peer.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-08-22 16:58:14 +0800
committerobscuren <geffobscura@gmail.com>2014-08-22 16:58:14 +0800
commit93008e279d947e872099c8029b54f7431178bb29 (patch)
tree5dda3e705e14a4caf008b036a287c5fa5e318c4e /peer.go
parent740081e2f7f3f76f7522753fd3c714e57ea22f3f (diff)
downloaddexon-93008e279d947e872099c8029b54f7431178bb29.tar.gz
dexon-93008e279d947e872099c8029b54f7431178bb29.tar.zst
dexon-93008e279d947e872099c8029b54f7431178bb29.zip
Removed old chain code
Diffstat (limited to 'peer.go')
-rw-r--r--peer.go57
1 files changed, 4 insertions, 53 deletions
diff --git a/peer.go b/peer.go
index ab17466e1..79a58d28e 100644
--- a/peer.go
+++ b/peer.go
@@ -474,7 +474,7 @@ func (p *Peer) HandleInbound() {
for it.Next() {
block := ethchain.NewBlockFromRlpValue(it.Value())
- blockPool.SetBlock(block)
+ blockPool.SetBlock(block, p)
p.lastBlockReceived = time.Now()
}
@@ -507,6 +507,7 @@ func (self *Peer) FetchHashes() {
if self.td.Cmp(blockPool.td) >= 0 {
peerlogger.Debugf("Requesting hashes from %x\n", self.lastReceivedHash)
+ blockPool.td = self.td
if !blockPool.HasLatestHash() {
self.QueueMessage(ethwire.NewMessage(ethwire.MsgGetBlockHashesTy, []interface{}{self.lastReceivedHash, uint32(200)}))
@@ -625,7 +626,6 @@ func (p *Peer) handleHandshake(msg *ethwire.Msg) {
usedPub := 0
// This peer is already added to the peerlist so we expect to find a double pubkey at least once
-
eachPeer(p.ethereum.Peers(), func(peer *Peer, e *list.Element) {
if bytes.Compare(p.pubkey, peer.pubkey) == 0 {
usedPub++
@@ -644,7 +644,6 @@ func (p *Peer) handleHandshake(msg *ethwire.Msg) {
return
}
- // [PROTOCOL_VERSION, NETWORK_ID, CLIENT_ID, CAPS, PORT, PUBKEY]
p.versionKnown = true
// If this is an inbound connection send an ack back
@@ -680,15 +679,8 @@ func (p *Peer) handleHandshake(msg *ethwire.Msg) {
ethlogger.Infof("Added peer (%s) %d / %d (TD = %v ~ %x)\n", p.conn.RemoteAddr(), p.ethereum.Peers().Len(), p.ethereum.MaxPeers, p.td, p.bestHash)
- /*
- // Catch up with the connected peer
- if !p.ethereum.IsUpToDate() {
- peerlogger.Debugln("Already syncing up with a peer; sleeping")
- time.Sleep(10 * time.Second)
- }
- */
- //p.SyncWithPeerToLastKnown()
-
+ // Compare the total TD with the blockchain TD. If remote is higher
+ // fetch hashes from highest TD node.
if p.td.Cmp(p.ethereum.BlockChain().TD) > 0 {
p.ethereum.blockPool.AddHash(p.lastReceivedHash)
p.FetchHashes()
@@ -714,47 +706,6 @@ func (p *Peer) String() string {
return fmt.Sprintf("[%s] (%s) %v %s [%s]", strConnectType, strBoundType, p.conn.RemoteAddr(), p.version, p.caps)
}
-func (p *Peer) SyncWithPeerToLastKnown() {
- p.catchingUp = false
- p.CatchupWithPeer(p.ethereum.BlockChain().CurrentBlock.Hash())
-}
-
-func (p *Peer) FindCommonParentBlock() {
- if p.catchingUp {
- return
- }
-
- p.catchingUp = true
- if p.blocksRequested == 0 {
- p.blocksRequested = 20
- }
- blocks := p.ethereum.BlockChain().GetChain(p.ethereum.BlockChain().CurrentBlock.Hash(), p.blocksRequested)
-
- var hashes []interface{}
- for _, block := range blocks {
- hashes = append(hashes, block.Hash())
- }
-
- msgInfo := append(hashes, uint64(len(hashes)))
-
- peerlogger.DebugDetailf("Asking for block from %x (%d total) from %s\n", p.ethereum.BlockChain().CurrentBlock.Hash(), len(hashes), p.conn.RemoteAddr().String())
-
- msg := ethwire.NewMessage(ethwire.MsgGetChainTy, msgInfo)
- p.QueueMessage(msg)
-}
-func (p *Peer) CatchupWithPeer(blockHash []byte) {
- if !p.catchingUp {
- // Make sure nobody else is catching up when you want to do this
- p.catchingUp = true
- msg := ethwire.NewMessage(ethwire.MsgGetChainTy, []interface{}{blockHash, uint64(100)})
- p.QueueMessage(msg)
-
- peerlogger.DebugDetailf("Requesting blockchain %x... from peer %s\n", p.ethereum.BlockChain().CurrentBlock.Hash()[:4], p.conn.RemoteAddr())
-
- msg = ethwire.NewMessage(ethwire.MsgGetTxsTy, []interface{}{})
- p.QueueMessage(msg)
- }
-}
func (p *Peer) RlpData() []interface{} {
return []interface{}{p.host, p.port, p.pubkey}