Scorum
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
config.cpp
Go to the documentation of this file.
2 #include <boost/make_unique.hpp>
3 
4 #include <fc/exception/exception.hpp>
5 
6 namespace scorum {
7 namespace protocol {
8 namespace detail {
9 
10 std::unique_ptr<config> config::instance = boost::make_unique<config>();
11 
12 #ifndef BLOGGING_START_DATE
13 #define BLOGGING_START_DATE "2018-06-12T09:00:00"
14 #endif
15 
16 #ifndef FIFA_WORLD_CUP_2018_BOUNTY_CASHOUT_DATE
17 #define FIFA_WORLD_CUP_2018_BOUNTY_CASHOUT_DATE "2018-08-08T12:00:00"
18 #endif
19 
20 #ifndef WITNESS_REWARD_MIGRATION_DATE
21 #define WITNESS_REWARD_MIGRATION_DATE "2018-07-12T00:00:00"
22 #endif
23 
25  : blockid_pool_size(0xffff)
26 
27  , vesting_withdraw_intervals(52)
28 #ifdef LIVE_TESTNET
29  , vesting_withdraw_interval_seconds(10) // 10 sec per interval
30 
31  , cashout_window_seconds(7200) // 2 hours
32 
33  , upvote_lockout(fc::minutes(30))
34 
35  , active_sp_holders_reward_period(fc::minutes(1))
36 
37  , advertising_cashout_period_sec(60)
38 #else
39  , vesting_withdraw_interval_seconds(DAYS_TO_SECONDS(7)) // 1 week per interval
40 
41  , cashout_window_seconds(DAYS_TO_SECONDS(7))
42 
43  , upvote_lockout(fc::hours(12))
44 
45  , active_sp_holders_reward_period(fc::days(7))
46 
47  , advertising_cashout_period_sec(DAYS_TO_SECONDS(7))
48 #endif
49 
50  , reverse_auction_window_seconds(fc::minutes(30))
51 
52  , vote_regeneration_seconds(fc::days(5))
53  , owner_auth_recovery_period(fc::days(30))
54  , account_recovery_request_expiration_period(fc::days(1))
55  , owner_update_limit(fc::minutes(60))
56 
57  , recent_rshares_decay_rate(fc::days(15))
58 
59  , rewards_initial_supply_period_in_days(2 * 365)
60  , guaranted_reward_supply_period_in_days(30)
61  , reward_increase_threshold_in_days(100)
62 
63  , budgets_limit_per_owner(100)
64 
65  , atomicswap_initiator_refund_lock_secs(48 * 3600)
66  , atomicswap_participant_refund_lock_secs(24 * 3600)
67 
68  , atomicswap_limit_requested_contracts_per_owner(1000)
69  , atomicswap_limit_requested_contracts_per_recipient(10)
70 
71  , min_vote_interval_sec(3)
72 
73  , db_free_memory_threshold_mb(100)
74 
75  , initial_date(fc::time_point_sec::min())
76 
77  , blogging_start_date(fc::time_point_sec::from_iso_string(BLOGGING_START_DATE))
78 
79  , fifa_world_cup_2018_bounty_cashout_date(
80  fc::time_point_sec::from_iso_string(FIFA_WORLD_CUP_2018_BOUNTY_CASHOUT_DATE))
81 
82  , expiraton_for_registration_bonus(fc::days(182))
83 
84  , witness_reward_migration_date(fc::time_point_sec::from_iso_string(WITNESS_REWARD_MIGRATION_DATE))
85 
86  , scorum_max_witnesses(21)
87 
88  , scorum_max_voted_witnesses(20)
89 
92  , scorum_hardfork_required_witnesses(17)
93 {
95  "Required: fifa_world_cup_2018_bounty_cashout_date >= blogging_start_date + cashout_window_seconds.");
97  FC_ASSERT(scorum_max_witnesses > scorum_max_voted_witnesses, "No place for runner");
99  "Invalid amount for hardfork required witnesses");
100 }
101 
103  : blockid_pool_size(0xfff)
104 
105  , vesting_withdraw_intervals(13)
106  , vesting_withdraw_interval_seconds(60 * 7)
107 
108  , cashout_window_seconds(fc::hours(1).to_seconds())
109 
110  , upvote_lockout(fc::minutes(5))
111 
112  , active_sp_holders_reward_period(fc::minutes(15))
113 
114  , advertising_cashout_period_sec(15)
115 
116  , reverse_auction_window_seconds(fc::seconds(30))
117 
118  , vote_regeneration_seconds(fc::minutes(10))
119 
120  , owner_auth_recovery_period(fc::seconds(60))
121  , account_recovery_request_expiration_period(fc::seconds(12))
122  , owner_update_limit(fc::seconds(0))
123 
124  , recent_rshares_decay_rate(fc::hours(1))
125 
126  , rewards_initial_supply_period_in_days(5)
127  , guaranted_reward_supply_period_in_days(2)
128  , reward_increase_threshold_in_days(3)
129 
130  , budgets_limit_per_owner(8)
131 
132  , atomicswap_initiator_refund_lock_secs(60 * 20)
133  , atomicswap_participant_refund_lock_secs(60 * 10)
134 
135  , atomicswap_limit_requested_contracts_per_owner(5)
136  , atomicswap_limit_requested_contracts_per_recipient(2)
137 
138  , min_vote_interval_sec(0)
139 
140  , db_free_memory_threshold_mb(1)
141 
142  , initial_date(fc::time_point_sec::from_iso_string("2018-04-01T00:00:00"))
143 
144  , blogging_start_date(initial_date + cashout_window_seconds * 10)
145 
146  , fifa_world_cup_2018_bounty_cashout_date(blogging_start_date + cashout_window_seconds * 22)
147 
148  , expiraton_for_registration_bonus(fc::minutes(30))
149 
150  , witness_reward_migration_date(initial_date + cashout_window_seconds * 10)
151 
152  , scorum_max_witnesses(3)
153 
154  , scorum_max_voted_witnesses(2)
155 
156  , scorum_hardfork_required_witnesses(2)
157 {
159  FC_ASSERT(scorum_max_witnesses > scorum_max_voted_witnesses, "No place for runner");
161  "Invalid amount for hardfork required witnesses");
162 }
163 
165 {
166  return *config::instance;
167 }
168 
169 void override_config(std::unique_ptr<config> new_config)
170 {
171  config::instance = std::move(new_config);
172 }
173 }
174 }
175 }
#define WITNESS_REWARD_MIGRATION_DATE
Definition: config.cpp:21
#define FIFA_WORLD_CUP_2018_BOUNTY_CASHOUT_DATE
Definition: config.cpp:17
#define BLOGGING_START_DATE
Definition: config.cpp:13
#define DAYS_TO_SECONDS(X)
Definition: config.hpp:89
#define SCORUM_MAX_WITNESSES_LIMIT
Definition: config.hpp:180
Definition: game.cpp:4
const config & get_config()
Definition: config.cpp:164
void override_config(std::unique_ptr< config > new_config)
Definition: config.cpp:169
Definition: asset.cpp:15
const uint8_t scorum_max_witnesses
Definition: config.hpp:70
const fc::time_point_sec fifa_world_cup_2018_bounty_cashout_date
Definition: config.hpp:64
const uint32_t cashout_window_seconds
Definition: config.hpp:26
const uint8_t scorum_hardfork_required_witnesses
Definition: config.hpp:74
const fc::time_point_sec blogging_start_date
Definition: config.hpp:62
static std::unique_ptr< config > instance
Definition: config.hpp:19
const uint8_t scorum_max_voted_witnesses
Definition: config.hpp:72
config()
production config
Definition: config.cpp:24