@@ -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
4546var (
@@ -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