• R/O
  • HTTP
  • SSH
  • HTTPS

vapor: 提交

Golang implemented sidechain for Bytom


Commit MetaInfo

修订版1b35511b58dac0acdc5ca3f4f539a00d73a42430 (tree)
时间2019-07-17 15:01:16
作者oysheng <33340252+oysheng@user...>
CommiterPaladz

Log Message

delete first tx vote amount restrict (#301)

更改概述

差异

--- a/proposal/proposal.go
+++ b/proposal/proposal.go
@@ -108,11 +108,6 @@ func NewBlockTemplate(c *protocol.Chain, txPool *protocol.TxPool, accountManager
108108 txs := txPool.GetTransactions()
109109 sort.Sort(byTime(txs))
110110
111- consensusResult, err := c.GetConsensusResultByHash(&preBlockHash)
112- if err != nil {
113- return nil, err
114- }
115-
116111 entriesTxs := []*bc.Tx{}
117112 for _, txDesc := range txs {
118113 entriesTxs = append(entriesTxs, txDesc.Tx.Tx)
@@ -147,11 +142,6 @@ func NewBlockTemplate(c *protocol.Chain, txPool *protocol.TxPool, accountManager
147142 continue
148143 }
149144
150- if err := consensusResult.ApplyTransaction(txDesc.Tx); err != nil {
151- blkGenSkipTxForErr(txPool, &tx.ID, err)
152- continue
153- }
154-
155145 if err := txStatus.SetStatus(len(b.Transactions), gasOnlyTx); err != nil {
156146 return nil, err
157147 }
@@ -171,6 +161,11 @@ func NewBlockTemplate(c *protocol.Chain, txPool *protocol.TxPool, accountManager
171161 return nil, errors.Wrap(err, "fail on createCoinbaseTx")
172162 }
173163
164+ consensusResult, err := c.GetConsensusResultByHash(&preBlockHash)
165+ if err != nil {
166+ return nil, err
167+ }
168+
174169 if err := consensusResult.AttachCoinbaseReward(b); err != nil {
175170 return nil, err
176171 }
--- a/protocol/state/consensus_result.go
+++ b/protocol/state/consensus_result.go
@@ -145,15 +145,7 @@ func (c *ConsensusResult) ApplyTransaction(tx *types.Tx) error {
145145 continue
146146 }
147147
148- if voteOutput.Amount < consensus.ActiveNetParams.MinVoteOutputAmount {
149- return errors.New("invalid vote transaction with vote amount less than MinVoteOutputAmount")
150- }
151-
152148 pubkey := hex.EncodeToString(voteOutput.Vote)
153- if _, ok := c.NumOfVote[pubkey]; !ok && voteOutput.Amount < consensus.ActiveNetParams.MinConsensusNodeVoteNum {
154- return errors.New("invalid vote transaction with first vote amount less than MinConsensusNodeVoteNum")
155- }
156-
157149 if c.NumOfVote[pubkey], ok = checked.AddUint64(c.NumOfVote[pubkey], voteOutput.Amount); !ok {
158150 return checked.ErrOverflow
159151 }
--- a/protocol/tx.go
+++ b/protocol/tx.go
@@ -3,7 +3,6 @@ package protocol
33 import (
44 log "github.com/sirupsen/logrus"
55
6- "github.com/vapor/errors"
76 "github.com/vapor/protocol/bc"
87 "github.com/vapor/protocol/bc/types"
98 "github.com/vapor/protocol/state"
@@ -45,16 +44,6 @@ func (c *Chain) validateTx(tx *types.Tx) (bool, error) {
4544 }
4645
4746 bh := c.BestBlockHeader()
48- blockHash := bh.Hash()
49- consensusResult, err := c.GetConsensusResultByHash(&blockHash)
50- if err != nil {
51- return false, err
52- }
53-
54- if err := consensusResult.ApplyTransaction(tx); err != nil {
55- return false, errors.Wrap(validation.ErrVoteOutputAmount, err)
56- }
57-
5847 gasStatus, err := validation.ValidateTx(tx.Tx, types.MapBlock(&types.Block{BlockHeader: *bh}))
5948 if !gasStatus.GasValid {
6049 c.txPool.AddErrCache(&tx.ID, err)
--- a/protocol/validation/tx.go
+++ b/protocol/validation/tx.go
@@ -245,6 +245,10 @@ func checkValid(vs *validationState, e bc.Entry) (err error) {
245245 return errors.Wrap(err, "checking vote output source")
246246 }
247247
248+ if e.Source.Value.Amount < consensus.ActiveNetParams.MinVoteOutputAmount {
249+ return ErrVoteOutputAmount
250+ }
251+
248252 case *bc.Retirement:
249253 vs2 := *vs
250254 vs2.sourcePos = 0
Show on old repository browser