@@ -51,11 +51,6 @@ const (
5151 // by default before being forcefully aborted.
5252 defaultTraceTimeout = 5 * time .Second
5353
54- // defaultTraceReexec is the number of blocks the tracer is willing to go back
55- // and reexecute to produce missing historical state necessary to run a specific
56- // trace.
57- defaultTraceReexec = uint64 (128 )
58-
5954 // defaultTracechainMemLimit is the size of the triedb, at which traceChain
6055 // switches over and tries to use a disk-backed database instead of building
6156 // on top of memory.
@@ -89,8 +84,8 @@ type Backend interface {
8984 ChainConfig () * params.ChainConfig
9085 Engine () consensus.Engine
9186 ChainDb () ethdb.Database
92- StateAtBlock (ctx context.Context , block * types.Block , reexec uint64 , base * state.StateDB , readOnly bool , preferDisk bool ) (* state.StateDB , StateReleaseFunc , error )
93- StateAtTransaction (ctx context.Context , block * types.Block , txIndex int , reexec uint64 ) (* types.Transaction , vm.BlockContext , * state.StateDB , StateReleaseFunc , error )
87+ StateAtBlock (ctx context.Context , block * types.Block , base * state.StateDB , readOnly bool , preferDisk bool ) (* state.StateDB , StateReleaseFunc , error )
88+ StateAtTransaction (ctx context.Context , block * types.Block , txIndex int ) (* types.Transaction , vm.BlockContext , * state.StateDB , StateReleaseFunc , error )
9489}
9590
9691// API is the collection of tracing APIs exposed over the private debugging endpoint.
@@ -156,7 +151,6 @@ type TraceConfig struct {
156151 * logger.Config
157152 Tracer * string
158153 Timeout * string
159- Reexec * uint64
160154 // Config specific to given tracer. Note struct logger
161155 // config are historically embedded in main object.
162156 TracerConfig json.RawMessage
@@ -174,7 +168,6 @@ type TraceCallConfig struct {
174168// StdTraceConfig holds extra parameters to standard-json trace functions.
175169type StdTraceConfig struct {
176170 logger.Config
177- Reexec * uint64
178171 TxHash common.Hash
179172}
180173
@@ -245,10 +238,6 @@ func (api *API) TraceChain(ctx context.Context, start, end rpc.BlockNumber, conf
245238// transaction, dependent on the requested tracer.
246239// The tracing procedure should be aborted in case the closed signal is received.
247240func (api * API ) traceChain (start , end * types.Block , config * TraceConfig , closed <- chan error ) chan * blockTraceResult {
248- reexec := defaultTraceReexec
249- if config != nil && config .Reexec != nil {
250- reexec = * config .Reexec
251- }
252241 blocks := int (end .NumberU64 () - start .NumberU64 ())
253242 threads := runtime .NumCPU ()
254243 if threads > blocks {
@@ -374,7 +363,7 @@ func (api *API) traceChain(start, end *types.Block, config *TraceConfig, closed
374363 s1 , s2 , s3 := statedb .Database ().TrieDB ().Size ()
375364 preferDisk = s1 + s2 + s3 > defaultTracechainMemLimit
376365 }
377- statedb , release , err = api .backend .StateAtBlock (ctx , block , reexec , statedb , false , preferDisk )
366+ statedb , release , err = api .backend .StateAtBlock (ctx , block , statedb , false , preferDisk )
378367 if err != nil {
379368 failed = err
380369 break
@@ -522,11 +511,7 @@ func (api *API) IntermediateRoots(ctx context.Context, hash common.Hash, config
522511 if err != nil {
523512 return nil , err
524513 }
525- reexec := defaultTraceReexec
526- if config != nil && config .Reexec != nil {
527- reexec = * config .Reexec
528- }
529- statedb , release , err := api .backend .StateAtBlock (ctx , parent , reexec , nil , true , false )
514+ statedb , release , err := api .backend .StateAtBlock (ctx , parent , nil , true , false )
530515 if err != nil {
531516 return nil , err
532517 }
@@ -591,11 +576,7 @@ func (api *API) traceBlock(ctx context.Context, block *types.Block, config *Trac
591576 if err != nil {
592577 return nil , err
593578 }
594- reexec := defaultTraceReexec
595- if config != nil && config .Reexec != nil {
596- reexec = * config .Reexec
597- }
598- statedb , release , err := api .backend .StateAtBlock (ctx , parent , reexec , nil , true , false )
579+ statedb , release , err := api .backend .StateAtBlock (ctx , parent , nil , true , false )
599580 if err != nil {
600581 return nil , err
601582 }
@@ -743,11 +724,7 @@ func (api *API) standardTraceBlockToFile(ctx context.Context, block *types.Block
743724 if err != nil {
744725 return nil , err
745726 }
746- reexec := defaultTraceReexec
747- if config != nil && config .Reexec != nil {
748- reexec = * config .Reexec
749- }
750- statedb , release , err := api .backend .StateAtBlock (ctx , parent , reexec , nil , true , false )
727+ statedb , release , err := api .backend .StateAtBlock (ctx , parent , nil , true , false )
751728 if err != nil {
752729 return nil , err
753730 }
@@ -877,15 +854,11 @@ func (api *API) TraceTransaction(ctx context.Context, hash common.Hash, config *
877854 if blockNumber == 0 {
878855 return nil , errors .New ("genesis is not traceable" )
879856 }
880- reexec := defaultTraceReexec
881- if config != nil && config .Reexec != nil {
882- reexec = * config .Reexec
883- }
884857 block , err := api .blockByNumberAndHash (ctx , rpc .BlockNumber (blockNumber ), blockHash )
885858 if err != nil {
886859 return nil , err
887860 }
888- tx , vmctx , statedb , release , err := api .backend .StateAtTransaction (ctx , block , int (index ), reexec )
861+ tx , vmctx , statedb , release , err := api .backend .StateAtTransaction (ctx , block , int (index ))
889862 if err != nil {
890863 return nil , err
891864 }
@@ -939,15 +912,10 @@ func (api *API) TraceCall(ctx context.Context, args ethapi.TransactionArgs, bloc
939912 return nil , err
940913 }
941914 // try to recompute the state
942- reexec := defaultTraceReexec
943- if config != nil && config .Reexec != nil {
944- reexec = * config .Reexec
945- }
946-
947915 if config != nil && config .TxIndex != nil {
948- _ , _ , statedb , release , err = api .backend .StateAtTransaction (ctx , block , int (* config .TxIndex ), reexec )
916+ _ , _ , statedb , release , err = api .backend .StateAtTransaction (ctx , block , int (* config .TxIndex ))
949917 } else {
950- statedb , release , err = api .backend .StateAtBlock (ctx , block , reexec , nil , true , false )
918+ statedb , release , err = api .backend .StateAtBlock (ctx , block , nil , true , false )
951919 }
952920 if err != nil {
953921 return nil , err
0 commit comments