Added len
This commit is contained in:
parent
9559b53228
commit
a26c479182
@ -33,6 +33,10 @@ func NewBlockPool(eth *Ethereum) *BlockPool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *BlockPool) Len() int {
|
||||||
|
return len(self.hashPool)
|
||||||
|
}
|
||||||
|
|
||||||
func (self *BlockPool) HasLatestHash() bool {
|
func (self *BlockPool) HasLatestHash() bool {
|
||||||
return self.pool[string(self.eth.BlockChain().CurrentBlock.Hash())] != nil
|
return self.pool[string(self.eth.BlockChain().CurrentBlock.Hash())] != nil
|
||||||
}
|
}
|
||||||
|
48
peer.go
48
peer.go
@ -287,7 +287,7 @@ func (p *Peer) writeMessage(msg *ethwire.Msg) {
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
peerlogger.DebugDetailf("(%v) <= %v %v\n", p.conn.RemoteAddr(), msg.Type, msg.Data)
|
peerlogger.DebugDetailf("(%v) <= %v\n", p.conn.RemoteAddr(), formatMessage(msg))
|
||||||
|
|
||||||
err := ethwire.WriteMessage(p.conn, msg)
|
err := ethwire.WriteMessage(p.conn, msg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -351,6 +351,27 @@ clean:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func formatMessage(msg *ethwire.Msg) (ret string) {
|
||||||
|
ret = fmt.Sprintf("%v ", msg.Type)
|
||||||
|
|
||||||
|
/*
|
||||||
|
XXX Commented out because I need the log level here to determine
|
||||||
|
if i should or shouldn't generate this message
|
||||||
|
*/
|
||||||
|
switch msg.Type {
|
||||||
|
case ethwire.MsgPeersTy:
|
||||||
|
ret += fmt.Sprintf("(%d entries)", msg.Data.Len())
|
||||||
|
case ethwire.MsgBlockTy:
|
||||||
|
b1, b2 := ethchain.NewBlockFromRlpValue(msg.Data.Get(0)), ethchain.NewBlockFromRlpValue(msg.Data.Get(msg.Data.Len()-1))
|
||||||
|
ret += fmt.Sprintf("(%d entries) %x - %x", msg.Data.Len(), b1.Hash()[0:4], b2.Hash()[0:4])
|
||||||
|
case ethwire.MsgBlockHashesTy:
|
||||||
|
h1, h2 := msg.Data.Get(0).Bytes(), msg.Data.Get(msg.Data.Len()-1).Bytes()
|
||||||
|
ret += fmt.Sprintf("(%d entries) %x - %x", msg.Data.Len(), h1[0:4], h2[0:4])
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Inbound handler. Inbound messages are received here and passed to the appropriate methods
|
// Inbound handler. Inbound messages are received here and passed to the appropriate methods
|
||||||
func (p *Peer) HandleInbound() {
|
func (p *Peer) HandleInbound() {
|
||||||
for atomic.LoadInt32(&p.disconnect) == 0 {
|
for atomic.LoadInt32(&p.disconnect) == 0 {
|
||||||
@ -363,7 +384,7 @@ func (p *Peer) HandleInbound() {
|
|||||||
peerlogger.Debugln(err)
|
peerlogger.Debugln(err)
|
||||||
}
|
}
|
||||||
for _, msg := range msgs {
|
for _, msg := range msgs {
|
||||||
peerlogger.DebugDetailf("(%v) => %v %v\n", p.conn.RemoteAddr(), msg.Type, msg.Data)
|
peerlogger.DebugDetailf("(%v) => %v\n", p.conn.RemoteAddr(), formatMessage(msg))
|
||||||
|
|
||||||
switch msg.Type {
|
switch msg.Type {
|
||||||
case ethwire.MsgHandshakeTy:
|
case ethwire.MsgHandshakeTy:
|
||||||
@ -505,11 +526,14 @@ func (p *Peer) HandleInbound() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
peerlogger.Infoln(err)
|
peerlogger.Infoln(err)
|
||||||
} else {
|
} else {
|
||||||
|
// Don't trigger if there's just one block.
|
||||||
|
if blockPool.Len() != 0 && msg.Data.Len() > 1 {
|
||||||
p.FetchBlocks()
|
p.FetchBlocks()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
p.Stop()
|
p.Stop()
|
||||||
}
|
}
|
||||||
@ -643,7 +667,11 @@ func (self *Peer) handleStatus(msg *ethwire.Msg) {
|
|||||||
bestHash = c.Get(3).Bytes()
|
bestHash = c.Get(3).Bytes()
|
||||||
genesis = c.Get(4).Bytes()
|
genesis = c.Get(4).Bytes()
|
||||||
)
|
)
|
||||||
ethlogger.Infof("gen = %x\n", genesis)
|
|
||||||
|
if bytes.Compare(self.ethereum.BlockChain().Genesis().Hash(), genesis) != 0 {
|
||||||
|
ethlogger.Warnf("Invalid genisis hash %x. Disabling [ETH]\n", genesis)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// Get the td and last hash
|
// Get the td and last hash
|
||||||
self.td = td
|
self.td = td
|
||||||
@ -734,17 +762,21 @@ func (p *Peer) handleHandshake(msg *ethwire.Msg) {
|
|||||||
p.ethereum.PushPeer(p)
|
p.ethereum.PushPeer(p)
|
||||||
p.ethereum.reactor.Post("peerList", p.ethereum.Peers())
|
p.ethereum.reactor.Post("peerList", p.ethereum.Peers())
|
||||||
|
|
||||||
ethlogger.Infof("Added peer (%s) %d / %d (%v)\n", p.conn.RemoteAddr(), p.ethereum.Peers().Len(), p.ethereum.MaxPeers, caps.Raw())
|
|
||||||
|
|
||||||
peerlogger.Debugln(p)
|
|
||||||
|
|
||||||
capsIt := caps.NewIterator()
|
capsIt := caps.NewIterator()
|
||||||
|
var capsStrs []string
|
||||||
for capsIt.Next() {
|
for capsIt.Next() {
|
||||||
switch capsIt.Value().Str() {
|
cap := capsIt.Value().Str()
|
||||||
|
switch cap {
|
||||||
case "eth":
|
case "eth":
|
||||||
p.pushStatus()
|
p.pushStatus()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
capsStrs = append(capsStrs, cap)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ethlogger.Infof("Added peer (%s) %d / %d (%v)\n", p.conn.RemoteAddr(), p.ethereum.Peers().Len(), p.ethereum.MaxPeers, capsStrs)
|
||||||
|
|
||||||
|
peerlogger.Debugln(p)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Peer) String() string {
|
func (p *Peer) String() string {
|
||||||
|
Loading…
Reference in New Issue
Block a user