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
30fa30bd
Commit
30fa30bd
authored
Feb 03, 2015
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Docs & old code removed
parent
faa54e59
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
25 deletions
+28
-25
block_processor.go
core/block_processor.go
+1
-1
genesis.go
core/genesis.go
+0
-1
state_transition.go
core/state_transition.go
+25
-21
block_pool.go
eth/block_pool.go
+2
-2
No files found.
core/block_processor.go
View file @
30fa30bd
...
...
@@ -219,7 +219,7 @@ func (sm *BlockProcessor) ProcessWithParent(block, parent *types.Block) (td *big
// Calculate the td for this block
td
=
CalculateTD
(
block
,
parent
)
// Sync the current block's state to the database
and cancelling out the deferred Undo
// Sync the current block's state to the database
state
.
Sync
()
// Set the block hashes for the current messages
state
.
Manifest
()
.
SetHash
(
block
.
Hash
())
...
...
core/genesis.go
View file @
30fa30bd
...
...
@@ -32,7 +32,6 @@ func GenesisBlock(db ethutil.Database) *types.Block {
genesis
.
SetReceipts
(
types
.
Receipts
{})
statedb
:=
state
.
New
(
genesis
.
Root
(),
db
)
//statedb := state.New(genesis.Trie())
for
_
,
addr
:=
range
[]
string
{
"dbdbdb2cbd23b783741e8d7fcf51e459b497e4a6"
,
"e4157b34ea9615cfbde6b4fda419828124b70c78"
,
...
...
core/state_transition.go
View file @
30fa30bd
...
...
@@ -186,7 +186,7 @@ func (self *StateTransition) TransitionState() (ret []byte, err error) {
return
}
stateCopy
:=
self
.
env
.
State
()
.
Copy
()
//
stateCopy := self.env.State().Copy()
vmenv
:=
self
.
env
var
ref
vm
.
ContextRef
if
MessageCreatesContract
(
msg
)
{
...
...
@@ -200,29 +200,33 @@ func (self *StateTransition) TransitionState() (ret []byte, err error) {
}
}
if
vmenv
,
ok
:=
vmenv
.
(
*
VMEnv
);
ok
&&
tryJit
{
statelogger
.
Infof
(
"CREATE: re-running using JIT (PH=%x)
\n
"
,
stateCopy
.
Root
()[
:
4
])
// re-run using the JIT (validation for the JIT)
goodState
:=
vmenv
.
State
()
.
Copy
()
vmenv
.
state
=
stateCopy
vmenv
.
SetVmType
(
vm
.
JitVmTy
)
vmenv
.
Create
(
sender
,
contract
.
Address
(),
self
.
msg
.
Data
(),
self
.
gas
,
self
.
gasPrice
,
self
.
value
)
statelogger
.
Infof
(
"DONE PH=%x STD_H=%x JIT_H=%x
\n
"
,
stateCopy
.
Root
()[
:
4
],
goodState
.
Root
()[
:
4
],
vmenv
.
State
()
.
Root
()[
:
4
])
self
.
state
.
Set
(
goodState
)
}
/*
if vmenv, ok := vmenv.(*VMEnv); ok && tryJit {
statelogger.Infof("CREATE: re-running using JIT (PH=%x)\n", stateCopy.Root()[:4])
// re-run using the JIT (validation for the JIT)
goodState := vmenv.State().Copy()
vmenv.state = stateCopy
vmenv.SetVmType(vm.JitVmTy)
vmenv.Create(sender, contract.Address(), self.msg.Data(), self.gas, self.gasPrice, self.value)
statelogger.Infof("DONE PH=%x STD_H=%x JIT_H=%x\n", stateCopy.Root()[:4], goodState.Root()[:4], vmenv.State().Root()[:4])
self.state.Set(goodState)
}
*/
}
else
{
ret
,
err
=
vmenv
.
Call
(
self
.
From
(),
self
.
To
()
.
Address
(),
self
.
msg
.
Data
(),
self
.
gas
,
self
.
gasPrice
,
self
.
value
)
if
vmenv
,
ok
:=
vmenv
.
(
*
VMEnv
);
ok
&&
tryJit
{
statelogger
.
Infof
(
"CALL: re-running using JIT (PH=%x)
\n
"
,
stateCopy
.
Root
()[
:
4
])
// re-run using the JIT (validation for the JIT)
goodState
:=
vmenv
.
State
()
.
Copy
()
vmenv
.
state
=
stateCopy
vmenv
.
SetVmType
(
vm
.
JitVmTy
)
vmenv
.
Call
(
self
.
From
(),
self
.
To
()
.
Address
(),
self
.
msg
.
Data
(),
self
.
gas
,
self
.
gasPrice
,
self
.
value
)
statelogger
.
Infof
(
"DONE PH=%x STD_H=%x JIT_H=%x
\n
"
,
stateCopy
.
Root
()[
:
4
],
goodState
.
Root
()[
:
4
],
vmenv
.
State
()
.
Root
()[
:
4
])
self
.
state
.
Set
(
goodState
)
}
/*
if vmenv, ok := vmenv.(*VMEnv); ok && tryJit {
statelogger.Infof("CALL: re-running using JIT (PH=%x)\n", stateCopy.Root()[:4])
// re-run using the JIT (validation for the JIT)
goodState := vmenv.State().Copy()
vmenv.state = stateCopy
vmenv.SetVmType(vm.JitVmTy)
vmenv.Call(self.From(), self.To().Address(), self.msg.Data(), self.gas, self.gasPrice, self.value)
statelogger.Infof("DONE PH=%x STD_H=%x JIT_H=%x\n", stateCopy.Root()[:4], goodState.Root()[:4], vmenv.State().Root()[:4])
self.state.Set(goodState)
}
*/
}
if
err
!=
nil
{
...
...
eth/block_pool.go
View file @
30fa30bd
...
...
@@ -636,12 +636,12 @@ func (self *BlockPool) AddBlock(block *types.Block, peerId string) {
// validate block for PoW
if
!
self
.
verifyPoW
(
block
)
{
poolLogger
.
Warnf
(
"invalid pow on block [%s
] by peer %s"
,
name
(
hash
),
peerId
)
poolLogger
.
Warnf
(
"invalid pow on block [%s
%v] by peer %s"
,
name
(
hash
),
block
.
Number
(
),
peerId
)
self
.
peerError
(
peerId
,
ErrInvalidPoW
,
"%x"
,
hash
)
return
}
}
poolLogger
.
Debugf
(
"added block [%s] sent by peer %s"
,
name
(
hash
),
peerId
)
poolLogger
.
Debug
Detail
f
(
"added block [%s] sent by peer %s"
,
name
(
hash
),
peerId
)
node
.
block
=
block
node
.
blockBy
=
peerId
...
...
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