diff options
-rw-r--r-- | cmd/gdex/main.go | 1 | ||||
-rw-r--r-- | cmd/utils/flags.go | 14 | ||||
-rw-r--r-- | dex/backend.go | 8 | ||||
-rw-r--r-- | dex/config.go | 3 |
4 files changed, 20 insertions, 6 deletions
diff --git a/cmd/gdex/main.go b/cmd/gdex/main.go index 1ca7cd766..9a1ef7bc9 100644 --- a/cmd/gdex/main.go +++ b/cmd/gdex/main.go @@ -98,6 +98,7 @@ var ( utils.MaxPeersFlag, utils.MaxPendingPeersFlag, utils.BlockProposerEnabledFlag, + utils.ConsensusDMomentFlag, utils.MiningEnabledFlag, utils.MinerThreadsFlag, utils.MinerLegacyThreadsFlag, diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 03b0841b0..971ccd349 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -326,6 +326,10 @@ var ( Name: "bp", Usage: "Enable block proposer mode (node set)", } + ConsensusDMomentFlag = cli.Uint64Flag{ + Name: "dmoment", + Usage: "Set the DMoment of DEXON Consensus (unix timestamp)", + } // Miner settings MiningEnabledFlag = cli.BoolFlag{ Name: "mine", @@ -1268,6 +1272,16 @@ func SetDexConfig(ctx *cli.Context, stack *node.Node, cfg *dex.Config) { if gen := ctx.GlobalInt(TrieCacheGenFlag.Name); gen > 0 { state.MaxTrieCacheGen = uint16(gen) } + if ctx.GlobalIsSet(ConsensusDMomentFlag.Name) { + cfg.DMoment = int64(ctx.GlobalUint64(ConsensusDMomentFlag.Name)) + } else { + // TODO(jimmy): default DMoment should be set based on networkId. + now := time.Now() + cfg.DMoment = time.Date( + now.Year(), now.Month(), now.Day(), + now.Hour(), now.Minute(), (now.Second()/5+1)*5, + 0, now.Location()).Unix() + } } // SetDashboardConfig applies dashboard related command line flags to the config. diff --git a/dex/backend.go b/dex/backend.go index 8153dc2ed..5ea30b1a9 100644 --- a/dex/backend.go +++ b/dex/backend.go @@ -166,12 +166,8 @@ func New(ctx *node.ServiceContext, config *Config) (*Dexon, error) { privKey := coreEcdsa.NewPrivateKeyFromECDSA(config.PrivateKey) - // TODO(w): set this correctly in config. - now := time.Now() - dMoment := time.Date( - now.Year(), now.Month(), now.Day(), - now.Hour(), now.Minute(), (now.Second()/5+1)*5, - 0, now.Location()) + dMoment := time.Unix(config.DMoment, int64(0)) + log.Info("DEXON Consensus DMoment", "time", dMoment) dex.consensus = dexCore.NewConsensus(dMoment, dex.app, dex.governance, blockdb.NewDatabase(chainDb), dex.network, privKey, log.Root()) diff --git a/dex/config.go b/dex/config.go index 924e18d53..5f148cc03 100644 --- a/dex/config.go +++ b/dex/config.go @@ -118,4 +118,7 @@ type Config struct { // RPCGasCap is the global gas cap for eth-call variants. RPCGasCap *big.Int `toml:",omitempty"` + + // Dexon options + DMoment int64 } |