diff options
author | Meng-Ying Yang <garfield@dexon.org> | 2019-01-02 16:32:43 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-04-09 21:32:55 +0800 |
commit | 96b70e6992620e17a1a64663d87d565e09dc1308 (patch) | |
tree | 3181dded4381d769ef15048e1fcd42c4980c77fa | |
parent | b0a5c54715472109072d486f1f95c578efbd3038 (diff) | |
download | dexon-96b70e6992620e17a1a64663d87d565e09dc1308.tar.gz dexon-96b70e6992620e17a1a64663d87d565e09dc1308.tar.zst dexon-96b70e6992620e17a1a64663d87d565e09dc1308.zip |
Indexer plugin extension and custom flags support (#117)
* indexer: ReadOnlyBlockchain returns underlying engine
* indexer: plugin configs support custom flags
-rw-r--r-- | cmd/gdex/main.go | 1 | ||||
-rw-r--r-- | cmd/gdex/usage.go | 1 | ||||
-rw-r--r-- | cmd/utils/flags.go | 6 | ||||
-rw-r--r-- | indexer/blockchain.go | 2 | ||||
-rw-r--r-- | indexer/config.go | 3 |
5 files changed, 13 insertions, 0 deletions
diff --git a/cmd/gdex/main.go b/cmd/gdex/main.go index c054e3ad5..8e08e2d77 100644 --- a/cmd/gdex/main.go +++ b/cmd/gdex/main.go @@ -139,6 +139,7 @@ var ( utils.EVMInterpreterFlag, utils.IndexerEnableFlag, utils.IndexerPluginFlag, + utils.IndexerPluginFlagsFlag, configFileFlag, } diff --git a/cmd/gdex/usage.go b/cmd/gdex/usage.go index 880e447f3..910b6498b 100644 --- a/cmd/gdex/usage.go +++ b/cmd/gdex/usage.go @@ -244,6 +244,7 @@ var AppHelpFlagGroups = []flagGroup{ Flags: []cli.Flag{ utils.IndexerEnableFlag, utils.IndexerPluginFlag, + utils.IndexerPluginFlagsFlag, }, }, { diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 96a642850..28ac6b9c6 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -659,6 +659,11 @@ var ( Usage: "External indexer plugin shared object path", Value: "", } + IndexerPluginFlagsFlag = cli.StringFlag{ + Name: "indexer.plugin-flags", + Usage: "External indexer plugin's flags if needed", + Value: "", + } ) // MakeDataDir retrieves the currently requested data directory, terminating @@ -1305,6 +1310,7 @@ func setIndexerConfig(ctx *cli.Context, cfg *dex.Config) { } cfg.Indexer.Plugin = ctx.GlobalString(IndexerPluginFlag.Name) + cfg.Indexer.PluginFlags = ctx.GlobalString(IndexerPluginFlagsFlag.Name) } // SetDashboardConfig applies dashboard related command line flags to the config. diff --git a/indexer/blockchain.go b/indexer/blockchain.go index a762ef67d..421535184 100644 --- a/indexer/blockchain.go +++ b/indexer/blockchain.go @@ -7,6 +7,7 @@ import ( coreTypes "github.com/dexon-foundation/dexon-consensus/core/types" "github.com/dexon-foundation/dexon/common" + "github.com/dexon-foundation/dexon/consensus" "github.com/dexon-foundation/dexon/core" "github.com/dexon-foundation/dexon/core/state" "github.com/dexon-foundation/dexon/core/types" @@ -24,6 +25,7 @@ type ReadOnlyBlockChain interface { CurrentBlock() *types.Block CurrentFastBlock() *types.Block CurrentHeader() *types.Header + Engine() consensus.Engine GasLimit() uint64 Genesis() *types.Block GetAncestor(common.Hash, uint64, uint64, *uint64) (common.Hash, uint64) diff --git a/indexer/config.go b/indexer/config.go index 3b626272a..396a23b66 100644 --- a/indexer/config.go +++ b/indexer/config.go @@ -11,6 +11,9 @@ type Config struct { // Plugin path for building components. Plugin string + + // PluginFlags for construction if needed. + PluginFlags string } // NewIndexerFromConfig initialize exporter according to given config. |