22 #include <fc/io/json.hpp>
32 return _const_genesis_time;
44 FC_ASSERT(genesis_state.
initial_timestamp != time_point_sec::min(),
"Must initialize genesis timestamp.");
45 FC_ASSERT(genesis_state.
witness_candidates.size() > 0,
"Cannot start a chain with zero witnesses.");
71 BOOST_ATTRIBUTE_UNUSED
78 create<hardfork_property_object>(
79 [&](hardfork_property_object& hpo) { hpo.processed_hardforks.push_back(
get_genesis_time()); });
81 catch (fc::exception& er)
83 throw std::logic_error(std::string(
"Invalid genesis: ") + er.to_detail_string());
89 , _genesis_state(genesis_state)
107 accounts_initializator.
after(global_property_initializator).
apply(ctx);
108 rewards_initializator.
after(global_property_initializator).
apply(ctx);
109 founders_initializator.
after(accounts_initializator).
apply(ctx);
110 witnesses_initializator.
after(accounts_initializator).
apply(ctx);
111 registration_initializator.
after(accounts_initializator).
apply(ctx);
112 steemit_bounty_account_initializator.
after(accounts_initializator).
apply(ctx);
113 registration_bonus_initializator.
after(registration_initializator).
after(accounts_initializator).
apply(ctx);
114 witness_schedule_initializator.
after(witnesses_initializator).
apply(ctx);
115 dev_pool_initializator.
after(global_property_initializator).
apply(ctx);
116 dev_committee_initializator.
after(accounts_initializator).
apply(ctx);
117 advertising_property_initializator.
after(dev_committee_initializator).
apply(ctx);
118 betting_property_initializator.
after(dev_committee_initializator).
apply(ctx);
tracks minimal information about past blocks to implement TaPOS
time_point_sec genesis_time
tracks the blockchain state in an extensible manner
void init_genesis(const genesis_state_type &genesis_state)
time_point_sec get_genesis_time() const
void set_initial_timestamp(const genesis_state_type &genesis_state)
@ skip_authority_check
used while reindexing – disables any checking of authority on transactions
node_property_object & node_properties()
db_genesis(db_genesis const &)=delete
void apply(ContextType &ctx)
#define SCORUM_BLOCKID_POOL_SIZE
chain_id_type initial_chain_id
std::vector< witness_type > witness_candidates
time_point_sec initial_timestamp