@@ -890,22 +890,46 @@ var (
890
890
}
891
891
892
892
// DA syncing settings
893
- DASyncEnabledFlag = & cli.BoolFlag {
893
+ DASyncEnabledFlag = cli.BoolFlag {
894
894
Name : "da.sync" ,
895
895
Usage : "Enable node syncing from DA" ,
896
896
}
897
- DABlobScanAPIEndpointFlag = & cli.StringFlag {
897
+ DABlobScanAPIEndpointFlag = cli.StringFlag {
898
898
Name : "da.blob.blobscan" ,
899
899
Usage : "BlobScan blob API endpoint" ,
900
900
}
901
- DABlockNativeAPIEndpointFlag = & cli.StringFlag {
901
+ DABlockNativeAPIEndpointFlag = cli.StringFlag {
902
902
Name : "da.blob.blocknative" ,
903
903
Usage : "BlockNative blob API endpoint" ,
904
904
}
905
- DABeaconNodeAPIEndpointFlag = & cli.StringFlag {
905
+ DABeaconNodeAPIEndpointFlag = cli.StringFlag {
906
906
Name : "da.blob.beaconnode" ,
907
907
Usage : "Beacon node API endpoint" ,
908
908
}
909
+ DARecoveryModeFlag = cli.BoolFlag {
910
+ Name : "da.recovery" ,
911
+ Usage : "Enable recovery mode for DA syncing" ,
912
+ }
913
+ DARecoveryInitialL1BlockFlag = cli.Uint64Flag {
914
+ Name : "da.recovery.initiall1block" ,
915
+ Usage : "Initial L1 block to start recovery from" ,
916
+ }
917
+ DARecoveryInitialBatchFlag = cli.Uint64Flag {
918
+ Name : "da.recovery.initialbatch" ,
919
+ Usage : "Initial batch to start recovery from" ,
920
+ }
921
+ DARecoverySignBlocksFlag = cli.BoolFlag {
922
+ Name : "da.recovery.signblocks" ,
923
+ Usage : "Sign blocks during recovery (requires correct Clique signer key and history of blocks with Clique signatures)" ,
924
+ }
925
+ DARecoveryL2EndBlockFlag = cli.Uint64Flag {
926
+ Name : "da.recovery.l2endblock" ,
927
+ Usage : "End L2 block to recover to" ,
928
+ }
929
+ DARecoveryProduceBlocksFlag = cli.BoolFlag {
930
+ Name : "da.recovery.produceblocks" ,
931
+ Usage : "Produce unsigned blocks after L1 recovery for permissionless batch submission" ,
932
+ }
909
933
)
910
934
911
935
// MakeDataDir retrieves the currently requested data directory, terminating
@@ -1658,6 +1682,24 @@ func setDA(ctx *cli.Context, cfg *ethconfig.Config) {
1658
1682
if ctx .IsSet (DABeaconNodeAPIEndpointFlag .Name ) {
1659
1683
cfg .DA .BeaconNodeAPIEndpoint = ctx .String (DABeaconNodeAPIEndpointFlag .Name )
1660
1684
}
1685
+ if ctx .IsSet (DARecoveryModeFlag .Name ) {
1686
+ cfg .DA .RecoveryMode = ctx .Bool (DARecoveryModeFlag .Name )
1687
+ }
1688
+ if ctx .IsSet (DARecoveryInitialL1BlockFlag .Name ) {
1689
+ cfg .DA .InitialL1Block = ctx .Uint64 (DARecoveryInitialL1BlockFlag .Name )
1690
+ }
1691
+ if ctx .IsSet (DARecoveryInitialBatchFlag .Name ) {
1692
+ cfg .DA .InitialBatch = ctx .Uint64 (DARecoveryInitialBatchFlag .Name )
1693
+ }
1694
+ if ctx .IsSet (DARecoverySignBlocksFlag .Name ) {
1695
+ cfg .DA .SignBlocks = ctx .Bool (DARecoverySignBlocksFlag .Name )
1696
+ }
1697
+ if ctx .IsSet (DARecoveryL2EndBlockFlag .Name ) {
1698
+ cfg .DA .L2EndBlock = ctx .Uint64 (DARecoveryL2EndBlockFlag .Name )
1699
+ }
1700
+ if ctx .IsSet (DARecoveryProduceBlocksFlag .Name ) {
1701
+ cfg .DA .ProduceBlocks = ctx .Bool (DARecoveryProduceBlocksFlag .Name )
1702
+ }
1661
1703
}
1662
1704
1663
1705
func setMaxBlockRange (ctx * cli.Context , cfg * ethconfig.Config ) {
0 commit comments