fix errors and refactoring

This commit is contained in:
Jaynti Kanani 2019-11-05 12:12:10 +05:30
parent 0d86eed2c3
commit dc16740906
No known key found for this signature in database
GPG key ID: 4396982C976BAE5E
3 changed files with 9 additions and 84 deletions

View file

@ -206,16 +206,9 @@ func CalcDifficulty(snap *Snapshot, signer common.Address, epoch uint64) *big.In
// CalcProducerDelay is the producer delay algorithm based on block time.
func CalcProducerDelay(snap *Snapshot, signer common.Address, period uint64, epoch uint64, producerDelay uint64) uint64 {
// lastSigner := snap.Recents[snap.Number]
// proposer := snap.ValidatorSet.GetProposer()
// if block is epoch start block, proposer will be inturn signer
if (snap.Number+1)%epoch == 0 {
return producerDelay
// if block is not epoch block, last block signer will be inturn
// } else if bytes.Compare(lastSigner.Bytes(), signer.Bytes()) != 0 {
// return producerDelay
}
return period
@ -473,7 +466,10 @@ func (c *Bor) snapshot(chain consensus.ChainReader, number uint64, hash common.H
hash := checkpoint.Hash()
// get validators and current span
validators, _ := c.GetCurrentValidators(number, number+1)
validators, err := c.GetCurrentValidators(number, number+1)
if err != nil {
return nil, err
}
// new snap shot
snap = newSnapshot(c.config, c.signatures, number, hash, validators, c.ethAPI)
@ -672,13 +668,13 @@ func (c *Bor) Finalize(chain consensus.ChainReader, header *types.Header, state
// check and commit span
if err := c.checkAndCommitSpan(state, header, cx); err != nil {
fmt.Println("Error while committing span", err)
// return nil, err
return
}
// commit statees
if err := c.CommitStates(state, header, cx); err != nil {
fmt.Println("Error while committing states", err)
// return nil, err
return
}
}
@ -698,7 +694,7 @@ func (c *Bor) FinalizeAndAssemble(chain consensus.ChainReader, header *types.Hea
err := c.checkAndCommitSpan(state, header, cx)
if err != nil {
fmt.Println("Error while committing span", err)
// return nil, err
return nil, err
}
// commit statees
@ -990,7 +986,7 @@ func (c *Bor) checkAndCommitSpan(
header *types.Header,
chain core.ChainContext,
) error {
var pending bool = false
pending := false
var span *Span = nil
var wg sync.WaitGroup
wg.Add(1)
@ -1007,8 +1003,6 @@ func (c *Bor) checkAndCommitSpan(
wg.Wait()
fmt.Println("Span", span.ID, span.StartBlock, span.EndBlock, "number", header.Number, "needToCommitSpan", c.needToCommitSpan(span, header))
// commit span if there is new span pending or span is ending or end block is not set
if pending || c.needToCommitSpan(span, header) {
err := c.commitSpan(span, state, header, chain)

View file

@ -118,50 +118,6 @@ func (s *Snapshot) copy() *Snapshot {
return cpy
}
// // validVote returns whether it makes sense to cast the specified vote in the
// // given snapshot context (e.g. don't try to add an already authorized signer).
// func (s *Snapshot) validVote(address common.Address, authorize bool) bool {
// _, signer := s.Signers[address]
// return (signer && !authorize) || (!signer && authorize)
// }
// // cast adds a new vote into the tally.
// func (s *Snapshot) cast(address common.Address, authorize bool) bool {
// // Ensure the vote is meaningful
// if !s.validVote(address, authorize) {
// return false
// }
// // Cast the vote into an existing or new tally
// if old, ok := s.Tally[address]; ok {
// old.Votes++
// s.Tally[address] = old
// } else {
// s.Tally[address] = Tally{Authorize: authorize, Votes: 1}
// }
// return true
// }
// // uncast removes a previously cast vote from the tally.
// func (s *Snapshot) uncast(address common.Address, authorize bool) bool {
// // If there's no tally, it's a dangling vote, just drop
// tally, ok := s.Tally[address]
// if !ok {
// return false
// }
// // Ensure we only revert counted votes
// if tally.Authorize != authorize {
// return false
// }
// // Otherwise revert the vote
// if tally.Votes > 1 {
// tally.Votes--
// s.Tally[address] = tally
// } else {
// delete(s.Tally, address)
// }
// return true
// }
func (s *Snapshot) apply(headers []*types.Header) (*Snapshot, error) {
// Allow passing in no headers for cleaner code
if len(headers) == 0 {
@ -220,9 +176,6 @@ func (s *Snapshot) apply(headers []*types.Header) (*Snapshot, error) {
validators := snap.ValidatorSet.Validators
// proposer will be the last signer if block is not epoch block
proposer := snap.ValidatorSet.GetProposer().Address
// if number%s.config.Sprint != 0 {
// proposer = snap.Recents[number-1]
// }
proposerIndex, _ := snap.ValidatorSet.GetByAddress(proposer)
signerIndex, _ := snap.ValidatorSet.GetByAddress(signer)
limit := len(validators) - (len(validators)/2 + 1)
@ -268,11 +221,6 @@ func (s *Snapshot) inturn(number uint64, signer common.Address, epoch uint64) ui
proposer := s.ValidatorSet.GetProposer().Address
totalValidators := len(validators)
// proposer will be the last signer if block is not epoch block
// proposer := snap.ValidatorSet.GetProposer().Address
// if number%epoch != 0 {
// proposer = snap.Recents[number-1]
// }
proposerIndex, _ := s.ValidatorSet.GetByAddress(proposer)
signerIndex, _ := s.ValidatorSet.GetByAddress(signer)
@ -283,21 +231,4 @@ func (s *Snapshot) inturn(number uint64, signer common.Address, epoch uint64) ui
}
return uint64(totalValidators - (tempIndex - proposerIndex))
// signers, offset := s.signers(), 0
// for offset < len(signers) && signers[offset] != signer {
// offset++
// }
// return ((number / producerPeriod) % uint64(len(signers))) == uint64(offset)
// // if block is epoch start block, proposer will be inturn signer
// if s.Number%epoch == 0 {
// if bytes.Compare(proposer.Address.Bytes(), signer.Bytes()) == 0 {
// return true
// }
// // if block is not epoch block, last block signer will be inturn
// } else if bytes.Compare(lastSigner.Bytes(), signer.Bytes()) == 0 {
// return false
// }
// return false
}

View file

@ -7,7 +7,7 @@ type Span struct {
EndBlock uint64 `json:"end_block" yaml:"end_block"`
}
// HeimdallSpan represents
// HeimdallSpan represents span from heimdall APIs
type HeimdallSpan struct {
Span
ValidatorSet ValidatorSet `json:"validator_set" yaml:"validator_set"`