Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
5c53a5be
Commit
5c53a5be
authored
Jun 20, 2017
by
mark.lin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
consensus/clique: fix typo and don't add snapshot into recents again
parent
431cf2a1
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
8 deletions
+7
-8
clique.go
consensus/clique/clique.go
+7
-8
No files found.
consensus/clique/clique.go
View file @
5c53a5be
...
...
@@ -99,10 +99,10 @@ var (
// their extra-data fields.
errExtraSigners
=
errors
.
New
(
"non-checkpoint block contains extra signer list"
)
//
d
rrInvalidCheckpointSigners is returned if a checkpoint block contains an
//
e
rrInvalidCheckpointSigners is returned if a checkpoint block contains an
// invalid list of signers (i.e. non divisible by 20 bytes, or not the correct
// ones).
d
rrInvalidCheckpointSigners
=
errors
.
New
(
"invalid signer list on checkpoint block"
)
e
rrInvalidCheckpointSigners
=
errors
.
New
(
"invalid signer list on checkpoint block"
)
// errInvalidMixDigest is returned if a block's mix digest is non-zero.
errInvalidMixDigest
=
errors
.
New
(
"non-zero mix digest"
)
...
...
@@ -297,7 +297,7 @@ func (c *Clique) verifyHeader(chain consensus.ChainReader, header *types.Header,
return
errExtraSigners
}
if
checkpoint
&&
signersBytes
%
common
.
AddressLength
!=
0
{
return
d
rrInvalidCheckpointSigners
return
e
rrInvalidCheckpointSigners
}
// Ensure that the mix digest is zero as we don't have fork protection currently
if
header
.
MixDigest
!=
(
common
.
Hash
{})
{
...
...
@@ -353,7 +353,7 @@ func (c *Clique) verifyCascadingFields(chain consensus.ChainReader, header *type
}
extraSuffix
:=
len
(
header
.
Extra
)
-
extraSeal
if
!
bytes
.
Equal
(
header
.
Extra
[
extraVanity
:
extraSuffix
],
signers
)
{
return
d
rrInvalidCheckpointSigners
return
e
rrInvalidCheckpointSigners
}
}
// All basic checks passed, verify the seal and return
...
...
@@ -467,7 +467,6 @@ func (c *Clique) verifySeal(chain consensus.ChainReader, header *types.Header, p
if
err
!=
nil
{
return
err
}
c
.
recents
.
Add
(
snap
.
Hash
,
snap
)
// Resolve the authorization key and check against signers
signer
,
err
:=
ecrecover
(
header
,
c
.
signatures
)
...
...
@@ -479,13 +478,13 @@ func (c *Clique) verifySeal(chain consensus.ChainReader, header *types.Header, p
}
for
seen
,
recent
:=
range
snap
.
Recents
{
if
recent
==
signer
{
// Signer is among recents, only fail if the current block doe
ns
't shift it out
// Signer is among recents, only fail if the current block doe
sn
't shift it out
if
limit
:=
uint64
(
len
(
snap
.
Signers
)
/
2
+
1
);
seen
>
number
-
limit
{
return
errUnauthorized
}
}
}
// Ensure that the difficulty correspon
t
s to the turn-ness of the signer
// Ensure that the difficulty correspon
d
s to the turn-ness of the signer
inturn
:=
snap
.
inturn
(
header
.
Number
.
Uint64
(),
signer
)
if
inturn
&&
header
.
Difficulty
.
Cmp
(
diffInTurn
)
!=
0
{
return
errInvalidDifficulty
...
...
@@ -604,7 +603,7 @@ func (c *Clique) Seal(chain consensus.ChainReader, block *types.Block, stop <-ch
// If we're amongst the recent signers, wait for the next block
for
seen
,
recent
:=
range
snap
.
Recents
{
if
recent
==
signer
{
// Signer is among recents, only wait if the current block doe
ns
't shift it out
// Signer is among recents, only wait if the current block doe
sn
't shift it out
if
limit
:=
uint64
(
len
(
snap
.
Signers
)
/
2
+
1
);
number
<
limit
||
seen
>
number
-
limit
{
log
.
Info
(
"Signed recently, must wait for others"
)
<-
stop
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment