mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-24 05:36:46 +00:00
cmd, eth: flag for enabling eth protocol versions
This commit is contained in:
parent
12506ebbf9
commit
738b34e7ea
3 changed files with 22 additions and 2 deletions
|
|
@ -284,6 +284,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
|
||||||
utils.DataDirFlag,
|
utils.DataDirFlag,
|
||||||
utils.BlockchainVersionFlag,
|
utils.BlockchainVersionFlag,
|
||||||
utils.OlympicFlag,
|
utils.OlympicFlag,
|
||||||
|
utils.EthVersionFlag,
|
||||||
utils.CacheFlag,
|
utils.CacheFlag,
|
||||||
utils.JSpathFlag,
|
utils.JSpathFlag,
|
||||||
utils.ListenPortFlag,
|
utils.ListenPortFlag,
|
||||||
|
|
@ -334,6 +335,7 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
|
||||||
app.Before = func(ctx *cli.Context) error {
|
app.Before = func(ctx *cli.Context) error {
|
||||||
utils.SetupLogger(ctx)
|
utils.SetupLogger(ctx)
|
||||||
utils.SetupVM(ctx)
|
utils.SetupVM(ctx)
|
||||||
|
utils.SetupEth(ctx)
|
||||||
if ctx.GlobalBool(utils.PProfEanbledFlag.Name) {
|
if ctx.GlobalBool(utils.PProfEanbledFlag.Name) {
|
||||||
utils.StartPProf(ctx)
|
utils.StartPProf(ctx)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -138,6 +138,11 @@ var (
|
||||||
Name: "olympic",
|
Name: "olympic",
|
||||||
Usage: "Use olympic style protocol",
|
Usage: "Use olympic style protocol",
|
||||||
}
|
}
|
||||||
|
EthVersionFlag = cli.IntFlag{
|
||||||
|
Name: "eth",
|
||||||
|
Value: 61,
|
||||||
|
Usage: "Highest eth protocol to advertise (temporary, dev option)",
|
||||||
|
}
|
||||||
|
|
||||||
// miner settings
|
// miner settings
|
||||||
MinerThreadsFlag = cli.IntFlag{
|
MinerThreadsFlag = cli.IntFlag{
|
||||||
|
|
@ -459,6 +464,18 @@ func SetupVM(ctx *cli.Context) {
|
||||||
vm.SetJITCacheSize(ctx.GlobalInt(VMJitCacheFlag.Name))
|
vm.SetJITCacheSize(ctx.GlobalInt(VMJitCacheFlag.Name))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetupEth configures the eth packages global settings
|
||||||
|
func SetupEth(ctx *cli.Context) {
|
||||||
|
version := ctx.GlobalInt(EthVersionFlag.Name)
|
||||||
|
for len(eth.ProtocolVersions) > 0 && eth.ProtocolVersions[0] > uint(version) {
|
||||||
|
eth.ProtocolVersions = eth.ProtocolVersions[1:]
|
||||||
|
eth.ProtocolLengths = eth.ProtocolLengths[1:]
|
||||||
|
}
|
||||||
|
if len(eth.ProtocolVersions) == 0 {
|
||||||
|
Fatalf("No valid eth protocols remaining")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// MakeChain creates a chain manager from set command line flags.
|
// MakeChain creates a chain manager from set command line flags.
|
||||||
func MakeChain(ctx *cli.Context) (chain *core.ChainManager, chainDb common.Database) {
|
func MakeChain(ctx *cli.Context) (chain *core.ChainManager, chainDb common.Database) {
|
||||||
datadir := ctx.GlobalString(DataDirFlag.Name)
|
datadir := ctx.GlobalString(DataDirFlag.Name)
|
||||||
|
|
|
||||||
|
|
@ -36,10 +36,10 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
// Supported versions of the eth protocol (first is primary).
|
// Supported versions of the eth protocol (first is primary).
|
||||||
var ProtocolVersions = []uint{61, 60}
|
var ProtocolVersions = []uint{eth64, eth63, eth62, eth61, eth60}
|
||||||
|
|
||||||
// Number of implemented message corresponding to different protocol versions.
|
// Number of implemented message corresponding to different protocol versions.
|
||||||
var ProtocolLengths = []uint64{9, 8}
|
var ProtocolLengths = []uint64{15, 12, 8, 9, 8}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
NetworkId = 1
|
NetworkId = 1
|
||||||
|
|
@ -69,6 +69,7 @@ const (
|
||||||
BlockHeadersMsg = 0x04
|
BlockHeadersMsg = 0x04
|
||||||
GetBlockBodiesMsg = 0x05
|
GetBlockBodiesMsg = 0x05
|
||||||
BlockBodiesMsg = 0x06
|
BlockBodiesMsg = 0x06
|
||||||
|
// NewBlockMsg = 0x07 (uncomment after eth/61 deprecation)
|
||||||
|
|
||||||
// Protocol messages belonging to eth/63
|
// Protocol messages belonging to eth/63
|
||||||
GetNodeDataMsg = 0x0d
|
GetNodeDataMsg = 0x0d
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue