forked from cerc-io/plugeth
		
	fixed status message
This commit is contained in:
		
							parent
							
								
									742a9b00bc
								
							
						
					
					
						commit
						86d1a26b13
					
				
							
								
								
									
										28
									
								
								peer.go
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								peer.go
									
									
									
									
									
								
							| @ -634,8 +634,8 @@ func (self *Peer) pushStatus() { | ||||
| 	const netVersion = 0 | ||||
| 	msg := ethwire.NewMessage(ethwire.MsgStatusTy, []interface{}{ | ||||
| 		uint32(ProtocolVersion), | ||||
| 		netVersion, | ||||
| 		self.ethereum.BlockChain().TD.Uint64(), | ||||
| 		uint32(netVersion), | ||||
| 		self.ethereum.BlockChain().TD, | ||||
| 		self.ethereum.BlockChain().CurrentBlock.Hash(), | ||||
| 		self.ethereum.BlockChain().Genesis().Hash(), | ||||
| 	}) | ||||
| @ -645,13 +645,22 @@ func (self *Peer) pushStatus() { | ||||
| 
 | ||||
| func (self *Peer) handleStatus(msg *ethwire.Msg) { | ||||
| 	c := msg.Data | ||||
| 	// Set the peer's caps
 | ||||
| 	//p.caps = Caps(c.Get(3).Byte())
 | ||||
| 
 | ||||
| 	var ( | ||||
| 		protoVersion = c.Get(0).Uint() | ||||
| 		netVersion   = c.Get(1).Uint() | ||||
| 		td           = c.Get(2).BigInt() | ||||
| 		bestHash     = c.Get(3).Bytes() | ||||
| 		genesis      = c.Get(4).Bytes() | ||||
| 	) | ||||
| 	ethlogger.Infof("gen = %x\n", genesis) | ||||
| 
 | ||||
| 	// Get the td and last hash
 | ||||
| 	self.td = c.Get(6).BigInt() | ||||
| 	self.bestHash = c.Get(7).Bytes() | ||||
| 	self.lastReceivedHash = self.bestHash | ||||
| 	self.td = td | ||||
| 	self.bestHash = bestHash | ||||
| 	self.lastReceivedHash = bestHash | ||||
| 
 | ||||
| 	self.statusKnown = true | ||||
| 
 | ||||
| 	// Compare the total TD with the blockchain TD. If remote is higher
 | ||||
| 	// fetch hashes from highest TD node.
 | ||||
| @ -660,13 +669,14 @@ func (self *Peer) handleStatus(msg *ethwire.Msg) { | ||||
| 		self.FetchHashes() | ||||
| 	} | ||||
| 
 | ||||
| 	ethlogger.Infof("Peer is [ETH] capable. (TD = %v ~ %x", self.td, self.bestHash) | ||||
| 	ethlogger.Infof("Peer is [ETH] capable. (TD = %v ~ %x) %d / %d", self.td, self.bestHash, protoVersion, netVersion) | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| func (p *Peer) pushHandshake() error { | ||||
| 	pubkey := p.ethereum.KeyManager().PublicKey() | ||||
| 	msg := ethwire.NewMessage(ethwire.MsgHandshakeTy, []interface{}{ | ||||
| 		uint32(0), []byte(p.version), []string{"eth"}, uint32(30303) /*p.port*/, pubkey[1:], | ||||
| 		P2PVersion, []byte(p.version), []interface{}{"eth"}, uint32(30303) /*p.port*/, pubkey[1:], | ||||
| 	}) | ||||
| 
 | ||||
| 	p.QueueMessage(msg) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user