(proposal *blockProposalMsg, forEmpty bool)
| 285 | } |
| 286 | |
| 287 | func (self *Server) constructEndorseMsg(proposal *blockProposalMsg, forEmpty bool) (*blockEndorseMsg, error) { |
| 288 | |
| 289 | // TODO, support faultyMsg reporting |
| 290 | |
| 291 | var proposerSig, endorserSig []byte |
| 292 | var blkHash common.Uint256 |
| 293 | var err error |
| 294 | if !forEmpty { |
| 295 | proposerSig = proposal.Block.Block.Header.SigData[0] |
| 296 | blkHash = proposal.Block.Block.Hash() |
| 297 | |
| 298 | } else { |
| 299 | if proposal.Block.EmptyBlock == nil { |
| 300 | return nil, fmt.Errorf("blk %d proposal from %d has no empty proposal", |
| 301 | proposal.GetBlockNum(), proposal.Block.getProposer()) |
| 302 | } |
| 303 | |
| 304 | proposerSig = proposal.Block.EmptyBlock.Header.SigData[0] |
| 305 | blkHash = proposal.Block.EmptyBlock.Hash() |
| 306 | } |
| 307 | endorserSig, err = signature.Sign(self.account, blkHash[:]) |
| 308 | if err != nil { |
| 309 | return nil, fmt.Errorf("endorser failed to sign block. hash:%x, err: %s", blkHash, err) |
| 310 | } |
| 311 | |
| 312 | msg := &blockEndorseMsg{ |
| 313 | Endorser: self.Index, |
| 314 | EndorsedProposer: proposal.Block.getProposer(), |
| 315 | BlockNum: proposal.Block.getBlockNum(), |
| 316 | EndorsedBlockHash: blkHash, |
| 317 | EndorseForEmpty: forEmpty, |
| 318 | ProposerSig: proposerSig, |
| 319 | EndorserSig: endorserSig, |
| 320 | } |
| 321 | |
| 322 | return msg, nil |
| 323 | } |
| 324 | |
| 325 | func (self *Server) constructCommitMsg(proposal *blockProposalMsg, endorses []*blockEndorseMsg, forEmpty bool) (*blockCommitMsg, error) { |
| 326 |
no test coverage detected