aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorwmin0 <wmin0@hotmail.com>2019-01-07 10:29:35 +0800
committerJimmy Hu <jimmy.hu@dexon.org>2019-01-07 10:29:35 +0800
commit36d4d760f1d5a108af86094eefbb5303f0334e60 (patch)
tree2419dc33417a7347bd2db412a88e57093cda9ab1 /core
parentaf8c182a07f9bf3a7a17c938c87f4eef489bb903 (diff)
downloaddexon-consensus-36d4d760f1d5a108af86094eefbb5303f0334e60.tar
dexon-consensus-36d4d760f1d5a108af86094eefbb5303f0334e60.tar.gz
dexon-consensus-36d4d760f1d5a108af86094eefbb5303f0334e60.tar.bz2
dexon-consensus-36d4d760f1d5a108af86094eefbb5303f0334e60.tar.lz
dexon-consensus-36d4d760f1d5a108af86094eefbb5303f0334e60.tar.xz
dexon-consensus-36d4d760f1d5a108af86094eefbb5303f0334e60.tar.zst
dexon-consensus-36d4d760f1d5a108af86094eefbb5303f0334e60.zip
core: remove useless branching code (#403)
Diffstat (limited to 'core')
-rw-r--r--core/agreement-state.go2
-rw-r--r--core/agreement.go17
-rw-r--r--core/consensus.go8
-rw-r--r--core/db/level-db.go43
-rw-r--r--core/lattice-data.go5
-rw-r--r--core/lattice.go29
-rw-r--r--core/leader-selector.go5
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) {