diff --git a/libraries/app/application.cpp b/libraries/app/application.cpp index e9e27b43..856aa2d0 100644 --- a/libraries/app/application.cpp +++ b/libraries/app/application.cpp @@ -227,8 +227,16 @@ namespace detail { auto initial_state = [&] { ilog("Initializing database..."); if( _options->count("genesis-json") ) - return fc::json::from_file(_options->at("genesis-json").as()) - .as(); + { + genesis_state_type genesis = fc::json::from_file(_options->at("genesis-json").as()).as(); + if( _options->count("genesis-timestamp") ) + { + genesis.initial_timestamp = graphene::time::now() + genesis.initial_parameters.block_interval + _options->at("genesis-timestamp").as(); + genesis.initial_timestamp -= genesis.initial_timestamp.sec_since_epoch() % genesis.initial_parameters.block_interval; + std::cerr << "Used genesis timestamp: " << genesis.initial_timestamp.to_iso_string() << " (PLEASE RECORD THIS)\n"; + } + return genesis; + } else { std::string egenesis_json; @@ -612,6 +620,7 @@ void application::set_program_options(boost::program_options::options_descriptio "invalid file is found, it will be replaced with an example Genesis State.") ("replay-blockchain", "Rebuild object graph by replaying all blocks") ("resync-blockchain", "Delete all blocks and re-sync with network from scratch") + ("genesis-timestamp", bpo::value(), "Replace timestamp from genesis.json with current time plus this many seconds (experts only!)") ; command_line_options.add(_cli_options); configuration_file_options.add(_cfg_options); diff --git a/libraries/plugins/witness/witness.cpp b/libraries/plugins/witness/witness.cpp index 3b646f97..2c3619fe 100644 --- a/libraries/plugins/witness/witness.cpp +++ b/libraries/plugins/witness/witness.cpp @@ -48,7 +48,7 @@ void new_chain_banner( const graphene::chain::database& db ) if( db.get_slot_at_time( graphene::time::now() ) > 200 ) { std::cerr << "Your genesis seems to have an old timestamp\n" - "Please consider using a script to produce a genesis file with a recent timestamp\n" + "Please consider using the --genesis-timestamp option to give your genesis a recent timestamp\n" "\n" ; }