aboutsummaryrefslogtreecommitdiffstats
path: root/dex/backend.go
diff options
context:
space:
mode:
authorMeng-Ying Yang <garfield@dexon.org>2018-12-27 19:22:41 +0800
committerWei-Ning Huang <w@dexon.org>2019-04-09 21:32:55 +0800
commite846701f0556712bcc15f676793f300dbbaf27b4 (patch)
tree0c7cb5e05d01409cc59ea374ee574488672ca81e /dex/backend.go
parent4c5f086c60d805146f7938bd6b07775986c868cc (diff)
downloaddexon-e846701f0556712bcc15f676793f300dbbaf27b4.tar
dexon-e846701f0556712bcc15f676793f300dbbaf27b4.tar.gz
dexon-e846701f0556712bcc15f676793f300dbbaf27b4.tar.bz2
dexon-e846701f0556712bcc15f676793f300dbbaf27b4.tar.lz
dexon-e846701f0556712bcc15f676793f300dbbaf27b4.tar.xz
dexon-e846701f0556712bcc15f676793f300dbbaf27b4.tar.zst
dexon-e846701f0556712bcc15f676793f300dbbaf27b4.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 'dex/backend.go')
-rw-r--r--dex/backend.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/dex/backend.go b/dex/backend.go
index 8fe38cd45..7b1f4905d 100644
--- a/dex/backend.go
+++ b/dex/backend.go
@@ -33,6 +33,7 @@ import (
"github.com/dexon-foundation/dexon/eth/gasprice"
"github.com/dexon-foundation/dexon/ethdb"
"github.com/dexon-foundation/dexon/event"
+ "github.com/dexon-foundation/dexon/indexer"
"github.com/dexon-foundation/dexon/internal/ethapi"
"github.com/dexon-foundation/dexon/log"
"github.com/dexon-foundation/dexon/node"
@@ -75,6 +76,8 @@ type Dexon struct {
networkID uint64
netRPCService *ethapi.PublicNetAPI
+
+ indexer indexer.Indexer
}
func New(ctx *node.ServiceContext, config *Config) (*Dexon, error) {
@@ -132,6 +135,14 @@ func New(ctx *node.ServiceContext, config *Config) (*Dexon, error) {
}
dex.bloomIndexer.Start(dex.blockchain)
+ if config.Indexer.Enable {
+ dex.indexer = indexer.NewIndexerFromConfig(
+ indexer.NewROBlockChain(dex.blockchain),
+ config.Indexer,
+ )
+ dex.indexer.Start()
+ }
+
if config.TxPool.Journal != "" {
config.TxPool.Journal = ctx.ResolvePath(config.TxPool.Journal)
}
@@ -241,6 +252,9 @@ func (s *Dexon) Start(srvr *p2p.Server) error {
func (s *Dexon) Stop() error {
s.bp.Stop()
s.app.Stop()
+ if s.indexer != nil {
+ s.indexer.Stop()
+ }
return nil
}