"github.com/sirupsen/logrus"
- "github.com/vapor/event"
- "github.com/vapor/netsync/peers"
- "github.com/vapor/p2p"
- "github.com/vapor/p2p/security"
- "github.com/vapor/protocol/bc"
- "github.com/vapor/protocol/bc/types"
+ "github.com/bytom/vapor/errors"
+ "github.com/bytom/vapor/event"
+ "github.com/bytom/vapor/netsync/peers"
+ "github.com/bytom/vapor/p2p"
+ "github.com/bytom/vapor/p2p/security"
+ "github.com/bytom/vapor/protocol"
+ "github.com/bytom/vapor/protocol/bc"
+ "github.com/bytom/vapor/protocol/bc/types"
)
// Switch is the interface for p2p switch.
m.peers.MarkBlockSignature(peerID, msg.Signature)
blockHash := bc.NewHash(msg.BlockHash)
if err := m.chain.ProcessBlockSignature(msg.Signature, msg.PubKey, &blockHash); err != nil {
- m.peers.ProcessIllegal(peerID, security.LevelMsgIllegal, err.Error())
- return
+ if errors.Root(err) != protocol.ErrDoubleSignBlock {
+ m.peers.ProcessIllegal(peerID, security.LevelMsgIllegal, err.Error())
+ }
}
}
//Start consensus manager service.
func (m *Manager) Start() error {
+ go m.blockFetcher.blockProcessorLoop()
go m.blockProposeMsgBroadcastLoop()
go m.blockSignatureMsgBroadcastLoop()
return nil