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
e4aa011d
Commit
e4aa011d
authored
May 14, 2015
by
Jeffrey Wilcke
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #970 from ethereum/vitalik_quick_test
Created separate family and ancestors environment objects
parents
bc837619
bdec8c3e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
2 deletions
+8
-2
worker.go
miner/worker.go
+8
-2
No files found.
miner/worker.go
View file @
e4aa011d
...
...
@@ -45,7 +45,8 @@ type environment struct {
state
*
state
.
StateDB
// apply state changes here
coinbase
*
state
.
StateObject
// the miner's account
block
*
types
.
Block
// the new block
family
*
set
.
Set
// family set (used for checking uncles)
ancestors
*
set
.
Set
// ancestor set (used for checking uncle parent validity)
family
*
set
.
Set
// family set (used for checking uncle invalidity)
uncles
*
set
.
Set
// uncle set
remove
*
set
.
Set
// tx which will be removed
tcount
int
// tx count in cycle
...
...
@@ -62,6 +63,7 @@ func env(block *types.Block, eth core.Backend) *environment {
totalUsedGas
:
new
(
big
.
Int
),
state
:
state
,
block
:
block
,
ancestors
:
set
.
New
(),
family
:
set
.
New
(),
uncles
:
set
.
New
(),
coinbase
:
state
.
GetOrNewStateObject
(
block
.
Coinbase
()),
...
...
@@ -265,7 +267,11 @@ func (self *worker) makeCurrent() {
current
:=
env
(
block
,
self
.
eth
)
for
_
,
ancestor
:=
range
self
.
chain
.
GetAncestors
(
block
,
7
)
{
for
_
,
uncle
:=
range
ancestor
.
Uncles
()
{
current
.
family
.
Add
(
uncle
.
Hash
())
}
current
.
family
.
Add
(
ancestor
.
Hash
())
current
.
ancestors
.
Add
(
ancestor
.
Hash
())
}
accounts
,
_
:=
self
.
eth
.
AccountManager
()
.
Accounts
()
// Keep track of transactions which return errors so they can be removed
...
...
@@ -363,7 +369,7 @@ func (self *worker) commitUncle(uncle *types.Header) error {
}
self
.
current
.
uncles
.
Add
(
uncle
.
Hash
())
if
!
self
.
current
.
family
.
Has
(
uncle
.
ParentHash
)
{
if
!
self
.
current
.
ancestors
.
Has
(
uncle
.
ParentHash
)
{
return
core
.
UncleError
(
fmt
.
Sprintf
(
"Uncle's parent unknown (%x)"
,
uncle
.
ParentHash
[
0
:
4
]))
}
...
...
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