fixed type differences and undefined vars (#16)

* fixed type differences and undefined vars

* resolved changes
This commit is contained in:
Dustin Brickwood 2018-09-08 16:40:58 +02:00 committed by David Ansermino
parent 69f2029dbe
commit d7c933abf4
3 changed files with 44 additions and 51 deletions

View file

@ -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.

View file

@ -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 {

View file

@ -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)
}