Skip to content

Commit 61c5cbb

Browse files
committed
run statediff service when the flag is turned on
1 parent 75dc033 commit 61c5cbb

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

cmd/geth/config.go

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import (
4040
"github.com/ethereum/go-ethereum/metrics"
4141
"github.com/ethereum/go-ethereum/node"
4242
"github.com/ethereum/go-ethereum/params"
43+
"github.com/ethereum/go-ethereum/statediff"
4344
)
4445

4546
var (
@@ -165,7 +166,35 @@ func makeFullNode(ctx *cli.Context) (*node.Node, ethapi.Backend) {
165166
if ctx.GlobalIsSet(utils.OverrideTerminalTotalDifficulty.Name) {
166167
cfg.Eth.OverrideTerminalTotalDifficulty = new(big.Int).SetUint64(ctx.GlobalUint64(utils.OverrideTerminalTotalDifficulty.Name))
167168
}
168-
backend, _ := utils.RegisterEthService(stack, &cfg.Eth, ctx.GlobalBool(utils.CatalystFlag.Name))
169+
backend, eth := utils.RegisterEthService(stack, &cfg.Eth, ctx.GlobalBool(utils.CatalystFlag.Name))
170+
171+
if ctx.GlobalBool(utils.StateDiffFlag.Name) {
172+
var dbParams *statediff.DBParams
173+
if ctx.GlobalIsSet(utils.StateDiffDBFlag.Name) {
174+
dbParams = new(statediff.DBParams)
175+
dbParams.ConnectionURL = ctx.GlobalString(utils.StateDiffDBFlag.Name)
176+
if ctx.GlobalIsSet(utils.StateDiffDBNodeIDFlag.Name) {
177+
dbParams.ID = ctx.GlobalString(utils.StateDiffDBNodeIDFlag.Name)
178+
} else {
179+
utils.Fatalf("Must specify node ID for statediff DB output")
180+
}
181+
if ctx.GlobalIsSet(utils.StateDiffDBClientNameFlag.Name) {
182+
dbParams.ClientName = ctx.GlobalString(utils.StateDiffDBClientNameFlag.Name)
183+
} else {
184+
utils.Fatalf("Must specify client name for statediff DB output")
185+
}
186+
} else {
187+
if ctx.GlobalBool(utils.StateDiffWritingFlag.Name) {
188+
utils.Fatalf("Must pass DB parameters if enabling statediff write loop")
189+
}
190+
}
191+
p := statediff.ServiceParams{
192+
DBParams: dbParams,
193+
EnableWriteLoop: ctx.GlobalBool(utils.StateDiffWritingFlag.Name),
194+
NumWorkers: ctx.GlobalUint(utils.StateDiffWorkersFlag.Name),
195+
}
196+
utils.RegisterStateDiffService(stack, eth, &cfg.Eth, p)
197+
}
169198

170199
// Configure GraphQL if requested
171200
if ctx.GlobalIsSet(utils.GraphQLEnabledFlag.Name) {

0 commit comments

Comments
 (0)