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
63883bf2
Commit
63883bf2
authored
Jun 14, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Moving closer to interop
parent
81245473
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
25 additions
and
12 deletions
+25
-12
asm.go
ethchain/asm.go
+1
-1
block_chain.go
ethchain/block_chain.go
+2
-0
state_transition.go
ethchain/state_transition.go
+10
-6
types.go
ethchain/types.go
+1
-1
miner.go
ethminer/miner.go
+9
-2
peer.go
peer.go
+2
-2
No files found.
ethchain/asm.go
View file @
63883bf2
...
...
@@ -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
(
"
%#
x"
,
data
))
pc
.
Add
(
pc
,
big
.
NewInt
(
a
-
1
))
}
...
...
ethchain/block_chain.go
View file @
63883bf2
...
...
@@ -55,6 +55,8 @@ func (bc *BlockChain) NewBlock(coinbase []byte) *Block {
nil
,
""
)
block
.
MinGasPrice
=
big
.
NewInt
(
10000000000000
)
if
bc
.
CurrentBlock
!=
nil
{
var
mul
*
big
.
Int
if
block
.
Time
<
lastBlockTime
+
42
{
...
...
ethchain/state_transition.go
View file @
63883bf2
...
...
@@ -131,14 +131,21 @@ func (self *StateTransition) TransitionState() (err error) {
return
NonceError
(
tx
.
Nonce
,
sender
.
Nonce
)
}
// Increment the nonce for the next transaction
sender
.
Nonce
+=
1
// Pre-pay gas / Buy gas of the coinbase account
if
err
=
self
.
BuyGas
();
err
!=
nil
{
return
err
}
// XXX Transactions after this point are considered valid.
defer
func
()
{
self
.
state
.
UpdateStateObject
(
sender
)
self
.
state
.
UpdateStateObject
(
receiver
)
}()
// Increment the nonce for the next transaction
sender
.
Nonce
+=
1
// Get the receiver (TODO fix this, if coinbase is the receiver we need to save/retrieve)
receiver
=
self
.
Receiver
()
...
...
@@ -187,9 +194,6 @@ func (self *StateTransition) TransitionState() (err error) {
remaining
:=
new
(
big
.
Int
)
.
Mul
(
self
.
gas
,
tx
.
GasPrice
)
sender
.
AddAmount
(
remaining
)
self
.
state
.
UpdateStateObject
(
sender
)
self
.
state
.
UpdateStateObject
(
receiver
)
return
nil
}
...
...
ethchain/types.go
View file @
63883bf2
...
...
@@ -226,7 +226,7 @@ var opCodeToString = map[OpCode]string{
func
(
o
OpCode
)
String
()
string
{
str
:=
opCodeToString
[
o
]
if
len
(
str
)
==
0
{
return
fmt
.
Sprintf
(
"Missing opcode
0x%
x"
,
int
(
o
))
return
fmt
.
Sprintf
(
"Missing opcode
%#
x"
,
int
(
o
))
}
return
str
...
...
ethminer/miner.go
View file @
63883bf2
...
...
@@ -136,11 +136,18 @@ func (self *Miner) mineNewBlock() {
// Sort the transactions by nonce in case of odd network propagation
sort
.
Sort
(
ethchain
.
TxByNonce
{
self
.
txs
})
// Accumulate all valid transaction and apply them to the new state
receipts
,
txs
:=
stateManager
.
ApplyTransactions
(
self
.
block
.
Coinbase
,
self
.
block
.
State
(),
self
.
block
,
self
.
txs
)
self
.
txs
=
txs
// Error may be ignored. It's not important during mining
receipts
,
txs
,
unhandledTxs
,
err
:=
stateManager
.
ProcessTransactions
(
self
.
block
.
Coinbase
,
self
.
block
.
State
(),
self
.
block
,
self
.
block
,
self
.
txs
)
if
err
!=
nil
{
ethutil
.
Config
.
Log
.
Debugln
(
"[MINER]"
,
err
)
}
self
.
txs
=
append
(
txs
,
unhandledTxs
...
)
// Set the transactions to the block so the new SHA3 can be calculated
self
.
block
.
SetReceipts
(
receipts
,
txs
)
// Accumulate the rewards included for this block
stateManager
.
AccumelateRewards
(
self
.
block
.
State
(),
self
.
block
)
...
...
peer.go
View file @
63883bf2
...
...
@@ -19,7 +19,7 @@ const (
// Current protocol version
ProtocolVersion
=
20
// Interval for ping/pong message
pingPongTimer
=
30
*
time
.
Second
pingPongTimer
=
1
*
time
.
Second
)
type
DiscReason
byte
...
...
@@ -270,7 +270,7 @@ out:
// Ping timer
case
<-
pingTimer
.
C
:
timeSince
:=
time
.
Since
(
time
.
Unix
(
p
.
lastPong
,
0
))
if
p
.
pingStartTime
.
IsZero
()
==
false
&&
timeSince
>
(
pingPongTimer
+
10
*
time
.
Second
)
{
if
!
p
.
pingStartTime
.
IsZero
()
&&
p
.
lastPong
!=
0
&&
timeSince
>
(
pingPongTimer
+
10
*
time
.
Second
)
{
ethutil
.
Config
.
Log
.
Infof
(
"[PEER] Peer did not respond to latest pong fast enough, it took %s, disconnecting.
\n
"
,
timeSince
)
p
.
Stop
()
return
...
...
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