@@ -43,17 +43,23 @@ var RunCmd = &cobra.Command{
4343 Aliases : []string {"node" , "run" },
4444 Short : "Run the evolve node with EVM execution client" ,
4545 RunE : func (cmd * cobra.Command , args []string ) error {
46- executor , err := createExecutionClient (cmd )
46+ nodeConfig , err := rollcmd . ParseConfig (cmd )
4747 if err != nil {
4848 return err
4949 }
5050
51- nodeConfig , err := rollcmd .ParseConfig (cmd )
51+ logger := rollcmd .SetupLogger (nodeConfig .Log )
52+
53+ // Create datastore first - needed by execution client for ExecMeta tracking
54+ datastore , err := store .NewDefaultKVStore (nodeConfig .RootDir , nodeConfig .DBPath , evmDbName )
5255 if err != nil {
5356 return err
5457 }
5558
56- logger := rollcmd .SetupLogger (nodeConfig .Log )
59+ executor , err := createExecutionClient (cmd , datastore )
60+ if err != nil {
61+ return err
62+ }
5763
5864 blobClient , err := blobrpc .NewClient (context .Background (), nodeConfig .DA .Address , nodeConfig .DA .AuthToken , "" )
5965 if err != nil {
@@ -72,11 +78,6 @@ var RunCmd = &cobra.Command{
7278
7379 logger .Info ().Str ("headerNamespace" , headerNamespace .HexString ()).Str ("dataNamespace" , dataNamespace .HexString ()).Msg ("namespaces" )
7480
75- datastore , err := store .NewDefaultKVStore (nodeConfig .RootDir , nodeConfig .DBPath , evmDbName )
76- if err != nil {
77- return err
78- }
79-
8081 genesisPath := filepath .Join (filepath .Dir (nodeConfig .ConfigPath ()), "genesis.json" )
8182 genesis , err := genesispkg .LoadGenesis (genesisPath )
8283 if err != nil {
@@ -88,7 +89,7 @@ var RunCmd = &cobra.Command{
8889 }
8990
9091 // Create sequencer based on configuration
91- sequencer , err := createSequencer (context . Background (), logger , datastore , nodeConfig , genesis , daClient )
92+ sequencer , err := createSequencer (logger , datastore , nodeConfig , genesis , daClient )
9293 if err != nil {
9394 return err
9495 }
@@ -154,22 +155,20 @@ func init() {
154155// If BasedSequencer is enabled, it creates a based sequencer that fetches transactions from DA.
155156// Otherwise, it creates a single (traditional) sequencer.
156157func createSequencer (
157- ctx context.Context ,
158158 logger zerolog.Logger ,
159159 datastore datastore.Batching ,
160160 nodeConfig config.Config ,
161161 genesis genesis.Genesis ,
162162 daClient block.FullDAClient ,
163163) (coresequencer.Sequencer , error ) {
164- fiRetriever := block .NewForcedInclusionRetriever (daClient , genesis , logger )
165-
166164 if nodeConfig .Node .BasedSequencer {
167165 // Based sequencer mode - fetch transactions only from DA
168166 if ! nodeConfig .Node .Aggregator {
169167 return nil , fmt .Errorf ("based sequencer mode requires aggregator mode to be enabled" )
170168 }
171169
172- basedSeq , err := based .NewBasedSequencer (ctx , fiRetriever , datastore , genesis , logger )
170+ fiRetriever := block .NewForcedInclusionRetriever (daClient , logger , genesis .DAStartHeight , genesis .DAEpochForcedInclusion )
171+ basedSeq , err := based .NewBasedSequencer (fiRetriever , datastore , genesis , logger )
173172 if err != nil {
174173 return nil , fmt .Errorf ("failed to create based sequencer: %w" , err )
175174 }
@@ -183,15 +182,12 @@ func createSequencer(
183182 }
184183
185184 sequencer , err := single .NewSequencer (
186- ctx ,
187185 logger ,
188186 datastore ,
189187 daClient ,
190188 []byte (genesis .ChainID ),
191189 nodeConfig .Node .BlockTime .Duration ,
192- nodeConfig .Node .Aggregator ,
193190 1000 ,
194- fiRetriever ,
195191 genesis ,
196192 )
197193 if err != nil {
@@ -205,7 +201,7 @@ func createSequencer(
205201 return sequencer , nil
206202}
207203
208- func createExecutionClient (cmd * cobra.Command ) (execution.Executor , error ) {
204+ func createExecutionClient (cmd * cobra.Command , db datastore. Batching ) (execution.Executor , error ) {
209205 // Read execution client parameters from flags
210206 ethURL , err := cmd .Flags ().GetString (evm .FlagEvmEthURL )
211207 if err != nil {
@@ -250,7 +246,7 @@ func createExecutionClient(cmd *cobra.Command) (execution.Executor, error) {
250246 genesisHash := common .HexToHash (genesisHashStr )
251247 feeRecipient := common .HexToAddress (feeRecipientStr )
252248
253- return evm .NewEngineExecutionClient (ethURL , engineURL , jwtSecret , genesisHash , feeRecipient )
249+ return evm .NewEngineExecutionClient (ethURL , engineURL , jwtSecret , genesisHash , feeRecipient , db )
254250}
255251
256252// addFlags adds flags related to the EVM execution client
0 commit comments