shuffled witnesses repaired

This commit is contained in:
Roman Olearski 2017-04-19 21:47:54 +02:00
parent 90ec694446
commit a8244963e7
3 changed files with 14 additions and 15 deletions

View file

@ -789,6 +789,7 @@ void database::init_genesis(const genesis_state_type& genesis_state)
#endif
create<witness_schedule_object>([&](witness_schedule_object& _wso)
{
// for scheduled
memset(_wso.rng_seed.begin(), 0, _wso.rng_seed.size());
witness_scheduler_rng rng(_wso.rng_seed.begin(), GRAPHENE_NEAR_SCHEDULE_CTR_IV);
@ -805,6 +806,10 @@ void database::init_genesis(const genesis_state_type& genesis_state)
_wso.last_scheduling_block = 0;
_wso.recent_slots_filled = fc::uint128::max_value();
// for shuffled
for( const witness_id_type& wid : get_global_properties().active_witnesses )
_wso.current_shuffled_witnesses.push_back( wid );
});
assert( wso.id == witness_schedule_id_type() );
@ -814,11 +819,11 @@ void database::init_genesis(const genesis_state_type& genesis_state)
});
// Create witness scheduler
create<witness_schedule_object>([&]( witness_schedule_object& wso )
{
for( const witness_id_type& wid : get_global_properties().active_witnesses )
wso.current_shuffled_witnesses.push_back( wid );
});
//create<witness_schedule_object>([&]( witness_schedule_object& wso )
//{
// for( const witness_id_type& wid : get_global_properties().active_witnesses )
// wso.current_shuffled_witnesses.push_back( wid );
//});
// Create FBA counters
create<fba_accumulator_object>([&]( fba_accumulator_object& acc )

View file

@ -125,7 +125,9 @@ fc::time_point_sec database::get_slot_time(uint32_t slot_num)const
uint32_t database::get_slot_at_time(fc::time_point_sec when)const
{
fc::time_point_sec first_slot_time = get_slot_time( 1 );
std::cout << "romek " << when.to_iso_string() << " " << first_slot_time.to_iso_string() << "\n";
#ifndef NDEBUG
std::cout << "@get_slot_at_time " << when.to_iso_string() << " " << first_slot_time.to_iso_string() << "\n";
#endif
if( when < first_slot_time )
return 0;
return (when - first_slot_time).to_seconds() / block_interval() + 1;

View file

@ -32,7 +32,6 @@ namespace graphene { namespace chain {
class witness_schedule_object;
//#ifndef GRAPHENE_SHUFFLED_WITNESSES
typedef hash_ctr_rng<
/* HashClass = */ fc::sha256,
/* SeedLength = */ GRAPHENE_RNG_SEED_LENGTH
@ -53,7 +52,6 @@ typedef generic_far_future_witness_scheduler<
/* OffsetType = */ uint32_t,
/* debug = */ true
> far_future_witness_scheduler;
//#endif
class witness_schedule_object : public graphene::db::abstract_object<witness_schedule_object>
{
@ -61,9 +59,8 @@ class witness_schedule_object : public graphene::db::abstract_object<witness_sch
static const uint8_t space_id = implementation_ids;
static const uint8_t type_id = impl_witness_schedule_object_type;
//#ifdef GRAPHENE_SHUFFLED_WITNESSES
vector< witness_id_type > current_shuffled_witnesses;
//#else
witness_scheduler scheduler;
uint32_t last_scheduling_block;
uint64_t slots_since_genesis = 0;
@ -74,14 +71,11 @@ class witness_schedule_object : public graphene::db::abstract_object<witness_sch
* The nth bit is 0 if the nth slot was unfilled, else it is 1.
*/
fc::uint128 recent_slots_filled;
//#endif
};
} }
//#ifdef GRAPHENE_SHUFFLED_WITNESSES
FC_REFLECT( graphene::chain::witness_scheduler,
(_turns)
(_tokens)
@ -92,8 +86,6 @@ FC_REFLECT( graphene::chain::witness_scheduler,
(_schedule)
(_lame_duck)
)
//#ifdef GRAPHENE_SHUFFLED_WITNESSES
FC_REFLECT_DERIVED(
graphene::chain::witness_schedule_object,
(graphene::db::object),