cmd/utils, mobile: update to reprice HF and light client
This commit is contained in:
parent
322502b441
commit
de4b39a1a3
@ -46,14 +46,18 @@ var TestnetBootnodes = []*discover.Node{
|
|||||||
|
|
||||||
// MainnetChainConfig is the chain parameters to run a node on the main network.
|
// MainnetChainConfig is the chain parameters to run a node on the main network.
|
||||||
var MainnetChainConfig = &core.ChainConfig{
|
var MainnetChainConfig = &core.ChainConfig{
|
||||||
HomesteadBlock: params.MainNetHomesteadBlock,
|
HomesteadBlock: params.MainNetHomesteadBlock,
|
||||||
DAOForkBlock: params.MainNetDAOForkBlock,
|
DAOForkBlock: params.MainNetDAOForkBlock,
|
||||||
DAOForkSupport: true,
|
DAOForkSupport: true,
|
||||||
|
HomesteadGasRepriceBlock: params.MainNetHomesteadGasRepriceBlock,
|
||||||
|
HomesteadGasRepriceHash: params.MainNetHomesteadGasRepriceHash,
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestnetChainConfig is the chain parameters to run a node on the test network.
|
// TestnetChainConfig is the chain parameters to run a node on the test network.
|
||||||
var TestnetChainConfig = &core.ChainConfig{
|
var TestnetChainConfig = &core.ChainConfig{
|
||||||
HomesteadBlock: params.TestNetHomesteadBlock,
|
HomesteadBlock: params.TestNetHomesteadBlock,
|
||||||
DAOForkBlock: params.TestNetDAOForkBlock,
|
DAOForkBlock: params.TestNetDAOForkBlock,
|
||||||
DAOForkSupport: false,
|
DAOForkSupport: false,
|
||||||
|
HomesteadGasRepriceBlock: params.TestNetHomesteadGasRepriceBlock,
|
||||||
|
HomesteadGasRepriceHash: params.TestNetHomesteadGasRepriceHash,
|
||||||
}
|
}
|
||||||
|
@ -23,32 +23,46 @@ import (
|
|||||||
"github.com/ethereum/go-ethereum/params"
|
"github.com/ethereum/go-ethereum/params"
|
||||||
)
|
)
|
||||||
|
|
||||||
// MainnetChainConfig is the chain configurations for the main Ethereum network.
|
// MainnetChainConfig returns the chain configurations for the main Ethereum network.
|
||||||
var MainnetChainConfig = &ChainConfig{
|
func MainnetChainConfig() *ChainConfig {
|
||||||
HomesteadBlock: params.MainNetHomesteadBlock.Int64(),
|
return &ChainConfig{
|
||||||
DAOForkBlock: params.MainNetDAOForkBlock.Int64(),
|
HomesteadBlock: params.MainNetHomesteadBlock.Int64(),
|
||||||
DAOForkSupport: true,
|
DAOForkBlock: params.MainNetDAOForkBlock.Int64(),
|
||||||
|
DAOForkSupport: true,
|
||||||
|
HomesteadGasRepriceBlock: params.MainNetHomesteadGasRepriceBlock.Int64(),
|
||||||
|
HomesteadGasRepriceHash: Hash{params.MainNetHomesteadGasRepriceHash},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MainnetGenesis is the JSON spec to use for the main Ethereum network. It is
|
// MainnetGenesis returns the JSON spec to use for the main Ethereum network. It
|
||||||
// actually empty since that defaults to the hard coded binary genesis block.
|
// is actually empty since that defaults to the hard coded binary genesis block.
|
||||||
var MainnetGenesis = ""
|
func MainnetGenesis() string {
|
||||||
|
return ""
|
||||||
// TestnetChainConfig is the chain configurations for the Ethereum test network.
|
|
||||||
var TestnetChainConfig = &ChainConfig{
|
|
||||||
HomesteadBlock: params.TestNetHomesteadBlock.Int64(),
|
|
||||||
DAOForkBlock: 0,
|
|
||||||
DAOForkSupport: false,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestnetGenesis is the JSON spec to use for the Ethereum test network.
|
// TestnetChainConfig returns the chain configurations for the Ethereum test network.
|
||||||
var TestnetGenesis = core.TestNetGenesisBlock()
|
func TestnetChainConfig() *ChainConfig {
|
||||||
|
return &ChainConfig{
|
||||||
|
HomesteadBlock: params.TestNetHomesteadBlock.Int64(),
|
||||||
|
DAOForkBlock: 0,
|
||||||
|
DAOForkSupport: false,
|
||||||
|
HomesteadGasRepriceBlock: params.TestNetHomesteadGasRepriceBlock.Int64(),
|
||||||
|
HomesteadGasRepriceHash: Hash{params.TestNetHomesteadGasRepriceHash},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TestnetGenesis returns the JSON spec to use for the Ethereum test network.
|
||||||
|
func TestnetGenesis() string {
|
||||||
|
return core.TestNetGenesisBlock()
|
||||||
|
}
|
||||||
|
|
||||||
// ChainConfig is the core config which determines the blockchain settings.
|
// ChainConfig is the core config which determines the blockchain settings.
|
||||||
type ChainConfig struct {
|
type ChainConfig struct {
|
||||||
HomesteadBlock int64 // Homestead switch block
|
HomesteadBlock int64 // Homestead switch block
|
||||||
DAOForkBlock int64 // TheDAO hard-fork switch block
|
DAOForkBlock int64 // TheDAO hard-fork switch block
|
||||||
DAOForkSupport bool // Whether the nodes supports or opposes the DAO hard-fork
|
DAOForkSupport bool // Whether the nodes supports or opposes the DAO hard-fork
|
||||||
|
HomesteadGasRepriceBlock int64 // Homestead gas reprice switch block
|
||||||
|
HomesteadGasRepriceHash Hash // Homestead gas reprice switch block hash
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewChainConfig creates a new chain configuration that transitions immediately
|
// NewChainConfig creates a new chain configuration that transitions immediately
|
||||||
|
@ -24,12 +24,13 @@ import (
|
|||||||
"math/big"
|
"math/big"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/cmd/utils"
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
"github.com/ethereum/go-ethereum/core"
|
"github.com/ethereum/go-ethereum/core"
|
||||||
"github.com/ethereum/go-ethereum/core/state"
|
"github.com/ethereum/go-ethereum/core/state"
|
||||||
"github.com/ethereum/go-ethereum/eth"
|
"github.com/ethereum/go-ethereum/eth"
|
||||||
"github.com/ethereum/go-ethereum/ethclient"
|
"github.com/ethereum/go-ethereum/ethclient"
|
||||||
|
"github.com/ethereum/go-ethereum/les"
|
||||||
|
"github.com/ethereum/go-ethereum/light"
|
||||||
"github.com/ethereum/go-ethereum/node"
|
"github.com/ethereum/go-ethereum/node"
|
||||||
"github.com/ethereum/go-ethereum/p2p/nat"
|
"github.com/ethereum/go-ethereum/p2p/nat"
|
||||||
"github.com/ethereum/go-ethereum/whisper/whisperv2"
|
"github.com/ethereum/go-ethereum/whisper/whisperv2"
|
||||||
@ -107,9 +108,11 @@ func NewNode(datadir string, config *NodeConfig) (*Node, error) {
|
|||||||
}
|
}
|
||||||
// Create the empty networking stack
|
// Create the empty networking stack
|
||||||
nodeConf := &node.Config{
|
nodeConf := &node.Config{
|
||||||
|
Name: clientIdentifier,
|
||||||
DataDir: datadir,
|
DataDir: datadir,
|
||||||
KeyStoreDir: filepath.Join(datadir, "keystore"), // Mobile should never use internal keystores!
|
KeyStoreDir: filepath.Join(datadir, "keystore"), // Mobile should never use internal keystores!
|
||||||
Name: common.MakeName(clientIdentifier, utils.Version),
|
NoDiscovery: true,
|
||||||
|
DiscoveryV5: true,
|
||||||
BootstrapNodes: config.BootstrapNodes.nodes,
|
BootstrapNodes: config.BootstrapNodes.nodes,
|
||||||
ListenAddr: ":0",
|
ListenAddr: ":0",
|
||||||
NAT: nat.Any(),
|
NAT: nat.Any(),
|
||||||
@ -123,12 +126,14 @@ func NewNode(datadir string, config *NodeConfig) (*Node, error) {
|
|||||||
if config.EthereumEnabled {
|
if config.EthereumEnabled {
|
||||||
ethConf := ð.Config{
|
ethConf := ð.Config{
|
||||||
ChainConfig: &core.ChainConfig{
|
ChainConfig: &core.ChainConfig{
|
||||||
HomesteadBlock: big.NewInt(config.EthereumChainConfig.HomesteadBlock),
|
HomesteadBlock: big.NewInt(config.EthereumChainConfig.HomesteadBlock),
|
||||||
DAOForkBlock: big.NewInt(config.EthereumChainConfig.DAOForkBlock),
|
DAOForkBlock: big.NewInt(config.EthereumChainConfig.DAOForkBlock),
|
||||||
DAOForkSupport: config.EthereumChainConfig.DAOForkSupport,
|
DAOForkSupport: config.EthereumChainConfig.DAOForkSupport,
|
||||||
|
HomesteadGasRepriceBlock: big.NewInt(config.EthereumChainConfig.HomesteadGasRepriceBlock),
|
||||||
|
HomesteadGasRepriceHash: config.EthereumChainConfig.HomesteadGasRepriceHash.hash,
|
||||||
},
|
},
|
||||||
Genesis: config.EthereumGenesis,
|
Genesis: config.EthereumGenesis,
|
||||||
FastSync: true,
|
LightMode: true,
|
||||||
DatabaseCache: config.EthereumDatabaseCache,
|
DatabaseCache: config.EthereumDatabaseCache,
|
||||||
NetworkId: config.EthereumNetworkID,
|
NetworkId: config.EthereumNetworkID,
|
||||||
GasPrice: new(big.Int).Mul(big.NewInt(20), common.Shannon),
|
GasPrice: new(big.Int).Mul(big.NewInt(20), common.Shannon),
|
||||||
@ -141,9 +146,10 @@ func NewNode(datadir string, config *NodeConfig) (*Node, error) {
|
|||||||
}
|
}
|
||||||
if config.EthereumTestnetNonces {
|
if config.EthereumTestnetNonces {
|
||||||
state.StartingNonce = 1048576 // (2**20)
|
state.StartingNonce = 1048576 // (2**20)
|
||||||
|
light.StartingNonce = 1048576 // (2**20)
|
||||||
}
|
}
|
||||||
if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) {
|
if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) {
|
||||||
return eth.New(ctx, ethConf)
|
return les.New(ctx, ethConf)
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return nil, fmt.Errorf("ethereum init: %v", err)
|
return nil, fmt.Errorf("ethereum init: %v", err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user