aboutsummaryrefslogtreecommitdiffstats
path: root/mobile
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2016-11-09 22:19:19 +0800
committerPéter Szilágyi <peterke@gmail.com>2016-11-14 23:56:58 +0800
commitde4b39a1a32a61a9683a036b2e27e8df7cd4c9ff (patch)
tree3118edd53504f46b0410f1ff2d443889edf9df1b /mobile
parent322502b441c6137b2945131f8e3dda1bb3f8d6b3 (diff)
downloaddexon-de4b39a1a32a61a9683a036b2e27e8df7cd4c9ff.tar
dexon-de4b39a1a32a61a9683a036b2e27e8df7cd4c9ff.tar.gz
dexon-de4b39a1a32a61a9683a036b2e27e8df7cd4c9ff.tar.bz2
dexon-de4b39a1a32a61a9683a036b2e27e8df7cd4c9ff.tar.lz
dexon-de4b39a1a32a61a9683a036b2e27e8df7cd4c9ff.tar.xz
dexon-de4b39a1a32a61a9683a036b2e27e8df7cd4c9ff.tar.zst
dexon-de4b39a1a32a61a9683a036b2e27e8df7cd4c9ff.zip
cmd/utils, mobile: update to reprice HF and light client
Diffstat (limited to 'mobile')
-rw-r--r--mobile/core.go50
-rw-r--r--mobile/geth.go20
2 files changed, 45 insertions, 25 deletions
diff --git a/mobile/core.go b/mobile/core.go
index 72acfbf87..a49a4e660 100644
--- a/mobile/core.go
+++ b/mobile/core.go
@@ -23,32 +23,46 @@ import (
"github.com/ethereum/go-ethereum/params"
)
-// MainnetChainConfig is the chain configurations for the main Ethereum network.
-var MainnetChainConfig = &ChainConfig{
- HomesteadBlock: params.MainNetHomesteadBlock.Int64(),
- DAOForkBlock: params.MainNetDAOForkBlock.Int64(),
- DAOForkSupport: true,
+// MainnetChainConfig returns the chain configurations for the main Ethereum network.
+func MainnetChainConfig() *ChainConfig {
+ return &ChainConfig{
+ HomesteadBlock: params.MainNetHomesteadBlock.Int64(),
+ 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
-// actually empty since that defaults to the hard coded binary genesis block.
-var MainnetGenesis = ""
+// MainnetGenesis returns the JSON spec to use for the main Ethereum network. It
+// is actually empty since that defaults to the hard coded binary genesis block.
+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,
+// TestnetChainConfig returns the chain configurations for the Ethereum test network.
+func TestnetChainConfig() *ChainConfig {
+ return &ChainConfig{
+ HomesteadBlock: params.TestNetHomesteadBlock.Int64(),
+ DAOForkBlock: 0,
+ DAOForkSupport: false,
+ HomesteadGasRepriceBlock: params.TestNetHomesteadGasRepriceBlock.Int64(),
+ HomesteadGasRepriceHash: Hash{params.TestNetHomesteadGasRepriceHash},
+ }
}
-// TestnetGenesis is the JSON spec to use for the Ethereum test network.
-var TestnetGenesis = core.TestNetGenesisBlock()
+// 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.
type ChainConfig struct {
- HomesteadBlock int64 // Homestead switch block
- DAOForkBlock int64 // TheDAO hard-fork switch block
- DAOForkSupport bool // Whether the nodes supports or opposes the DAO hard-fork
+ HomesteadBlock int64 // Homestead switch block
+ DAOForkBlock int64 // TheDAO hard-fork switch block
+ 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
diff --git a/mobile/geth.go b/mobile/geth.go
index 969919ba8..85ac7fec5 100644
--- a/mobile/geth.go
+++ b/mobile/geth.go
@@ -24,12 +24,13 @@ import (
"math/big"
"path/filepath"
- "github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core"
"github.com/ethereum/go-ethereum/core/state"
"github.com/ethereum/go-ethereum/eth"
"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/p2p/nat"
"github.com/ethereum/go-ethereum/whisper/whisperv2"
@@ -107,9 +108,11 @@ func NewNode(datadir string, config *NodeConfig) (*Node, error) {
}
// Create the empty networking stack
nodeConf := &node.Config{
+ Name: clientIdentifier,
DataDir: datadir,
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,
ListenAddr: ":0",
NAT: nat.Any(),
@@ -123,12 +126,14 @@ func NewNode(datadir string, config *NodeConfig) (*Node, error) {
if config.EthereumEnabled {
ethConf := &eth.Config{
ChainConfig: &core.ChainConfig{
- HomesteadBlock: big.NewInt(config.EthereumChainConfig.HomesteadBlock),
- DAOForkBlock: big.NewInt(config.EthereumChainConfig.DAOForkBlock),
- DAOForkSupport: config.EthereumChainConfig.DAOForkSupport,
+ HomesteadBlock: big.NewInt(config.EthereumChainConfig.HomesteadBlock),
+ DAOForkBlock: big.NewInt(config.EthereumChainConfig.DAOForkBlock),
+ DAOForkSupport: config.EthereumChainConfig.DAOForkSupport,
+ HomesteadGasRepriceBlock: big.NewInt(config.EthereumChainConfig.HomesteadGasRepriceBlock),
+ HomesteadGasRepriceHash: config.EthereumChainConfig.HomesteadGasRepriceHash.hash,
},
Genesis: config.EthereumGenesis,
- FastSync: true,
+ LightMode: true,
DatabaseCache: config.EthereumDatabaseCache,
NetworkId: config.EthereumNetworkID,
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 {
state.StartingNonce = 1048576 // (2**20)
+ light.StartingNonce = 1048576 // (2**20)
}
if err := stack.Register(func(ctx *node.ServiceContext) (node.Service, error) {
- return eth.New(ctx, ethConf)
+ return les.New(ctx, ethConf)
}); err != nil {
return nil, fmt.Errorf("ethereum init: %v", err)
}