diff options
author | Meng-Ying Yang <garfield@dexon.org> | 2018-12-27 19:22:41 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-03-12 12:19:09 +0800 |
commit | d124aec39f0e346b67434795b433797528084a57 (patch) | |
tree | 1b4038f2eca3cbb4b5c04391980a64d00a13134e /cmd | |
parent | 37e5d4b0f6a3ab072a8d41e3414048f8546df237 (diff) | |
download | dexon-d124aec39f0e346b67434795b433797528084a57.tar dexon-d124aec39f0e346b67434795b433797528084a57.tar.gz dexon-d124aec39f0e346b67434795b433797528084a57.tar.bz2 dexon-d124aec39f0e346b67434795b433797528084a57.tar.lz dexon-d124aec39f0e346b67434795b433797528084a57.tar.xz dexon-d124aec39f0e346b67434795b433797528084a57.tar.zst dexon-d124aec39f0e346b67434795b433797528084a57.zip |
indexer: support data exporting/forwarding (#103)
To support more effective and flexible blockchain info exploring, we add
`indexer` package, defines the flow of indexer dameon, and integrate
into dex.Dexon fullnode.
For more export options, we use Golang built-in `plugin` package to
support mulitple implementations.
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/gdex/main.go | 2 | ||||
-rw-r--r-- | cmd/gdex/usage.go | 7 | ||||
-rw-r--r-- | cmd/utils/flags.go | 23 |
3 files changed, 32 insertions, 0 deletions
diff --git a/cmd/gdex/main.go b/cmd/gdex/main.go index f4e9bf994..2579e6f61 100644 --- a/cmd/gdex/main.go +++ b/cmd/gdex/main.go @@ -137,6 +137,8 @@ var ( utils.GpoPercentileFlag, utils.EWASMInterpreterFlag, utils.EVMInterpreterFlag, + utils.IndexerEnableFlag, + utils.IndexerPluginFlag, configFileFlag, } diff --git a/cmd/gdex/usage.go b/cmd/gdex/usage.go index c19991928..23afaa933 100644 --- a/cmd/gdex/usage.go +++ b/cmd/gdex/usage.go @@ -239,6 +239,13 @@ var AppHelpFlagGroups = []flagGroup{ }, }, { + Name: "INDEXER", + Flags: []cli.Flag{ + utils.IndexerEnableFlag, + utils.IndexerPluginFlag, + }, + }, + { Name: "WHISPER (EXPERIMENTAL)", Flags: whisperFlags, }, diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index da820a544..ee5a3be6d 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -643,6 +643,17 @@ var ( Usage: "External EVM configuration (default = built-in interpreter)", Value: "", } + + // Data sources options. + IndexerEnableFlag = cli.BoolFlag{ + Name: "indexer", + Usage: "Enable indexer", + } + IndexerPluginFlag = cli.StringFlag{ + Name: "indexer.plugin", + Usage: "External indexer plugin shared object path", + Value: "", + } ) // MakeDataDir retrieves the currently requested data directory, terminating @@ -1274,6 +1285,18 @@ func SetDexConfig(ctx *cli.Context, stack *node.Node, cfg *dex.Config) { now.Hour(), now.Minute(), (now.Second()/5+1)*5, 0, now.Location()).Unix() } + + // Set indexer config. + setIndexerConfig(ctx, cfg) +} + +func setIndexerConfig(ctx *cli.Context, cfg *dex.Config) { + cfg.Indexer.Enable = ctx.GlobalBool(IndexerEnableFlag.Name) + if !cfg.Indexer.Enable { + return + } + + cfg.Indexer.Plugin = ctx.GlobalString(IndexerPluginFlag.Name) } // SetDashboardConfig applies dashboard related command line flags to the config. |