OSDN Git Service

optimized code
authormars <mars@bytom.io>
Thu, 18 Jul 2019 12:11:45 +0000 (20:11 +0800)
committermars <mars@bytom.io>
Thu, 18 Jul 2019 12:11:45 +0000 (20:11 +0800)
toolbar/reward/reward/vote_reward.go
toolbar/reward/synchron/block_keeper.go

index b880904..d24398a 100644 (file)
@@ -63,9 +63,8 @@ func (v *Vote) Start() {
        v.countReward()
 
        // send transactions
-       if err := v.sendRewardTransaction(); err != nil {
-               panic(err)
-       }
+       v.sendRewardTransaction()
+
 }
 
 func (v *Vote) getCoinbaseReward() error {
@@ -179,7 +178,7 @@ func (v *Vote) countReward() {
        }
 }
 
-func (v *Vote) sendRewardTransaction() error {
+func (v *Vote) sendRewardTransaction() {
        for _, node := range v.nodes {
                coinbaseReward, ok := v.coinBaseReward[node.XPub]
                if !ok {
@@ -190,13 +189,13 @@ func (v *Vote) sendRewardTransaction() error {
                if voterRewards, ok := v.voterRewards[node.XPub]; ok {
                        txID, err := v.sendReward(coinbaseReward.totalReward, node, voterRewards)
                        if err != nil {
-                               return err
+                               log.WithFields(log.Fields{"error": err, "node": node}).Error("send reward transaction")
+                               continue
                        }
                        log.Info("tx_id: ", txID)
                }
        }
        close(v.quit)
-       return nil
 }
 
 func (v *Vote) sendReward(coinbaseReward uint64, node config.VoteRewardConfig, voterReward *voterReward) (string, error) {
index 5a5505c..6de3f37 100644 (file)
@@ -6,6 +6,7 @@ import (
 
        "github.com/jinzhu/gorm"
        log "github.com/sirupsen/logrus"
+       cmn "github.com/tendermint/tmlibs/common"
 
        "github.com/vapor/errors"
        "github.com/vapor/protocol/bc"
@@ -35,17 +36,17 @@ func NewChainKeeper(db *gorm.DB, cfg *config.Config) *ChainKeeper {
                if err == gorm.ErrRecordNotFound {
                        blockStr, _, err := keeper.node.GetBlockByHeight(0)
                        if err != nil {
-                               panic(err)
+                               cmn.Exit(cmn.Fmt("Failed to get genenis block:[%s]", err.Error()))
                        }
                        block := &types.Block{}
                        if err := block.UnmarshalText([]byte(blockStr)); err != nil {
-                               panic(err)
+                               cmn.Exit(cmn.Fmt("unmarshal block:[%s]", err.Error()))
                        }
                        if err := keeper.insertBlockState(db, block); err != nil {
-                               panic(err)
+                               cmn.Exit(cmn.Fmt("Failed to insert blockState:[%s]", err.Error()))
                        }
                } else {
-                       panic(err)
+                       cmn.Exit(cmn.Fmt("Failed to get blockState:[%s]", err.Error()))
                }
        }