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
e39b2a2b
Unverified
Commit
e39b2a2b
authored
Aug 23, 2019
by
Péter Szilágyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
acmd, core, eth, les: support --override.istanbul
parent
961aa053
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
21 additions
and
2 deletions
+21
-2
config.go
cmd/geth/config.go
+4
-0
main.go
cmd/geth/main.go
+1
-0
flags.go
cmd/utils/flags.go
+4
-0
genesis.go
core/genesis.go
+7
-0
backend.go
eth/backend.go
+1
-1
config.go
eth/config.go
+3
-0
client.go
les/client.go
+1
-1
No files found.
cmd/geth/config.go
View file @
e39b2a2b
...
@@ -20,6 +20,7 @@ import (
...
@@ -20,6 +20,7 @@ import (
"bufio"
"bufio"
"errors"
"errors"
"fmt"
"fmt"
"math/big"
"os"
"os"
"reflect"
"reflect"
"unicode"
"unicode"
...
@@ -150,6 +151,9 @@ func enableWhisper(ctx *cli.Context) bool {
...
@@ -150,6 +151,9 @@ func enableWhisper(ctx *cli.Context) bool {
func
makeFullNode
(
ctx
*
cli
.
Context
)
*
node
.
Node
{
func
makeFullNode
(
ctx
*
cli
.
Context
)
*
node
.
Node
{
stack
,
cfg
:=
makeConfigNode
(
ctx
)
stack
,
cfg
:=
makeConfigNode
(
ctx
)
if
ctx
.
GlobalIsSet
(
utils
.
OverrideIstanbulFlag
.
Name
)
{
cfg
.
Eth
.
OverrideIstanbul
=
new
(
big
.
Int
)
.
SetUint64
(
ctx
.
GlobalUint64
(
utils
.
OverrideIstanbulFlag
.
Name
))
}
utils
.
RegisterEthService
(
stack
,
&
cfg
.
Eth
)
utils
.
RegisterEthService
(
stack
,
&
cfg
.
Eth
)
if
ctx
.
GlobalBool
(
utils
.
DashboardEnabledFlag
.
Name
)
{
if
ctx
.
GlobalBool
(
utils
.
DashboardEnabledFlag
.
Name
)
{
...
...
cmd/geth/main.go
View file @
e39b2a2b
...
@@ -69,6 +69,7 @@ var (
...
@@ -69,6 +69,7 @@ var (
utils
.
ExternalSignerFlag
,
utils
.
ExternalSignerFlag
,
utils
.
NoUSBFlag
,
utils
.
NoUSBFlag
,
utils
.
SmartCardDaemonPathFlag
,
utils
.
SmartCardDaemonPathFlag
,
utils
.
OverrideIstanbulFlag
,
utils
.
DashboardEnabledFlag
,
utils
.
DashboardEnabledFlag
,
utils
.
DashboardAddrFlag
,
utils
.
DashboardAddrFlag
,
utils
.
DashboardPortFlag
,
utils
.
DashboardPortFlag
,
...
...
cmd/utils/flags.go
View file @
e39b2a2b
...
@@ -223,6 +223,10 @@ var (
...
@@ -223,6 +223,10 @@ var (
Name
:
"whitelist"
,
Name
:
"whitelist"
,
Usage
:
"Comma separated block number-to-hash mappings to enforce (<number>=<hash>)"
,
Usage
:
"Comma separated block number-to-hash mappings to enforce (<number>=<hash>)"
,
}
}
OverrideIstanbulFlag
=
cli
.
Uint64Flag
{
Name
:
"override.istanbul"
,
Usage
:
"Manually specify Istanbul fork-block, overriding the bundled setting"
,
}
// Light server and client settings
// Light server and client settings
LightLegacyServFlag
=
cli
.
IntFlag
{
// Deprecated in favor of light.serve, remove in 2021
LightLegacyServFlag
=
cli
.
IntFlag
{
// Deprecated in favor of light.serve, remove in 2021
Name
:
"lightserv"
,
Name
:
"lightserv"
,
...
...
core/genesis.go
View file @
e39b2a2b
...
@@ -152,6 +152,10 @@ func (e *GenesisMismatchError) Error() string {
...
@@ -152,6 +152,10 @@ func (e *GenesisMismatchError) Error() string {
//
//
// The returned chain configuration is never nil.
// The returned chain configuration is never nil.
func
SetupGenesisBlock
(
db
ethdb
.
Database
,
genesis
*
Genesis
)
(
*
params
.
ChainConfig
,
common
.
Hash
,
error
)
{
func
SetupGenesisBlock
(
db
ethdb
.
Database
,
genesis
*
Genesis
)
(
*
params
.
ChainConfig
,
common
.
Hash
,
error
)
{
return
SetupGenesisBlockWithOverride
(
db
,
genesis
,
nil
)
}
func
SetupGenesisBlockWithOverride
(
db
ethdb
.
Database
,
genesis
*
Genesis
,
overrideIstanbul
*
big
.
Int
)
(
*
params
.
ChainConfig
,
common
.
Hash
,
error
)
{
if
genesis
!=
nil
&&
genesis
.
Config
==
nil
{
if
genesis
!=
nil
&&
genesis
.
Config
==
nil
{
return
params
.
AllEthashProtocolChanges
,
common
.
Hash
{},
errGenesisNoConfig
return
params
.
AllEthashProtocolChanges
,
common
.
Hash
{},
errGenesisNoConfig
}
}
...
@@ -200,6 +204,9 @@ func SetupGenesisBlock(db ethdb.Database, genesis *Genesis) (*params.ChainConfig
...
@@ -200,6 +204,9 @@ func SetupGenesisBlock(db ethdb.Database, genesis *Genesis) (*params.ChainConfig
// Get the existing chain configuration.
// Get the existing chain configuration.
newcfg
:=
genesis
.
configOrDefault
(
stored
)
newcfg
:=
genesis
.
configOrDefault
(
stored
)
if
overrideIstanbul
!=
nil
{
newcfg
.
IstanbulBlock
=
overrideIstanbul
}
storedcfg
:=
rawdb
.
ReadChainConfig
(
db
,
stored
)
storedcfg
:=
rawdb
.
ReadChainConfig
(
db
,
stored
)
if
storedcfg
==
nil
{
if
storedcfg
==
nil
{
log
.
Warn
(
"Found genesis block without chain config"
)
log
.
Warn
(
"Found genesis block without chain config"
)
...
...
eth/backend.go
View file @
e39b2a2b
...
@@ -137,7 +137,7 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) {
...
@@ -137,7 +137,7 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) {
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
chainConfig
,
genesisHash
,
genesisErr
:=
core
.
SetupGenesisBlock
(
chainDb
,
config
.
Genesis
)
chainConfig
,
genesisHash
,
genesisErr
:=
core
.
SetupGenesisBlock
WithOverride
(
chainDb
,
config
.
Genesis
,
config
.
OverrideIstanbul
)
if
_
,
ok
:=
genesisErr
.
(
*
params
.
ConfigCompatError
);
genesisErr
!=
nil
&&
!
ok
{
if
_
,
ok
:=
genesisErr
.
(
*
params
.
ConfigCompatError
);
genesisErr
!=
nil
&&
!
ok
{
return
nil
,
genesisErr
return
nil
,
genesisErr
}
}
...
...
eth/config.go
View file @
e39b2a2b
...
@@ -154,4 +154,7 @@ type Config struct {
...
@@ -154,4 +154,7 @@ type Config struct {
// CheckpointOracle is the configuration for checkpoint oracle.
// CheckpointOracle is the configuration for checkpoint oracle.
CheckpointOracle
*
params
.
CheckpointOracleConfig
`toml:",omitempty"`
CheckpointOracle
*
params
.
CheckpointOracleConfig
`toml:",omitempty"`
// Istanbul block override (TODO: remove after the fork)
OverrideIstanbul
*
big
.
Int
}
}
les/client.go
View file @
e39b2a2b
...
@@ -72,7 +72,7 @@ func New(ctx *node.ServiceContext, config *eth.Config) (*LightEthereum, error) {
...
@@ -72,7 +72,7 @@ func New(ctx *node.ServiceContext, config *eth.Config) (*LightEthereum, error) {
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
chainConfig
,
genesisHash
,
genesisErr
:=
core
.
SetupGenesisBlock
(
chainDb
,
config
.
Genesis
)
chainConfig
,
genesisHash
,
genesisErr
:=
core
.
SetupGenesisBlock
WithOverride
(
chainDb
,
config
.
Genesis
,
config
.
OverrideIstanbul
)
if
_
,
isCompat
:=
genesisErr
.
(
*
params
.
ConfigCompatError
);
genesisErr
!=
nil
&&
!
isCompat
{
if
_
,
isCompat
:=
genesisErr
.
(
*
params
.
ConfigCompatError
);
genesisErr
!=
nil
&&
!
isCompat
{
return
nil
,
genesisErr
return
nil
,
genesisErr
}
}
...
...
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