Implemented IsUpToDate to mark the node as ready to start mining

This commit is contained in:
Maran 2014-05-14 13:57:04 +02:00
parent 0512113bdd
commit 3ac74b1e78
2 changed files with 14 additions and 0 deletions

View File

@ -138,6 +138,18 @@ func (s *Ethereum) IsMining() bool {
func (s *Ethereum) PeerCount() int { func (s *Ethereum) PeerCount() int {
return s.peers.Len() return s.peers.Len()
} }
func (s *Ethereum) IsUpToDate() bool {
upToDate := true
eachPeer(s.peers, func(peer *Peer, e *list.Element) {
if atomic.LoadInt32(&peer.connected) == 1 {
if peer.catchingUp == true {
upToDate = false
}
}
})
return upToDate
}
func (s *Ethereum) IsListening() bool { func (s *Ethereum) IsListening() bool {
return s.listening return s.listening
} }

View File

@ -389,6 +389,8 @@ func (p *Peer) HandleInbound() {
p.CatchupWithPeer(p.ethereum.BlockChain().CurrentBlock.Hash()) p.CatchupWithPeer(p.ethereum.BlockChain().CurrentBlock.Hash())
} }
} }
p.catchingUp = false
case ethwire.MsgTxTy: case ethwire.MsgTxTy:
// If the message was a transaction queue the transaction // If the message was a transaction queue the transaction
// in the TxPool where it will undergo validation and // in the TxPool where it will undergo validation and