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
d4d505c8
Commit
d4d505c8
authored
Mar 03, 2015
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed genesis
parent
08fd0715
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
20 deletions
+31
-20
genesis.go
core/genesis.go
+7
-7
block.go
core/types/block.go
+23
-12
worker.go
miner/worker.go
+1
-1
No files found.
core/genesis.go
View file @
d4d505c8
...
...
@@ -23,13 +23,13 @@ var EmptyShaList = crypto.Sha3(ethutil.Encode([]interface{}{}))
var
EmptyListRoot
=
crypto
.
Sha3
(
ethutil
.
Encode
(
""
))
func
GenesisBlock
(
db
ethutil
.
Database
)
*
types
.
Block
{
genesis
:=
types
.
NewBlock
(
ZeroHash256
,
ZeroHash160
,
nil
,
big
.
NewInt
(
131072
),
42
,
""
)
genesis
:=
types
.
NewBlock
(
ZeroHash256
,
ZeroHash160
,
nil
,
big
.
NewInt
(
2048
),
42
,
""
)
genesis
.
Header
()
.
Number
=
ethutil
.
Big0
genesis
.
Header
()
.
GasLimit
=
big
.
NewInt
(
1000000
)
genesis
.
Header
()
.
GasUsed
=
ethutil
.
Big0
genesis
.
Header
()
.
Time
=
0
genesis
.
Header
()
.
MixDigest
=
make
([]
byte
,
32
)
genesis
.
Header
()
.
SeedHash
=
make
([]
byte
,
32
)
genesis
.
Header
()
.
MixDigest
=
make
([]
byte
,
32
)
genesis
.
Td
=
ethutil
.
Big0
...
...
@@ -59,6 +59,10 @@ func GenesisBlock(db ethutil.Database) *types.Block {
}
var
genesisData
=
[]
byte
(
`{
"0000000000000000000000000000000000000001": {"balance": "1"},
"0000000000000000000000000000000000000002": {"balance": "1"},
"0000000000000000000000000000000000000003": {"balance": "1"},
"0000000000000000000000000000000000000004": {"balance": "1"},
"dbdbdb2cbd23b783741e8d7fcf51e459b497e4a6": {"balance": "1606938044258990275541962092341162602522202993782792835301376"},
"e4157b34ea9615cfbde6b4fda419828124b70c78": {"balance": "1606938044258990275541962092341162602522202993782792835301376"},
"b9c015918bdaba24b4ff057a92a3873d6eb201be": {"balance": "1606938044258990275541962092341162602522202993782792835301376"},
...
...
@@ -66,9 +70,5 @@ var genesisData = []byte(`{
"cd2a3d9f938e13cd947ec05abc7fe734df8dd826": {"balance": "1606938044258990275541962092341162602522202993782792835301376"},
"2ef47100e0787b915105fd5e3f4ff6752079d5cb": {"balance": "1606938044258990275541962092341162602522202993782792835301376"},
"e6716f9544a56c530d868e4bfbacb172315bdead": {"balance": "1606938044258990275541962092341162602522202993782792835301376"},
"1a26338f0d905e295fccb71fa9ea849ffa12aaf4": {"balance": "1606938044258990275541962092341162602522202993782792835301376"},
"b0afc46d9ce366d06ab4952ca27db1d9557ae9fd": {"balance": "154162184000000000000000"},
"f6b1e9dc460d4d62cc22ec5f987d726929c0f9f0": {"balance": "102774789000000000000000"},
"cc45122d8b7fa0b1eaa6b29e0fb561422a9239d0": {"balance": "51387394000000000000000"},
"b7576e9d314df41ec5506494293afb1bd5d3f65d": {"balance": "69423399000000000000000"}
"1a26338f0d905e295fccb71fa9ea849ffa12aaf4": {"balance": "1606938044258990275541962092341162602522202993782792835301376"}
}`
)
core/types/block.go
View file @
d4d505c8
...
...
@@ -2,6 +2,7 @@ package types
import
(
"bytes"
"encoding/binary"
"fmt"
"math/big"
"sort"
...
...
@@ -40,7 +41,7 @@ type Header struct {
// Extra data
Extra
string
// Nonce
Nonce
uint64
Nonce
[]
byte
// Mix digest for quick checking to prevent DOS
MixDigest
ethutil
.
Bytes
// SeedHash used for light client verification
...
...
@@ -63,7 +64,7 @@ func (self *Header) rlpData(withNonce bool) []interface{} {
self
.
Time
,
self
.
Extra
}
if
withNonce
{
fields
=
append
(
fields
,
self
.
Nonce
,
self
.
MixDigest
,
self
.
SeedHash
)
fields
=
append
(
fields
,
self
.
SeedHash
,
self
.
MixDigest
,
self
.
Nonce
)
}
return
fields
...
...
@@ -100,18 +101,23 @@ func NewBlock(parentHash []byte, coinbase []byte, root []byte, difficulty *big.I
ParentHash
:
parentHash
,
Coinbase
:
coinbase
,
Difficulty
:
difficulty
,
Nonce
:
nonce
,
Time
:
uint64
(
time
.
Now
()
.
Unix
()),
Extra
:
extra
,
GasUsed
:
new
(
big
.
Int
),
GasLimit
:
new
(
big
.
Int
),
}
header
.
setNonce
(
nonce
)
block
:=
&
Block
{
header
:
header
,
Reward
:
new
(
big
.
Int
)}
return
block
}
func
(
self
*
Header
)
setNonce
(
nonce
uint64
)
{
self
.
Nonce
=
make
([]
byte
,
8
)
binary
.
BigEndian
.
PutUint64
(
self
.
Nonce
,
nonce
)
}
func
NewBlockWithHeader
(
header
*
Header
)
*
Block
{
return
&
Block
{
header
:
header
}
}
...
...
@@ -191,11 +197,17 @@ func (self *Block) RlpDataForStorage() interface{} {
}
// Header accessors (add as you need them)
func
(
self
*
Block
)
Number
()
*
big
.
Int
{
return
self
.
header
.
Number
}
func
(
self
*
Block
)
NumberU64
()
uint64
{
return
self
.
header
.
Number
.
Uint64
()
}
func
(
self
*
Block
)
MixDigest
()
[]
byte
{
return
self
.
header
.
MixDigest
}
func
(
self
*
Block
)
SeedHash
()
[]
byte
{
return
self
.
header
.
SeedHash
}
func
(
self
*
Block
)
Nonce
()
uint64
{
return
self
.
header
.
Nonce
}
func
(
self
*
Block
)
Number
()
*
big
.
Int
{
return
self
.
header
.
Number
}
func
(
self
*
Block
)
NumberU64
()
uint64
{
return
self
.
header
.
Number
.
Uint64
()
}
func
(
self
*
Block
)
MixDigest
()
[]
byte
{
return
self
.
header
.
MixDigest
}
func
(
self
*
Block
)
SeedHash
()
[]
byte
{
return
self
.
header
.
SeedHash
}
func
(
self
*
Block
)
Nonce
()
uint64
{
return
binary
.
BigEndian
.
Uint64
(
self
.
header
.
Nonce
)
}
func
(
self
*
Block
)
SetNonce
(
nonce
uint64
)
{
self
.
header
.
setNonce
(
nonce
)
}
func
(
self
*
Block
)
Bloom
()
[]
byte
{
return
self
.
header
.
Bloom
}
func
(
self
*
Block
)
Coinbase
()
[]
byte
{
return
self
.
header
.
Coinbase
}
func
(
self
*
Block
)
Time
()
int64
{
return
int64
(
self
.
header
.
Time
)
}
...
...
@@ -267,11 +279,10 @@ func (self *Header) String() string {
GasUsed: %v
Time: %v
Extra: %v
Nonce: %d
MixDigest: %x
SeedHash: %x
`
,
self
.
ParentHash
,
self
.
UncleHash
,
self
.
Coinbase
,
self
.
Root
,
self
.
TxHash
,
self
.
ReceiptHash
,
self
.
Bloom
,
self
.
Difficulty
,
self
.
Number
,
self
.
GasLimit
,
self
.
GasUsed
,
self
.
Time
,
self
.
Extra
,
self
.
Nonce
,
self
.
MixDigest
,
self
.
SeedHash
)
MixDigest: %x
Nonce: %x`
,
self
.
ParentHash
,
self
.
UncleHash
,
self
.
Coinbase
,
self
.
Root
,
self
.
TxHash
,
self
.
ReceiptHash
,
self
.
Bloom
,
self
.
Difficulty
,
self
.
Number
,
self
.
GasLimit
,
self
.
GasUsed
,
self
.
Time
,
self
.
Extra
,
self
.
SeedHash
,
self
.
MixDigest
,
self
.
Nonce
)
}
type
Blocks
[]
*
Block
...
...
miner/worker.go
View file @
d4d505c8
...
...
@@ -151,7 +151,7 @@ func (self *worker) wait() {
// Someone Successfully Mined!
block
:=
self
.
current
.
block
if
block
.
Number
()
.
Uint64
()
==
work
.
Number
&&
block
.
Nonce
()
==
0
{
self
.
current
.
block
.
Header
()
.
Nonce
=
work
.
Nonce
self
.
current
.
block
.
SetNonce
(
work
.
Nonce
)
self
.
current
.
block
.
Header
()
.
MixDigest
=
work
.
MixDigest
self
.
current
.
block
.
Header
()
.
SeedHash
=
work
.
SeedHash
...
...
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