forked from cerc-io/plugeth
Quick dirty peer update
This commit is contained in:
parent
df2b70853f
commit
d7736a7bbb
38
peer.go
38
peer.go
@ -24,9 +24,9 @@ const (
|
|||||||
// The size of the output buffer for writing messages
|
// The size of the output buffer for writing messages
|
||||||
outputBufferSize = 50
|
outputBufferSize = 50
|
||||||
// Current protocol version
|
// Current protocol version
|
||||||
ProtocolVersion = 34
|
ProtocolVersion = 35
|
||||||
// Current P2P version
|
// Current P2P version
|
||||||
P2PVersion = 0
|
P2PVersion = 2
|
||||||
// Ethereum network version
|
// Ethereum network version
|
||||||
NetVersion = 0
|
NetVersion = 0
|
||||||
// Interval for ping/pong message
|
// Interval for ping/pong message
|
||||||
@ -434,7 +434,7 @@ func (p *Peer) HandleInbound() {
|
|||||||
}
|
}
|
||||||
case ethwire.MsgGetPeersTy:
|
case ethwire.MsgGetPeersTy:
|
||||||
// Peer asked for list of connected peers
|
// Peer asked for list of connected peers
|
||||||
p.pushPeers()
|
//p.pushPeers()
|
||||||
case ethwire.MsgPeersTy:
|
case ethwire.MsgPeersTy:
|
||||||
// Received a list of peers (probably because MsgGetPeersTy was send)
|
// Received a list of peers (probably because MsgGetPeersTy was send)
|
||||||
data := msg.Data
|
data := msg.Data
|
||||||
@ -672,7 +672,7 @@ func (p *Peer) pushPeers() {
|
|||||||
|
|
||||||
func (self *Peer) pushStatus() {
|
func (self *Peer) pushStatus() {
|
||||||
msg := ethwire.NewMessage(ethwire.MsgStatusTy, []interface{}{
|
msg := ethwire.NewMessage(ethwire.MsgStatusTy, []interface{}{
|
||||||
uint32(ProtocolVersion),
|
//uint32(ProtocolVersion),
|
||||||
uint32(NetVersion),
|
uint32(NetVersion),
|
||||||
self.ethereum.BlockChain().TD,
|
self.ethereum.BlockChain().TD,
|
||||||
self.ethereum.BlockChain().CurrentBlock.Hash(),
|
self.ethereum.BlockChain().CurrentBlock.Hash(),
|
||||||
@ -686,11 +686,11 @@ func (self *Peer) handleStatus(msg *ethwire.Msg) {
|
|||||||
c := msg.Data
|
c := msg.Data
|
||||||
|
|
||||||
var (
|
var (
|
||||||
protoVersion = c.Get(0).Uint()
|
//protoVersion = c.Get(0).Uint()
|
||||||
netVersion = c.Get(1).Uint()
|
netVersion = c.Get(0).Uint()
|
||||||
td = c.Get(2).BigInt()
|
td = c.Get(1).BigInt()
|
||||||
bestHash = c.Get(3).Bytes()
|
bestHash = c.Get(2).Bytes()
|
||||||
genesis = c.Get(4).Bytes()
|
genesis = c.Get(3).Bytes()
|
||||||
)
|
)
|
||||||
|
|
||||||
if bytes.Compare(self.ethereum.BlockChain().Genesis().Hash(), genesis) != 0 {
|
if bytes.Compare(self.ethereum.BlockChain().Genesis().Hash(), genesis) != 0 {
|
||||||
@ -703,10 +703,12 @@ func (self *Peer) handleStatus(msg *ethwire.Msg) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if protoVersion != ProtocolVersion {
|
/*
|
||||||
ethlogger.Warnf("Invalid protocol version %d. Disabling [eth]\n", protoVersion)
|
if protoVersion != ProtocolVersion {
|
||||||
return
|
ethlogger.Warnf("Invalid protocol version %d. Disabling [eth]\n", protoVersion)
|
||||||
}
|
return
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
// Get the td and last hash
|
// Get the td and last hash
|
||||||
self.td = td
|
self.td = td
|
||||||
@ -719,14 +721,14 @@ func (self *Peer) handleStatus(msg *ethwire.Msg) {
|
|||||||
// fetch hashes from highest TD node.
|
// fetch hashes from highest TD node.
|
||||||
self.FetchHashes()
|
self.FetchHashes()
|
||||||
|
|
||||||
ethlogger.Infof("Peer is [eth] capable. (TD = %v ~ %x) %d / %d", self.td, self.bestHash, protoVersion, netVersion)
|
ethlogger.Infof("Peer is [eth] capable. (TD = %v ~ %x)", self.td, self.bestHash)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Peer) pushHandshake() error {
|
func (p *Peer) pushHandshake() error {
|
||||||
pubkey := p.ethereum.KeyManager().PublicKey()
|
pubkey := p.ethereum.KeyManager().PublicKey()
|
||||||
msg := ethwire.NewMessage(ethwire.MsgHandshakeTy, []interface{}{
|
msg := ethwire.NewMessage(ethwire.MsgHandshakeTy, []interface{}{
|
||||||
P2PVersion, []byte(p.version), []interface{}{"eth"}, p.port, pubkey[1:],
|
P2PVersion, []byte(p.version), []interface{}{"eth", ProtocolVersion}, p.port, pubkey[1:],
|
||||||
})
|
})
|
||||||
|
|
||||||
p.QueueMessage(msg)
|
p.QueueMessage(msg)
|
||||||
@ -811,6 +813,12 @@ func (p *Peer) handleHandshake(msg *ethwire.Msg) {
|
|||||||
cap := capsIt.Value().Str()
|
cap := capsIt.Value().Str()
|
||||||
switch cap {
|
switch cap {
|
||||||
case "eth":
|
case "eth":
|
||||||
|
capsIt.Next()
|
||||||
|
version := capsIt.Value().Uint()
|
||||||
|
if version != ProtocolVersion {
|
||||||
|
ethlogger.Warnf("Invalid protocol version %d. Disabling [eth]\n", version)
|
||||||
|
continue
|
||||||
|
}
|
||||||
p.pushStatus()
|
p.pushStatus()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ var Logger ethlog.LogSystem
|
|||||||
var Log = ethlog.NewLogger("TEST")
|
var Log = ethlog.NewLogger("TEST")
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
Logger = ethlog.NewStdLogSystem(os.Stdout, log.LstdFlags, ethlog.LogLevel(0))
|
Logger = ethlog.NewStdLogSystem(os.Stdout, log.LstdFlags, ethlog.LogLevel(3))
|
||||||
ethlog.AddLogSystem(Logger)
|
ethlog.AddLogSystem(Logger)
|
||||||
|
|
||||||
ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "")
|
ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "")
|
||||||
|
Loading…
Reference in New Issue
Block a user