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
ee0a1bec
Commit
ee0a1bec
authored
Mar 03, 2015
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
GasLimit check updated
parent
c74c07ee
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
17 additions
and
6 deletions
+17
-6
block_processor.go
core/block_processor.go
+8
-6
statedb.go
state/statedb.go
+4
-0
gh_test.go
tests/vm/gh_test.go
+5
-0
No files found.
core/block_processor.go
View file @
ee0a1bec
...
...
@@ -204,9 +204,6 @@ func (sm *BlockProcessor) processWithParent(block, parent *types.Block) (td *big
// Tre receipt Trie's root (R = (Tr [[H1, R1], ... [Hn, R1]]))
receiptSha
:=
types
.
DeriveSha
(
receipts
)
if
bytes
.
Compare
(
receiptSha
,
header
.
ReceiptHash
)
!=
0
{
fmt
.
Println
(
"receipts"
,
receipts
)
state
.
Sync
()
chainlogger
.
Infof
(
"%s
\n
"
,
state
.
Dump
())
err
=
fmt
.
Errorf
(
"validating receipt root. received=%x got=%x"
,
header
.
ReceiptHash
,
receiptSha
)
return
}
...
...
@@ -249,9 +246,14 @@ func (sm *BlockProcessor) ValidateBlock(block, parent *types.Block) error {
return
fmt
.
Errorf
(
"Difficulty check failed for block %v, %v"
,
block
.
Header
()
.
Difficulty
,
expd
)
}
expl
:=
CalcGasLimit
(
parent
,
block
)
if
expl
.
Cmp
(
block
.
Header
()
.
GasLimit
)
!=
0
{
return
fmt
.
Errorf
(
"GasLimit check failed for block %v, %v"
,
block
.
Header
()
.
GasLimit
,
expl
)
//expl := CalcGasLimit(parent, block)
//if expl.Cmp(block.Header().GasLimit) != 0 {
// block.gasLimit - parent.gasLimit <= parent.gasLimit / 1024
a
:=
new
(
big
.
Int
)
.
Sub
(
block
.
Header
()
.
GasLimit
,
parent
.
Header
()
.
GasLimit
)
b
:=
new
(
big
.
Int
)
.
Div
(
parent
.
Header
()
.
GasLimit
,
big
.
NewInt
(
1024
))
if
a
.
Cmp
(
b
)
>
0
{
return
fmt
.
Errorf
(
"GasLimit check failed for block %v"
,
block
.
Header
()
.
GasLimit
)
}
if
block
.
Time
()
<
parent
.
Time
()
{
...
...
state/statedb.go
View file @
ee0a1bec
...
...
@@ -239,6 +239,10 @@ func (s *StateDB) Root() []byte {
return
s
.
trie
.
Root
()
}
func
(
s
*
StateDB
)
Trie
()
*
trie
.
SecureTrie
{
return
s
.
trie
}
// Resets the trie and all siblings
func
(
s
*
StateDB
)
Reset
()
{
s
.
trie
.
Reset
()
...
...
tests/vm/gh_test.go
View file @
ee0a1bec
...
...
@@ -79,6 +79,10 @@ func RunVmTest(p string, t *testing.T) {
helper
.
CreateFileTests
(
t
,
p
,
&
tests
)
for
name
,
test
:=
range
tests
{
helper
.
Logger
.
SetLogLevel
(
4
)
if
name
!=
"CallEcrecover0_overlappingInputOutput"
{
continue
}
db
,
_
:=
ethdb
.
NewMemDatabase
()
statedb
:=
state
.
New
(
nil
,
db
)
for
addr
,
account
:=
range
test
.
Pre
{
...
...
@@ -177,6 +181,7 @@ func RunVmTest(p string, t *testing.T) {
*/
}
}
//statedb.Trie().PrintRoot()
}
logger
.
Flush
()
}
...
...
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