hi, delegates. we have a solution for hot standby.
set up delegate wallet in 2 machines. one is master, and the other is slave.
master run delegate_loop task at seconds 0,10,20 ....
slave run the task with 5 seconds delay, at 5, 15, 25 .....
Normally master will generate block in time, slave will receive the block less than 5 seconds, than slave will not generate block.
If for some reason, master missed generation, slave didn't receive block from master in 5 seconds, slave will generate.
here is the patch for slave program:
--- a/libraries/client/client.cpp
+++ b/libraries/client/client.cpp
@@ -729,6 +729,7 @@ config load_config( const fc::path& datadir )
uint32_t slot_number = blockchain::get_slot_number( now );
time_point_sec next_slot_time = blockchain::get_slot_start_time( slot_number + 1 );
+ next_slot_time += 5;
ilog( "Rescheduling delegate loop for time: ${t}", ("t",next_slot_time) );
time_point scheduled_time = next_slot_time;