mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 10:22:23 +00:00
fixed type differences and undefined vars (#16)
* fixed type differences and undefined vars * resolved changes
This commit is contained in:
parent
69f2029dbe
commit
d7c933abf4
3 changed files with 44 additions and 51 deletions
|
|
@ -20,13 +20,11 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
"math/big"
|
"math/big"
|
||||||
"math/rand"
|
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/accounts"
|
"github.com/ethereum/go-ethereum/accounts"
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
"github.com/ethereum/go-ethereum/common/hexutil"
|
|
||||||
"github.com/ethereum/go-ethereum/consensus"
|
"github.com/ethereum/go-ethereum/consensus"
|
||||||
"github.com/ethereum/go-ethereum/consensus/misc"
|
"github.com/ethereum/go-ethereum/consensus/misc"
|
||||||
"github.com/ethereum/go-ethereum/core/state"
|
"github.com/ethereum/go-ethereum/core/state"
|
||||||
|
|
@ -297,7 +295,7 @@ func (a *Aura) verifyHeader(chain consensus.ChainReader, header *types.Header, p
|
||||||
}
|
}
|
||||||
// Ensure that the block's difficulty is correct (it should be constant)
|
// Ensure that the block's difficulty is correct (it should be constant)
|
||||||
if number > 0 {
|
if number > 0 {
|
||||||
if header.Difficulty != chain.Config().Difficulty {
|
if header.Difficulty != chain.Config().Aura.Difficulty {
|
||||||
return errInvalidDifficulty
|
return errInvalidDifficulty
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -478,13 +476,13 @@ func (a *Aura) verifySeal(chain consensus.ChainReader, header *types.Header, par
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Ensure that the difficulty corresponds to the turn-ness of the signer
|
// Ensure that the difficulty corresponds to the turn-ness of the signer
|
||||||
inturn := snap.inturn(header.Number.Uint64(), signer)
|
//inturn := snap.inturn(header.Number.Uint64(), signer)
|
||||||
if inturn && header.Difficulty.Cmp(diffInTurn) != 0 {
|
//if inturn && header.Difficulty.Cmp(diffInTurn) != 0 {
|
||||||
return errInvalidDifficulty
|
// return errInvalidDifficulty
|
||||||
}
|
//}
|
||||||
if !inturn && header.Difficulty.Cmp(diffNoTurn) != 0 {
|
//if !inturn && header.Difficulty.Cmp(diffNoTurn) != 0 {
|
||||||
return errInvalidDifficulty
|
// return errInvalidDifficulty
|
||||||
}
|
//}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -512,18 +510,18 @@ func (a *Aura) Prepare(chain consensus.ChainReader, header *types.Header) error
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// If there's pending proposals, cast a vote on them
|
// If there's pending proposals, cast a vote on them
|
||||||
if len(addresses) > 0 {
|
//if len(addresses) > 0 {
|
||||||
header.Coinbase = addresses[rand.Intn(len(addresses))]
|
// header.Coinbase = addresses[rand.Intn(len(addresses))]
|
||||||
if a.proposals[header.Coinbase] {
|
// if a.proposals[header.Coinbase] {
|
||||||
copy(header.Nonce[:], nonceAuthVote)
|
// copy(header.Nonce[:], nonceAuthVote)
|
||||||
} else {
|
// } else {
|
||||||
copy(header.Nonce[:], nonceDropVote)
|
// copy(header.Nonce[:], nonceDropVote)
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
a.lock.RUnlock()
|
a.lock.RUnlock()
|
||||||
}
|
}
|
||||||
// Set the correct difficulty
|
// Set the correct difficulty
|
||||||
header.Difficulty = CalcDifficulty(snap, a.signer)
|
header.Difficulty = chain.Config().Aura.Difficulty
|
||||||
|
|
||||||
// Ensure the extra data has all it's components
|
// Ensure the extra data has all it's components
|
||||||
if len(header.Extra) < extraVanity {
|
if len(header.Extra) < extraVanity {
|
||||||
|
|
@ -613,13 +611,13 @@ func (a *Aura) Seal(chain consensus.ChainReader, block *types.Block, results cha
|
||||||
}
|
}
|
||||||
// Sweet, the protocol permits us to sign the block, wait for our time
|
// Sweet, the protocol permits us to sign the block, wait for our time
|
||||||
delay := time.Unix(header.Time.Int64(), 0).Sub(time.Now()) // nolint: gosimple
|
delay := time.Unix(header.Time.Int64(), 0).Sub(time.Now()) // nolint: gosimple
|
||||||
if header.Difficulty.Cmp(diffNoTurn) == 0 {
|
//if header.Difficulty.Cmp(diffNoTurn) == 0 {
|
||||||
// It's not our turn explicitly to sign, delay it a bit
|
// // It's not our turn explicitly to sign, delay it a bit
|
||||||
wiggle := time.Duration(len(snap.Signers)/2+1) * wiggleTime
|
// wiggle := time.Duration(len(snap.Signers)/2+1) * wiggleTime
|
||||||
delay += time.Duration(rand.Int63n(int64(wiggle)))
|
// delay += time.Duration(rand.Int63n(int64(wiggle)))
|
||||||
|
//
|
||||||
log.Trace("Out-of-turn signing requested", "wiggle", common.PrettyDuration(wiggle))
|
// log.Trace("Out-of-turn signing requested", "wiggle", common.PrettyDuration(wiggle))
|
||||||
}
|
//}
|
||||||
// Sign all the things!
|
// Sign all the things!
|
||||||
sighash, err := signFn(accounts.Account{Address: signer}, sigHash(header).Bytes())
|
sighash, err := signFn(accounts.Account{Address: signer}, sigHash(header).Bytes())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -647,7 +645,7 @@ func (a *Aura) Seal(chain consensus.ChainReader, block *types.Block, results cha
|
||||||
|
|
||||||
// Returns difficulty constant from config
|
// Returns difficulty constant from config
|
||||||
func (a *Aura) CalcDifficulty(chain consensus.ChainReader, time uint64, parent *types.Header) *big.Int {
|
func (a *Aura) CalcDifficulty(chain consensus.ChainReader, time uint64, parent *types.Header) *big.Int {
|
||||||
return new(big.Int).SetUint64(chain.Config().Aura.Difficulty)
|
return chain.Config().Aura.Difficulty
|
||||||
}
|
}
|
||||||
|
|
||||||
// SealHash returns the hash of a block prior to it being sealed.
|
// SealHash returns the hash of a block prior to it being sealed.
|
||||||
|
|
|
||||||
|
|
@ -235,23 +235,23 @@ func (s *Snapshot) apply(headers []*types.Header) (*Snapshot, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Tally up the new vote from the signer
|
// Tally up the new vote from the signer
|
||||||
var authorize bool
|
//var authorize bool
|
||||||
switch {
|
//switch {
|
||||||
case bytes.Equal(header.Nonce[:], nonceAuthVote):
|
//case bytes.Equal(header.Nonce[:], nonceAuthVote):
|
||||||
authorize = true
|
// authorize = true
|
||||||
case bytes.Equal(header.Nonce[:], nonceDropVote):
|
//case bytes.Equal(header.Nonce[:], nonceDropVote):
|
||||||
authorize = false
|
// authorize = false
|
||||||
default:
|
//default:
|
||||||
return nil, errInvalidVote
|
// return nil, errInvalidVote
|
||||||
}
|
//}
|
||||||
if snap.cast(header.Coinbase, authorize) {
|
//if snap.cast(header.Coinbase, authorize) {
|
||||||
snap.Votes = append(snap.Votes, &Vote{
|
// snap.Votes = append(snap.Votes, &Vote{
|
||||||
Signer: signer,
|
// Signer: signer,
|
||||||
Block: number,
|
// Block: number,
|
||||||
Address: header.Coinbase,
|
// Address: header.Coinbase,
|
||||||
Authorize: authorize,
|
// Authorize: authorize,
|
||||||
})
|
// })
|
||||||
}
|
//}
|
||||||
// If the vote passed, update the list of signers
|
// If the vote passed, update the list of signers
|
||||||
if tally := snap.Tally[header.Coinbase]; tally.Votes > len(snap.Signers)/2 {
|
if tally := snap.Tally[header.Coinbase]; tally.Votes > len(snap.Signers)/2 {
|
||||||
if tally.Authorize {
|
if tally.Authorize {
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,7 @@ var (
|
||||||
Authorities: []string{
|
Authorities: []string{
|
||||||
"0x540a9fe3d2381016dec8ffba7235c6fb00b0f942",
|
"0x540a9fe3d2381016dec8ffba7235c6fb00b0f942",
|
||||||
},
|
},
|
||||||
Difficulty: 131072,
|
Difficulty: big.NewInt(131072),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -167,7 +167,7 @@ type AuraConfig struct {
|
||||||
Period uint64 `json:"period"` // Number of seconds between blocks to enforce
|
Period uint64 `json:"period"` // Number of seconds between blocks to enforce
|
||||||
Epoch uint64 `json:"epoch"` // Epoch length to reset votes and checkpoint
|
Epoch uint64 `json:"epoch"` // Epoch length to reset votes and checkpoint
|
||||||
Authorities []string `json:"authorities"` // list of addresses of authorities
|
Authorities []string `json:"authorities"` // list of addresses of authorities
|
||||||
Difficulty uint64 `json:"difficulty"` // Constant block difficulty
|
Difficulty *big.Int `json:"difficulty"` // Constant block difficulty
|
||||||
}
|
}
|
||||||
|
|
||||||
// String implements the stringer interface, returning the consensus engine details.
|
// String implements the stringer interface, returning the consensus engine details.
|
||||||
|
|
@ -384,8 +384,3 @@ func (c *ChainConfig) Rules(num *big.Int) Rules {
|
||||||
}
|
}
|
||||||
return Rules{ChainID: new(big.Int).Set(chainID), IsHomestead: c.IsHomestead(num), IsEIP150: c.IsEIP150(num), IsEIP155: c.IsEIP155(num), IsEIP158: c.IsEIP158(num), IsByzantium: c.IsByzantium(num)}
|
return Rules{ChainID: new(big.Int).Set(chainID), IsHomestead: c.IsHomestead(num), IsEIP150: c.IsEIP150(num), IsEIP155: c.IsEIP155(num), IsEIP158: c.IsEIP158(num), IsByzantium: c.IsByzantium(num)}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return diffulty rate for Aura concensus
|
|
||||||
func (c *AuraConfig) GetDifficulty() (num *big.Int) {
|
|
||||||
return new(big.Int).SetUint64(c.Difficulty)
|
|
||||||
}
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue