()
| 517 | } |
| 518 | |
| 519 | func (self *Server) start() error { |
| 520 | // check if server pubkey support VRF |
| 521 | if !vrf.ValidatePrivateKey(self.account.PrivateKey) || !vrf.ValidatePublicKey(self.account.PublicKey) { |
| 522 | return fmt.Errorf("server %d consensus start failed: invalid account key for VRF", self.Index) |
| 523 | } |
| 524 | |
| 525 | // start heartbeat ticker |
| 526 | self.timer.startPeerTicker(math.MaxUint32) |
| 527 | |
| 528 | // start peers msg handlers |
| 529 | for _, p := range self.config.Peers { |
| 530 | peerIdx := p.Index |
| 531 | pk := self.peerPool.GetPeerPubKey(peerIdx) |
| 532 | if _, present := self.msgRecvC[peerIdx]; !present { |
| 533 | self.msgRecvC[peerIdx] = make(chan *p2pMsgPayload, 1024) |
| 534 | } |
| 535 | |
| 536 | go func() { |
| 537 | if err := self.run(pk); err != nil { |
| 538 | log.Errorf("server %d, processor on peer %d failed: %s", |
| 539 | self.Index, peerIdx, err) |
| 540 | } |
| 541 | }() |
| 542 | } |
| 543 | |
| 544 | return nil |
| 545 | } |
| 546 | |
| 547 | func (self *Server) stop() { |
| 548 |
no test coverage detected