consensus/clique: unexport calcDifficulty and improve comment (#21619)

This commit is contained in:
mr_franklin 2020-10-13 17:00:42 +08:00 committed by GitHub
parent c37e68e7c1
commit 94d1f5888a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -520,7 +520,7 @@ func (c *Clique) Prepare(chain consensus.ChainHeaderReader, header *types.Header
c.lock.RUnlock() c.lock.RUnlock()
} }
// Set the correct difficulty // Set the correct difficulty
header.Difficulty = CalcDifficulty(snap, c.signer) header.Difficulty = calcDifficulty(snap, c.signer)
// Ensure the extra data has all its components // Ensure the extra data has all its components
if len(header.Extra) < extraVanity { if len(header.Extra) < extraVanity {
@ -652,20 +652,18 @@ func (c *Clique) Seal(chain consensus.ChainHeaderReader, block *types.Block, res
} }
// CalcDifficulty is the difficulty adjustment algorithm. It returns the difficulty // CalcDifficulty is the difficulty adjustment algorithm. It returns the difficulty
// that a new block should have based on the previous blocks in the chain and the // that a new block should have:
// current signer. // * DIFF_NOTURN(2) if BLOCK_NUMBER % SIGNER_COUNT != SIGNER_INDEX
// * DIFF_INTURN(1) if BLOCK_NUMBER % SIGNER_COUNT == SIGNER_INDEX
func (c *Clique) CalcDifficulty(chain consensus.ChainHeaderReader, time uint64, parent *types.Header) *big.Int { func (c *Clique) CalcDifficulty(chain consensus.ChainHeaderReader, time uint64, parent *types.Header) *big.Int {
snap, err := c.snapshot(chain, parent.Number.Uint64(), parent.Hash(), nil) snap, err := c.snapshot(chain, parent.Number.Uint64(), parent.Hash(), nil)
if err != nil { if err != nil {
return nil return nil
} }
return CalcDifficulty(snap, c.signer) return calcDifficulty(snap, c.signer)
} }
// CalcDifficulty is the difficulty adjustment algorithm. It returns the difficulty func calcDifficulty(snap *Snapshot, signer common.Address) *big.Int {
// that a new block should have based on the previous blocks in the chain and the
// current signer.
func CalcDifficulty(snap *Snapshot, signer common.Address) *big.Int {
if snap.inturn(snap.Number+1, signer) { if snap.inturn(snap.Number+1, signer) {
return new(big.Int).Set(diffInTurn) return new(big.Int).Set(diffInTurn)
} }