@@ -59,6 +59,12 @@ pub fn inspect_cli_app<'a, 'b>() -> App<'a, 'b> {
59
59
)
60
60
}
61
61
62
+ pub fn prune_payloads_app < ' a , ' b > ( ) -> App < ' a , ' b > {
63
+ App :: new ( "prune_payloads" )
64
+ . setting ( clap:: AppSettings :: ColoredHelp )
65
+ . about ( "Prune finalized execution payloads" )
66
+ }
67
+
62
68
pub fn cli_app < ' a , ' b > ( ) -> App < ' a , ' b > {
63
69
App :: new ( CMD )
64
70
. visible_aliases ( & [ "db" ] )
@@ -85,6 +91,7 @@ pub fn cli_app<'a, 'b>() -> App<'a, 'b> {
85
91
. subcommand ( migrate_cli_app ( ) )
86
92
. subcommand ( version_cli_app ( ) )
87
93
. subcommand ( inspect_cli_app ( ) )
94
+ . subcommand ( prune_payloads_app ( ) )
88
95
}
89
96
90
97
fn parse_client_config < E : EthSpec > (
@@ -257,6 +264,30 @@ pub fn migrate_db<E: EthSpec>(
257
264
)
258
265
}
259
266
267
+ pub fn prune_payloads < E : EthSpec > (
268
+ client_config : ClientConfig ,
269
+ runtime_context : & RuntimeContext < E > ,
270
+ log : Logger ,
271
+ ) -> Result < ( ) , Error > {
272
+ let spec = & runtime_context. eth2_config . spec ;
273
+ let hot_path = client_config. get_db_path ( ) ;
274
+ let cold_path = client_config. get_freezer_db_path ( ) ;
275
+
276
+ let db = HotColdDB :: < E , LevelDB < E > , LevelDB < E > > :: open (
277
+ & hot_path,
278
+ & cold_path,
279
+ |_, _, _| Ok ( ( ) ) ,
280
+ client_config. store ,
281
+ spec. clone ( ) ,
282
+ log,
283
+ ) ?;
284
+
285
+ // If we're trigging a prune manually then ignore the check on the split's parent that bails
286
+ // out early.
287
+ let force = true ;
288
+ db. try_prune_execution_payloads ( force)
289
+ }
290
+
260
291
/// Run the database manager, returning an error string if the operation did not succeed.
261
292
pub fn run < T : EthSpec > ( cli_args : & ArgMatches < ' _ > , mut env : Environment < T > ) -> Result < ( ) , String > {
262
293
let client_config = parse_client_config ( cli_args, & env) ?;
@@ -273,6 +304,7 @@ pub fn run<T: EthSpec>(cli_args: &ArgMatches<'_>, mut env: Environment<T>) -> Re
273
304
let inspect_config = parse_inspect_config ( cli_args) ?;
274
305
inspect_db ( inspect_config, client_config, & context, log)
275
306
}
307
+ ( "prune_payloads" , Some ( _) ) => prune_payloads ( client_config, & context, log) ,
276
308
_ => {
277
309
return Err ( "Unknown subcommand, for help `lighthouse database_manager --help`" . into ( ) )
278
310
}
0 commit comments