diff options
author | wmin0 <wmin0@hotmail.com> | 2019-01-07 10:29:35 +0800 |
---|---|---|
committer | Jimmy Hu <jimmy.hu@dexon.org> | 2019-01-07 10:29:35 +0800 |
commit | 36d4d760f1d5a108af86094eefbb5303f0334e60 (patch) | |
tree | 2419dc33417a7347bd2db412a88e57093cda9ab1 | |
parent | af8c182a07f9bf3a7a17c938c87f4eef489bb903 (diff) | |
download | tangerine-consensus-36d4d760f1d5a108af86094eefbb5303f0334e60.tar.gz tangerine-consensus-36d4d760f1d5a108af86094eefbb5303f0334e60.tar.zst tangerine-consensus-36d4d760f1d5a108af86094eefbb5303f0334e60.zip |
core: remove useless branching code (#403)
-rw-r--r-- | core/agreement-state.go | 2 | ||||
-rw-r--r-- | core/agreement.go | 17 | ||||
-rw-r--r-- | core/consensus.go | 8 | ||||
-rw-r--r-- | core/db/level-db.go | 43 | ||||
-rw-r--r-- | core/lattice-data.go | 5 | ||||
-rw-r--r-- | core/lattice.go | 29 | ||||
-rw-r--r-- | core/leader-selector.go | 5 |
7 files changed, 29 insertions, 80 deletions
diff --git a/core/agreement-state.go b/core/agreement-state.go index 77f2933..69700b5 100644 --- a/core/agreement-state.go +++ b/core/agreement-state.go @@ -43,7 +43,7 @@ const ( stateSleep ) -var nullBlockHash = common.Hash{} +var nullBlockHash common.Hash var skipBlockHash common.Hash func init() { diff --git a/core/agreement.go b/core/agreement.go index eead462..80a09d2 100644 --- a/core/agreement.go +++ b/core/agreement.go @@ -280,19 +280,14 @@ func (a *agreement) sanityCheck(vote *types.Vote) error { } func (a *agreement) checkForkVote(vote *types.Vote) error { - if err := func() error { - a.data.lock.RLock() - defer a.data.lock.RUnlock() - if votes, exist := a.data.votes[vote.Period]; exist { - if oldVote, exist := votes[vote.Type][vote.ProposerID]; exist { - if vote.BlockHash != oldVote.BlockHash { - return &ErrForkVote{vote.ProposerID, oldVote, vote} - } + a.data.lock.RLock() + defer a.data.lock.RUnlock() + if votes, exist := a.data.votes[vote.Period]; exist { + if oldVote, exist := votes[vote.Type][vote.ProposerID]; exist { + if vote.BlockHash != oldVote.BlockHash { + return &ErrForkVote{vote.ProposerID, oldVote, vote} } } - return nil - }(); err != nil { - return err } return nil } diff --git a/core/consensus.go b/core/consensus.go index 0e5a1fb..7ceac51 100644 --- a/core/consensus.go +++ b/core/consensus.go @@ -1086,9 +1086,7 @@ func (con *Consensus) deliverFinalizedBlocksWithoutLock() (err error) { for _, b := range deliveredBlocks { con.deliverBlock(b) } - if err = con.lattice.PurgeBlocks(deliveredBlocks); err != nil { - return - } + err = con.lattice.PurgeBlocks(deliveredBlocks) return } @@ -1150,9 +1148,7 @@ func (con *Consensus) prepareBlock(b *types.Block, err = ErrCRSNotReady return } - if err = con.signer.SignCRS(b, crs); err != nil { - return - } + err = con.signer.SignCRS(b, crs) return } diff --git a/core/db/level-db.go b/core/db/level-db.go index 75c3037..1fe29fa 100644 --- a/core/db/level-db.go +++ b/core/db/level-db.go @@ -72,11 +72,7 @@ func (lvl *LevelDBBackedDB) HasBlock(hash common.Hash) bool { } func (lvl *LevelDBBackedDB) internalHasBlock(key []byte) (bool, error) { - exists, err := lvl.db.Has(key, nil) - if err != nil { - return false, err - } - return exists, nil + return lvl.db.Has(key, nil) } // GetBlock implements the Reader.GetBlock method. @@ -90,9 +86,6 @@ func (lvl *LevelDBBackedDB) GetBlock( return } err = rlp.DecodeBytes(queried, &block) - if err != nil { - return - } return } @@ -113,9 +106,7 @@ func (lvl *LevelDBBackedDB) UpdateBlock(block types.Block) (err error) { err = ErrBlockDoesNotExist return } - if err = lvl.db.Put(blockKey, marshaled, nil); err != nil { - return - } + err = lvl.db.Put(blockKey, marshaled, nil) return } @@ -134,9 +125,7 @@ func (lvl *LevelDBBackedDB) PutBlock(block types.Block) (err error) { err = ErrBlockExists return } - if err = lvl.db.Put(blockKey, marshaled, nil); err != nil { - return - } + err = lvl.db.Put(blockKey, marshaled, nil) return } @@ -166,10 +155,7 @@ func (lvl *LevelDBBackedDB) PutCompactionChainTipInfo( if info.Height+1 != height { return ErrInvalidCompactionChainTipHeight } - if err = lvl.db.Put(compactionChainTipInfoKey, marshaled, nil); err != nil { - return err - } - return nil + return lvl.db.Put(compactionChainTipInfoKey, marshaled, nil) } func (lvl *LevelDBBackedDB) internalGetCompactionChainTipInfo() ( @@ -181,9 +167,7 @@ func (lvl *LevelDBBackedDB) internalGetCompactionChainTipInfo() ( } return } - if err = rlp.DecodeBytes(queried, &info); err != nil { - return - } + err = rlp.DecodeBytes(queried, &info) return } @@ -201,11 +185,7 @@ func (lvl *LevelDBBackedDB) GetCompactionChainTipInfo() ( // HasDKGPrivateKey check existence of DKG private key of one round. func (lvl *LevelDBBackedDB) HasDKGPrivateKey(round uint64) (bool, error) { - exists, err := lvl.db.Has(lvl.getDKGPrivateKeyKey(round), nil) - if err != nil { - return false, err - } - return exists, nil + return lvl.db.Has(lvl.getDKGPrivateKeyKey(round), nil) } // GetDKGPrivateKey get DKG private key of one round. @@ -218,9 +198,7 @@ func (lvl *LevelDBBackedDB) GetDKGPrivateKey(round uint64) ( } return } - if err = rlp.DecodeBytes(queried, &prv); err != nil { - return - } + err = rlp.DecodeBytes(queried, &prv) return } @@ -239,11 +217,8 @@ func (lvl *LevelDBBackedDB) PutDKGPrivateKey( if err != nil { return err } - if err := lvl.db.Put( - lvl.getDKGPrivateKeyKey(round), marshaled, nil); err != nil { - return err - } - return nil + return lvl.db.Put( + lvl.getDKGPrivateKeyKey(round), marshaled, nil) } func (lvl *LevelDBBackedDB) getBlockKey(hash common.Hash) (ret []byte) { diff --git a/core/lattice-data.go b/core/lattice-data.go index e55c0db..998fb1f 100644 --- a/core/lattice-data.go +++ b/core/lattice-data.go @@ -257,10 +257,7 @@ func (data *latticeData) sanityCheck(b *types.Block) error { return ErrNotAckParent } } - if err := data.checkAckingRelations(b); err != nil { - return err - } - return nil + return data.checkAckingRelations(b) } // addBlock processes blocks. It does sanity check, inserts block into lattice diff --git a/core/lattice.go b/core/lattice.go index b30306a..4c53352 100644 --- a/core/lattice.go +++ b/core/lattice.go @@ -90,9 +90,7 @@ func (l *Lattice) PrepareBlock( if b.Witness, err = l.app.PrepareWitness(b.Witness.Height); err != nil { return } - if err = l.signer.SignBlock(b); err != nil { - return - } + err = l.signer.SignBlock(b) return } @@ -103,9 +101,7 @@ func (l *Lattice) PrepareEmptyBlock(b *types.Block) (err error) { if err = l.data.prepareEmptyBlock(b); err != nil { return } - if b.Hash, err = utils.HashBlock(b); err != nil { - return - } + b.Hash, err = utils.HashBlock(b) return } @@ -139,18 +135,13 @@ func (l *Lattice) SanityCheck(b *types.Block) (err error) { return } } - if err = func() (err error) { - l.lock.RLock() - defer l.lock.RUnlock() - if err = l.data.sanityCheck(b); err != nil { - if _, ok := err.(*ErrAckingBlockNotExists); ok { - err = ErrRetrySanityCheckLater - } - return + l.lock.RLock() + defer l.lock.RUnlock() + if err = l.data.sanityCheck(b); err != nil { + if _, ok := err.(*ErrAckingBlockNotExists); ok { + err = ErrRetrySanityCheckLater } return - }(); err != nil { - return } return } @@ -159,10 +150,8 @@ func (l *Lattice) SanityCheck(b *types.Block) (err error) { func (l *Lattice) Exist(hash common.Hash) bool { l.lock.RLock() defer l.lock.RUnlock() - if _, err := l.data.findBlock(hash); err != nil { - return false - } - return true + _, err := l.data.findBlock(hash) + return err == nil } // addBlockToLattice adds a block into lattice, and delivers blocks with the diff --git a/core/leader-selector.go b/core/leader-selector.go index 94d28fa..bcfa57f 100644 --- a/core/leader-selector.go +++ b/core/leader-selector.go @@ -150,10 +150,7 @@ func (l *leaderSelector) processBlock(block *types.Block) error { func (l *leaderSelector) potentialLeader(block *types.Block) (bool, *big.Int) { dist := l.distance(block.CRSSignature) cmp := l.minCRSBlock.Cmp(dist) - if cmp > 0 || (cmp == 0 && block.Hash.Less(l.minBlockHash)) { - return true, dist - } - return false, dist + return (cmp > 0 || (cmp == 0 && block.Hash.Less(l.minBlockHash))), dist } func (l *leaderSelector) updateLeader(block *types.Block, dist *big.Int) { |