Skip to content

Commit

Permalink
feat(dpos): update process proposal logic
Browse files Browse the repository at this point in the history
  • Loading branch information
RainFallsSilent committed Jan 14, 2025
1 parent b4c39e6 commit 3950281
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
4 changes: 4 additions & 0 deletions dpos/manager/dposmanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,10 @@ func (d *DPOSManager) isBlockExist(blockHash common.Uint256) bool {
return block != nil
}

func (d *DPOSManager) GetBlockByHash(blockHash common.Uint256) (*types.Block, error) {
return d.getBlock(blockHash)
}

func (d *DPOSManager) OnGetBlock(id dpeer.PID, blockHash common.Uint256) {
if !d.isCurrentArbiter() {
return
Expand Down
13 changes: 11 additions & 2 deletions dpos/manager/proposaldispatcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -326,8 +326,8 @@ func (p *ProposalDispatcher) ProcessProposal(id peer.PID, d *payload.DPOSProposa
return true, !self
}

currentBlock, ok := p.cfg.Manager.GetBlockCache().TryGetValue(d.BlockHash)
if !ok || !p.cfg.Consensus.IsRunning() {
currentBlock, err := p.GetBlockByHash(d.BlockHash)
if err != nil || !p.cfg.Consensus.IsRunning() {
p.pendingProposals[d.Hash()] = d
p.cfg.Manager.OnInv(id, d.BlockHash)
log.Info("received pending proposal")
Expand All @@ -353,6 +353,15 @@ func (p *ProposalDispatcher) ProcessProposal(id peer.PID, d *payload.DPOSProposa
return true, true
}

func (p *ProposalDispatcher) GetBlockByHash(hash common.Uint256) (*types.Block, error) {
block, ok := p.cfg.Manager.GetBlockCache().TryGetValue(hash)
if ok {
return block, nil
}

return p.cfg.Manager.GetBlockByHash(hash)
}

func (p *ProposalDispatcher) AppendConfirm() {
currentVoteSlot := &payload.Confirm{
Proposal: *p.processingProposal,
Expand Down

0 comments on commit 3950281

Please sign in to comment.