SON206 - Plugin SON Heartbeat changes, stub testing and changes
This commit is contained in:
parent
e7e2be7146
commit
71ade136cc
2 changed files with 17 additions and 3 deletions
|
|
@ -101,4 +101,8 @@ FC_REFLECT_DERIVED( graphene::chain::son_statistics_object,
|
||||||
(graphene::db::object),
|
(graphene::db::object),
|
||||||
(owner)
|
(owner)
|
||||||
(txs_signed)
|
(txs_signed)
|
||||||
|
(total_downtime)
|
||||||
|
(current_interval_downtime)
|
||||||
|
(last_down_timestamp)
|
||||||
|
(last_active_timestamp)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -147,12 +147,12 @@ void peerplays_sidechain_plugin::schedule_heartbeat_loop()
|
||||||
|
|
||||||
void peerplays_sidechain_plugin::heartbeat_loop()
|
void peerplays_sidechain_plugin::heartbeat_loop()
|
||||||
{
|
{
|
||||||
ilog("peerplays_sidechain_plugin: sending heartbeat");
|
|
||||||
chain::database& d = database();
|
chain::database& d = database();
|
||||||
chain::son_id_type son_id = *(_sons.begin());
|
chain::son_id_type son_id = *(_sons.begin());
|
||||||
const chain::global_property_object& gpo = d.get_global_properties();
|
const chain::global_property_object& gpo = d.get_global_properties();
|
||||||
auto it = std::find(gpo.active_sons.begin(), gpo.active_sons.end(), son_id);
|
auto it = std::find(gpo.active_sons.begin(), gpo.active_sons.end(), son_id);
|
||||||
if(it != gpo.active_sons.end()) {
|
if(it != gpo.active_sons.end()) {
|
||||||
|
ilog("peerplays_sidechain_plugin: sending heartbeat");
|
||||||
chain::son_heartbeat_operation op;
|
chain::son_heartbeat_operation op;
|
||||||
const auto& idx = d.get_index_type<chain::son_index>().indices().get<by_id>();
|
const auto& idx = d.get_index_type<chain::son_index>().indices().get<by_id>();
|
||||||
auto son_obj = idx.find( son_id );
|
auto son_obj = idx.find( son_id );
|
||||||
|
|
@ -160,10 +160,20 @@ void peerplays_sidechain_plugin::heartbeat_loop()
|
||||||
op.son_id = son_id;
|
op.son_id = son_id;
|
||||||
op.ts = fc::time_point::now() + fc::seconds(0);
|
op.ts = fc::time_point::now() + fc::seconds(0);
|
||||||
chain::signed_transaction trx = d.create_signed_transaction(_private_keys.begin()->second, op);
|
chain::signed_transaction trx = d.create_signed_transaction(_private_keys.begin()->second, op);
|
||||||
fc::async( [this,trx](){ p2p_node().broadcast(net::trx_message(trx)); } );
|
fc::future<bool> fut = fc::async( [&](){
|
||||||
|
try {
|
||||||
|
d.push_transaction(trx);
|
||||||
|
p2p_node().broadcast(net::trx_message(trx));
|
||||||
|
return true;
|
||||||
|
} catch(fc::exception e){
|
||||||
|
ilog("peerplays_sidechain_plugin: sending heartbeat failed with exception ${e}",("e", e.what()));
|
||||||
|
std::cout << e.what() << std::endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
fut.wait(fc::seconds(10));
|
||||||
}
|
}
|
||||||
schedule_heartbeat_loop();
|
schedule_heartbeat_loop();
|
||||||
}
|
}
|
||||||
|
|
||||||
} } // graphene::peerplays_sidechain
|
} } // graphene::peerplays_sidechain
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue