MCPcopy Create free account
hub / github.com/DNAProject/DNA / sendToPeer

Method sendToPeer

consensus/vbft/node_utils.go:403–425  ·  view source on GitHub ↗
(peerIdx uint32, data []byte)

Source from the content-addressed store, hash-verified

401}
402
403func (self *Server) sendToPeer(peerIdx uint32, data []byte) error {
404 peer := self.peerPool.getPeer(peerIdx)
405 if peer == nil {
406 return fmt.Errorf("send peer failed: failed to get peer %d", peerIdx)
407 }
408 msg := &p2pmsg.ConsensusPayload{
409 Data: data,
410 Owner: self.account.PublicKey,
411 }
412
413 sink := common.NewZeroCopySink(nil)
414 msg.SerializationUnsigned(sink)
415 msg.Signature, _ = signature.Sign(self.account, sink.Bytes())
416
417 cons := msgpack.NewConsensus(msg)
418 p2pid, present := self.peerPool.getP2pId(peerIdx)
419 if present {
420 self.p2p.Transmit(p2pid, cons)
421 } else {
422 log.Errorf("sendToPeer transmit failed index:%d", peerIdx)
423 }
424 return nil
425}
426
427func (self *Server) broadcast(msg ConsensusMsg) {
428 self.msgSendC <- &SendMsgEvent{

Callers 1

msgSendLoopMethod · 0.95

Calls 9

SerializationUnsignedMethod · 0.95
BytesMethod · 0.95
NewZeroCopySinkFunction · 0.92
SignFunction · 0.92
ErrorfFunction · 0.92
getPeerMethod · 0.80
ErrorfMethod · 0.80
getP2pIdMethod · 0.80
TransmitMethod · 0.80

Tested by

no test coverage detected