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
d7580f21
Commit
d7580f21
authored
Aug 07, 2015
by
Jeffrey Wilcke
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1595 from obscuren/extra-data
cmd/geth, eth: added canonical extra data
parents
b1fac427
132df860
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
42 additions
and
16 deletions
+42
-16
main.go
cmd/geth/main.go
+30
-2
backend.go
eth/backend.go
+2
-7
miner.go
miner/miner.go
+8
-1
miner.go
rpc/api/miner.go
+2
-6
No files found.
cmd/geth/main.go
View file @
d7580f21
...
...
@@ -42,6 +42,8 @@ import (
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/metrics"
"github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/rlp"
"github.com/ethereum/go-ethereum/rpc/codec"
"github.com/ethereum/go-ethereum/rpc/comms"
"github.com/mattn/go-colorable"
...
...
@@ -49,11 +51,14 @@ import (
)
const
(
ClientIdentifier
=
"Geth"
Version
=
"1.0.1"
ClientIdentifier
=
"Geth "
VersionMajor
=
1
VersionMinor
=
0
VersionPatch
=
1
)
var
(
Version
=
fmt
.
Sprintf
(
"%d.%d.%d"
,
VersionMajor
,
VersionMinor
,
VersionPatch
)
gitCommit
string
// set via linker flagg
nodeNameVersion
string
app
*
cli
.
App
...
...
@@ -346,6 +351,27 @@ func main() {
}
}
func
makeDefaultExtra
()
[]
byte
{
var
clientInfo
=
struct
{
Version
uint
Name
string
GoVersion
string
Os
string
}{
uint
(
VersionMajor
<<
16
|
VersionMinor
<<
8
|
VersionPatch
),
ClientIdentifier
,
runtime
.
Version
(),
runtime
.
GOOS
}
extra
,
err
:=
rlp
.
EncodeToBytes
(
clientInfo
)
if
err
!=
nil
{
glog
.
V
(
logger
.
Warn
)
.
Infoln
(
"error setting canonical miner information:"
,
err
)
}
if
uint64
(
len
(
extra
))
>
params
.
MaximumExtraDataSize
.
Uint64
()
{
glog
.
V
(
logger
.
Warn
)
.
Infoln
(
"error setting canonical miner information: extra exceeds"
,
params
.
MaximumExtraDataSize
)
glog
.
V
(
logger
.
Debug
)
.
Infof
(
"extra: %x
\n
"
,
extra
)
return
nil
}
return
extra
}
func
run
(
ctx
*
cli
.
Context
)
{
utils
.
CheckLegalese
(
ctx
.
GlobalString
(
utils
.
DataDirFlag
.
Name
))
if
ctx
.
GlobalBool
(
utils
.
OlympicFlag
.
Name
)
{
...
...
@@ -353,6 +379,8 @@ func run(ctx *cli.Context) {
}
cfg
:=
utils
.
MakeEthConfig
(
ClientIdentifier
,
nodeNameVersion
,
ctx
)
cfg
.
ExtraData
=
makeDefaultExtra
()
ethereum
,
err
:=
eth
.
New
(
cfg
)
if
err
!=
nil
{
utils
.
Fatalf
(
"%v"
,
err
)
...
...
eth/backend.go
View file @
d7580f21
...
...
@@ -45,7 +45,6 @@ import (
"github.com/ethereum/go-ethereum/p2p"
"github.com/ethereum/go-ethereum/p2p/discover"
"github.com/ethereum/go-ethereum/p2p/nat"
"github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/whisper"
)
...
...
@@ -92,6 +91,7 @@ type Config struct {
NatSpec
bool
AutoDAG
bool
PowTest
bool
ExtraData
[]
byte
MaxPeers
int
MaxPendingPeers
int
...
...
@@ -378,12 +378,7 @@ func New(config *Config) (*Ethereum, error) {
eth
.
miner
=
miner
.
New
(
eth
,
eth
.
EventMux
(),
eth
.
pow
)
eth
.
miner
.
SetGasPrice
(
config
.
GasPrice
)
extra
:=
config
.
Name
if
uint64
(
len
(
extra
))
>
params
.
MaximumExtraDataSize
.
Uint64
()
{
extra
=
extra
[
:
params
.
MaximumExtraDataSize
.
Uint64
()]
}
eth
.
miner
.
SetExtra
([]
byte
(
extra
))
eth
.
miner
.
SetExtra
(
config
.
ExtraData
)
if
config
.
Shh
{
eth
.
whisper
=
whisper
.
New
()
...
...
miner/miner.go
View file @
d7580f21
...
...
@@ -18,6 +18,7 @@
package
miner
import
(
"fmt"
"math/big"
"sync/atomic"
...
...
@@ -29,6 +30,7 @@ import (
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/pow"
)
...
...
@@ -150,8 +152,13 @@ func (self *Miner) HashRate() (tot int64) {
return
}
func
(
self
*
Miner
)
SetExtra
(
extra
[]
byte
)
{
func
(
self
*
Miner
)
SetExtra
(
extra
[]
byte
)
error
{
if
uint64
(
len
(
extra
))
>
params
.
MaximumExtraDataSize
.
Uint64
()
{
return
fmt
.
Errorf
(
"Extra exceeds max length. %d > %v"
,
len
(
extra
),
params
.
MaximumExtraDataSize
)
}
self
.
worker
.
extra
=
extra
return
nil
}
func
(
self
*
Miner
)
PendingState
()
*
state
.
StateDB
{
...
...
rpc/api/miner.go
View file @
d7580f21
...
...
@@ -17,12 +17,9 @@
package
api
import
(
"fmt"
"github.com/ethereum/ethash"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/eth"
"github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/rpc/codec"
"github.com/ethereum/go-ethereum/rpc/shared"
)
...
...
@@ -126,11 +123,10 @@ func (self *minerApi) SetExtra(req *shared.Request) (interface{}, error) {
return
nil
,
err
}
if
uint64
(
len
(
args
.
Data
))
>
params
.
MaximumExtraDataSize
.
Uint64
()
*
2
{
return
false
,
fmt
.
Errorf
(
"extra datasize can be no longer than %v bytes"
,
params
.
MaximumExtraDataSize
)
if
err
:=
self
.
ethereum
.
Miner
()
.
SetExtra
([]
byte
(
args
.
Data
));
err
!=
nil
{
return
false
,
err
}
self
.
ethereum
.
Miner
()
.
SetExtra
([]
byte
(
args
.
Data
))
return
true
,
nil
}
...
...
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