diff --git a/cmd/geth/chaincmd.go b/cmd/geth/chaincmd.go index d346b01ff7..6dc58f4af6 100644 --- a/cmd/geth/chaincmd.go +++ b/cmd/geth/chaincmd.go @@ -111,6 +111,7 @@ The dumpgenesis command dumps the genesis block configuration in JSON format to utils.HeimdallgRPCAddressFlag, utils.RunHeimdallFlag, utils.RunHeimdallArgsFlag, + utils.UseHeimdallAppFlag, }, Category: "BLOCKCHAIN COMMANDS", Description: ` diff --git a/cmd/utils/bor_flags.go b/cmd/utils/bor_flags.go index 13863fda0e..f3e5d44668 100644 --- a/cmd/utils/bor_flags.go +++ b/cmd/utils/bor_flags.go @@ -41,7 +41,7 @@ var ( // RunHeimdallFlag flag for running heimdall internally from bor RunHeimdallFlag = cli.BoolFlag{ Name: "bor.runheimdall", - Usage: "Run Heimdall service as a child process [ WIP ]", + Usage: "Run Heimdall service as a child process", } RunHeimdallArgsFlag = cli.StringFlag{ @@ -50,6 +50,12 @@ var ( Value: "", } + // UseHeimdallApp flag for using internall heimdall app to fetch data + UseHeimdallAppFlag = cli.BoolFlag{ + Name: "bor.useheimdallapp", + Usage: "Use child heimdall process to fetch data, Only works when bor.runheimdall is true", + } + // BorFlags all bor related flags BorFlags = []cli.Flag{ HeimdallURLFlag, @@ -57,6 +63,7 @@ var ( HeimdallgRPCAddressFlag, RunHeimdallFlag, RunHeimdallArgsFlag, + UseHeimdallAppFlag, } ) @@ -82,6 +89,7 @@ func SetBorConfig(ctx *cli.Context, cfg *eth.Config) { cfg.HeimdallgRPCAddress = ctx.GlobalString(HeimdallgRPCAddressFlag.Name) cfg.RunHeimdall = ctx.GlobalBool(RunHeimdallFlag.Name) cfg.RunHeimdallArgs = ctx.GlobalString(RunHeimdallArgsFlag.Name) + cfg.UseHeimdallApp = ctx.GlobalBool(UseHeimdallAppFlag.Name) } // CreateBorEthereum Creates bor ethereum object from eth.Config diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 7641f8091f..1772913c0e 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -2037,6 +2037,7 @@ func MakeChain(ctx *cli.Context, stack *node.Node) (chain *core.BlockChain, chai HeimdallgRPCAddress: ctx.GlobalString(HeimdallgRPCAddressFlag.Name), RunHeimdall: ctx.GlobalBool(RunHeimdallFlag.Name), RunHeimdallArgs: ctx.GlobalString(RunHeimdallArgsFlag.Name), + UseHeimdallApp: ctx.GlobalBool(UseHeimdallAppFlag.Name), }) engine = ethereum.Engine() } else { diff --git a/eth/ethconfig/config.go b/eth/ethconfig/config.go index 191f943a0e..d397eb4d2e 100644 --- a/eth/ethconfig/config.go +++ b/eth/ethconfig/config.go @@ -228,6 +228,9 @@ type Config struct { // Arguments to pass to heimdall service RunHeimdallArgs string + // Use child heimdall process to fetch data, Only works when RunHeimdall is true + UseHeimdallApp bool + // Bor logs flag BorLogs bool @@ -259,7 +262,7 @@ func CreateConsensusEngine(stack *node.Node, chainConfig *params.ChainConfig, et return bor.New(chainConfig, db, blockchainAPI, spanner, nil, genesisContractsClient) } else { var heimdallClient bor.IHeimdallClient - if ethConfig.RunHeimdall { + if ethConfig.RunHeimdall && ethConfig.UseHeimdallApp { heimdallClient = heimdallapp.NewHeimdallAppClient() } else if ethConfig.HeimdallgRPCAddress != "" { heimdallClient = heimdallgrpc.NewHeimdallGRPCClient(ethConfig.HeimdallgRPCAddress) diff --git a/internal/cli/server/config.go b/internal/cli/server/config.go index 1a526d39ce..ac283fdedc 100644 --- a/internal/cli/server/config.go +++ b/internal/cli/server/config.go @@ -167,6 +167,9 @@ type HeimdallConfig struct { // RunHeimdal args are the arguments to run heimdall with RunHeimdallArgs string `hcl:"bor.runheimdallargs,optional" toml:"bor.runheimdallargs,optional"` + + // UseHeimdallApp is used to fetch data from heimdall app when running heimdall as a child process + UseHeimdallApp bool `hcl:"bor.useheimdallapp,optional" toml:"bor.useheimdallapp,optional"` } type TxPoolConfig struct { @@ -672,6 +675,7 @@ func (c *Config) buildEth(stack *node.Node, accountManager *accounts.Manager) (* n.HeimdallgRPCAddress = c.Heimdall.GRPCAddress n.RunHeimdall = c.Heimdall.RunHeimdall n.RunHeimdallArgs = c.Heimdall.RunHeimdallArgs + n.UseHeimdallApp = c.Heimdall.UseHeimdallApp // gas price oracle { diff --git a/internal/cli/server/flags.go b/internal/cli/server/flags.go index dfe6ed504e..98f92f254f 100644 --- a/internal/cli/server/flags.go +++ b/internal/cli/server/flags.go @@ -94,7 +94,7 @@ func (c *Command) Flags() *flagset.Flagset { }) f.BoolFlag(&flagset.BoolFlag{ Name: "bor.runheimdall", - Usage: "Run Heimdall service as a child process [ WIP ]", + Usage: "Run Heimdall service as a child process", Value: &c.cliConfig.Heimdall.RunHeimdall, Default: c.cliConfig.Heimdall.RunHeimdall, }) @@ -104,6 +104,12 @@ func (c *Command) Flags() *flagset.Flagset { Value: &c.cliConfig.Heimdall.RunHeimdallArgs, Default: c.cliConfig.Heimdall.RunHeimdallArgs, }) + f.BoolFlag(&flagset.BoolFlag{ + Name: "bor.useheimdallapp", + Usage: "Use child heimdall process to fetch data, Only works when bor.runheimdall is true", + Value: &c.cliConfig.Heimdall.UseHeimdallApp, + Default: c.cliConfig.Heimdall.UseHeimdallApp, + }) // txpool options f.SliceStringFlag(&flagset.SliceStringFlag{