Skip to content

Commit 6b44455

Browse files
fix deactivate activenodes
1 parent d9b1992 commit 6b44455

File tree

5 files changed

+10
-3
lines changed

5 files changed

+10
-3
lines changed

libraries/chain/activenode_evaluator.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ void_result activenode_activity_evaluator::do_apply( const activenode_send_activ
7676
_db.get(op.activenode),
7777
[&]( activenode_object& activenode_object )
7878
{
79-
activenode_object.last_activity = op.timepoint;
79+
activenode_object.last_activity = db().head_block_time();
8080
activenode_object.endpoint = op.endpoint;
8181
});
8282
return void_result();

libraries/chain/db_activenode_schedule.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@ void database::update_activenode_schedule()
5454
const global_property_object& gpo = get_global_properties();
5555
const dynamic_global_property_object& dpo = get_dynamic_global_properties();
5656

57-
if( gpo.current_activenodes.size() != 0 && head_block_num() % gpo.current_activenodes.size() == 0 )
57+
if ( dpo.dynamic_flags & dynamic_global_property_object::maintenance_flag ||
58+
(gpo.current_activenodes.size() != 0 && head_block_num() % gpo.current_activenodes.size() == 0) )
5859
{
5960
modify( aso, [&]( activenode_schedule_object& _aso )
6061
{

libraries/chain/db_maint.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,10 @@ void database::update_current_activenodes()
261261
new_activenodes.push_back(anode.id);
262262
modify(anode, [&]( activenode_object& anode_obj ){
263263
anode_obj.activities_sent = 0;
264+
//for cases when min_blocks_per_node = 0 (can happen because of integer division)
265+
if (anode.is_new) {
266+
anode_obj.is_new = false;
267+
}
264268
});
265269
continue;
266270
}
@@ -270,6 +274,7 @@ void database::update_current_activenodes()
270274
new_activenodes.push_back(anode.id);
271275
modify(anode, [&]( activenode_object& anode_obj ){
272276
anode_obj.is_new = false;
277+
anode_obj.activities_sent = 0;
273278
});
274279
continue;
275280
}

libraries/chain/include/graphene/chain/global_property_object.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ FC_REFLECT_DERIVED( graphene::chain::dynamic_global_property_object, (graphene::
144144
(dynamic_flags)
145145
(last_irreversible_block_num)
146146
(current_scheduling_block_num)
147+
(previous_maintenance_block_num)
147148
)
148149

149150
FC_REFLECT_DERIVED( graphene::chain::global_property_object, (graphene::db::object),

libraries/plugins/activenode/activenode.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ activenode_plugin::send_activity( fc::limited_mutable_variant_object& capture )
229229
}
230230

231231
chain::activenode_send_activity_operation send_activity_operation;
232-
fc::time_point_sec now = fc::time_point::now();
232+
fc::time_point_sec now = db.head_block_time();
233233
send_activity_operation.timepoint = now;
234234
send_activity_operation.endpoint = endpoint;
235235
send_activity_operation.activenode = *_activenode;

0 commit comments

Comments
 (0)