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
da38faa8
Commit
da38faa8
authored
Jun 26, 2014
by
zelig
Browse files
Options
Browse Files
Download
Plain Diff
merge upstream; fix port in use warning; new logger API
parents
098136b6
0ed19d9f
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
24 additions
and
27 deletions
+24
-27
asm.go
ethchain/asm.go
+2
-2
block_chain.go
ethchain/block_chain.go
+5
-6
vm.go
ethchain/vm.go
+15
-16
ethereum.go
ethereum.go
+1
-1
script.go
ethutil/script.go
+0
-1
trie.go
ethutil/trie.go
+1
-1
No files found.
ethchain/asm.go
View file @
da38faa8
...
...
@@ -18,7 +18,7 @@ func Disassemble(script []byte) (asm []string) {
// Get the opcode (it must be an opcode!)
op
:=
OpCode
(
val
)
asm
=
append
(
asm
,
fmt
.
Sprintf
(
"%
v"
,
op
))
asm
=
append
(
asm
,
fmt
.
Sprintf
(
"%
04v: %v"
,
pc
,
op
))
switch
op
{
case
PUSH1
,
PUSH2
,
PUSH3
,
PUSH4
,
PUSH5
,
PUSH6
,
PUSH7
,
PUSH8
,
PUSH9
,
PUSH10
,
PUSH11
,
PUSH12
,
PUSH13
,
PUSH14
,
PUSH15
,
PUSH16
,
PUSH17
,
PUSH18
,
PUSH19
,
PUSH20
,
PUSH21
,
PUSH22
,
PUSH23
,
PUSH24
,
PUSH25
,
PUSH26
,
PUSH27
,
PUSH28
,
PUSH29
,
PUSH30
,
PUSH31
,
PUSH32
:
...
...
@@ -28,7 +28,7 @@ func Disassemble(script []byte) (asm []string) {
if
len
(
data
)
==
0
{
data
=
[]
byte
{
0
}
}
asm
=
append
(
asm
,
fmt
.
Sprintf
(
"
0x%x"
,
data
))
asm
=
append
(
asm
,
fmt
.
Sprintf
(
"
%04v: 0x%x"
,
pc
,
data
))
pc
.
Add
(
pc
,
big
.
NewInt
(
a
-
1
))
}
...
...
ethchain/block_chain.go
View file @
da38faa8
...
...
@@ -176,18 +176,12 @@ func (bc *BlockChain) ResetTillBlockHash(hash []byte) error {
bc
.
LastBlockHash
=
bc
.
genesisBlock
.
Hash
()
bc
.
LastBlockNumber
=
1
}
else
{
// TODO: Somehow this doesn't really give the right numbers, double check.
// TODO: Change logs into debug lines
returnTo
=
bc
.
GetBlock
(
hash
)
bc
.
CurrentBlock
=
returnTo
bc
.
LastBlockHash
=
returnTo
.
Hash
()
//info := bc.BlockInfo(returnTo)
bc
.
LastBlockNumber
=
returnTo
.
Number
.
Uint64
()
}
// XXX Why are we resetting? This is the block chain, it has nothing to do with states
//bc.Ethereum.StateManager().PrepareDefault(returnTo)
// Manually reset the last sync block
err
:=
ethutil
.
Config
.
Db
.
Delete
(
lastBlock
.
Hash
())
if
err
!=
nil
{
...
...
@@ -233,6 +227,11 @@ func (bc *BlockChain) GetChainFromHash(hash []byte, max uint64) []interface{} {
for
i
:=
uint64
(
0
);
bytes
.
Compare
(
currentHash
,
hash
)
!=
0
&&
num
>=
parentNumber
&&
i
<
count
;
i
++
{
// Get the block of the chain
block
:=
bc
.
GetBlock
(
currentHash
)
if
block
==
nil
{
chainlogger
.
Debugf
(
"Unexpected error during GetChainFromHash: Unable to find %x
\n
"
,
currentHash
)
break
}
currentHash
=
block
.
PrevHash
chain
=
append
(
chain
,
block
.
Value
()
.
Val
)
...
...
ethchain/vm.go
View file @
da38faa8
...
...
@@ -102,22 +102,21 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
vmlogger
.
Debugf
(
"(~) %x gas: %v (d) %x
\n
"
,
closure
.
object
.
Address
(),
closure
.
Gas
,
closure
.
Args
)
// Memory for the current closure
mem
:=
&
Memory
{}
// New stack (should this be shared?)
stack
:=
NewStack
()
require
:=
func
(
m
int
)
{
if
stack
.
Len
()
<
m
{
isRequireError
=
true
panic
(
fmt
.
Sprintf
(
"stack err = %d, req = %d"
,
stack
.
Len
(),
m
))
var
(
op
OpCode
mem
=
&
Memory
{}
stack
=
NewStack
()
pc
=
big
.
NewInt
(
0
)
step
=
0
prevStep
=
0
require
=
func
(
m
int
)
{
if
stack
.
Len
()
<
m
{
isRequireError
=
true
panic
(
fmt
.
Sprintf
(
"%04v (%v) stack err size = %d, required = %d"
,
pc
,
op
,
stack
.
Len
(),
m
))
}
}
}
// Program counter
pc
:=
big
.
NewInt
(
0
)
// Current step count
step
:=
0
prevStep
:=
0
)
for
{
prevStep
=
step
...
...
@@ -128,7 +127,7 @@ func (vm *Vm) RunClosure(closure *Closure, hook DebugHook) (ret []byte, err erro
// Get the memory location of pc
val
:=
closure
.
Get
(
pc
)
// Get the opcode (it must be an opcode!)
op
:
=
OpCode
(
val
.
Uint
())
op
=
OpCode
(
val
.
Uint
())
gas
:=
new
(
big
.
Int
)
addStepGasUsage
:=
func
(
amount
*
big
.
Int
)
{
...
...
ethereum.go
View file @
da38faa8
...
...
@@ -342,7 +342,7 @@ func (s *Ethereum) Start(seed bool) {
// Bind to addr and port
ln
,
err
:=
net
.
Listen
(
"tcp"
,
":"
+
s
.
Port
)
if
err
!=
nil
{
ethlogger
.
Warn
ln
(
"Connection listening disabled. Acting as client"
)
ethlogger
.
Warn
f
(
"Port %s in use. Connection listening disabled. Acting as client"
,
s
.
Port
)
s
.
listening
=
false
}
else
{
s
.
listening
=
true
...
...
ethutil/script.go
View file @
da38faa8
...
...
@@ -22,7 +22,6 @@ func Compile(script string) (ret []byte, err error) {
}
else
{
compiler
:=
mutan
.
NewCompiler
(
backend
.
NewEthereumBackend
())
byteCode
,
errors
:=
compiler
.
Compile
(
strings
.
NewReader
(
script
))
//byteCode, errors := mutan.Compile(strings.NewReader(script), false)
if
len
(
errors
)
>
0
{
var
errs
string
for
_
,
er
:=
range
errors
{
...
...
ethutil/trie.go
View file @
da38faa8
...
...
@@ -47,7 +47,7 @@ func (cache *Cache) Put(v interface{}) interface{} {
value
:=
NewValue
(
v
)
enc
:=
value
.
Encode
()
if
len
(
enc
)
>=
32
{
if
len
(
enc
)
<
32
{
sha
:=
Sha3Bin
(
enc
)
cache
.
nodes
[
string
(
sha
)]
=
NewNode
(
sha
,
value
,
true
)
...
...
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