BitShares-Core  5.0.0
BitShares blockchain implementation and command-line interface software
config.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Cryptonomex, Inc., and contributors.
3  *
4  * The MIT License
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a copy
7  * of this software and associated documentation files (the "Software"), to deal
8  * in the Software without restriction, including without limitation the rights
9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10  * copies of the Software, and to permit persons to whom the Software is
11  * furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included in
14  * all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22  * THE SOFTWARE.
23  */
24 #pragma once
25 
26 #define GRAPHENE_SYMBOL "BTS"
27 #define GRAPHENE_ADDRESS_PREFIX "BTS"
28 
29 #define GRAPHENE_BLOCKCHAIN_PRECISION uint64_t( 100000 )
30 #define GRAPHENE_BLOCKCHAIN_PRECISION_DIGITS 5
31 
32 #define GRAPHENE_MIN_ACCOUNT_NAME_LENGTH 1
33 #define GRAPHENE_MAX_ACCOUNT_NAME_LENGTH 63
34 
35 #define GRAPHENE_MIN_ASSET_SYMBOL_LENGTH 3
36 #define GRAPHENE_MAX_ASSET_SYMBOL_LENGTH 16
37 
38 #define GRAPHENE_MAX_SHARE_SUPPLY int64_t(1000000000000000ll)
39 
40 #define GRAPHENE_MAX_WORKER_NAME_LENGTH 63
41 #define GRAPHENE_MAX_URL_LENGTH 127
42 
43 #define GRAPHENE_MAX_SIG_CHECK_DEPTH 2
44 
45 #define GRAPHENE_IRREVERSIBLE_THRESHOLD (70 * GRAPHENE_1_PERCENT)
46 
51 #define GRAPHENE_CORE_ASSET_CYCLE_RATE 17
52 #define GRAPHENE_CORE_ASSET_CYCLE_RATE_BITS 32
53 
58 #define GRAPHENE_MIN_TRANSACTION_SIZE_LIMIT 1024
59 #define GRAPHENE_MIN_BLOCK_INTERVAL 1 /* seconds */
60 #define GRAPHENE_MAX_BLOCK_INTERVAL 30 /* seconds */
61 
62 #define GRAPHENE_DEFAULT_BLOCK_INTERVAL 5 /* seconds */
63 #define GRAPHENE_DEFAULT_MAX_TRANSACTION_SIZE 2048
64 #define GRAPHENE_DEFAULT_MAX_BLOCK_SIZE (2*1000*1000) /* < 2 MiB (less than MAX_MESSAGE_SIZE in graphene/net/config.hpp) */
65 #define GRAPHENE_DEFAULT_MAX_TIME_UNTIL_EXPIRATION (60*60*24) // seconds, aka: 1 day
66 #define GRAPHENE_DEFAULT_MAINTENANCE_INTERVAL (60*60*24) // seconds, aka: 1 day
67 #define GRAPHENE_DEFAULT_MAINTENANCE_SKIP_SLOTS 3 // number of slots to skip for maintenance interval
68 
69 #define GRAPHENE_DEFAULT_FORCE_SETTLEMENT_DELAY (60*60*24)
70 #define GRAPHENE_DEFAULT_FORCE_SETTLEMENT_OFFSET 0
71 #define GRAPHENE_DEFAULT_FORCE_SETTLEMENT_MAX_VOLUME (20* GRAPHENE_1_PERCENT)
72 #define GRAPHENE_DEFAULT_PRICE_FEED_LIFETIME (60*60*24)
73 #define GRAPHENE_DEFAULT_MAX_AUTHORITY_MEMBERSHIP 10
74 #define GRAPHENE_DEFAULT_MAX_ASSET_WHITELIST_AUTHORITIES 10
75 #define GRAPHENE_DEFAULT_MAX_ASSET_FEED_PUBLISHERS 10
76 
77 #define GRAPHENE_DEFAULT_MIN_WITNESS_COUNT (11)
78 #define GRAPHENE_DEFAULT_MIN_COMMITTEE_MEMBER_COUNT (11)
79 #define GRAPHENE_DEFAULT_MAX_WITNESSES (1001) // SHOULD BE ODD
80 #define GRAPHENE_DEFAULT_MAX_COMMITTEE (1001) // SHOULD BE ODD
81 #define GRAPHENE_DEFAULT_MAX_PROPOSAL_LIFETIME_SEC (60*60*24*7*4) // Four weeks
82 #define GRAPHENE_DEFAULT_COMMITTEE_PROPOSAL_REVIEW_PERIOD_SEC (60*60*24*7*2) // Two weeks
83 #define GRAPHENE_DEFAULT_NETWORK_PERCENT_OF_FEE (20*GRAPHENE_1_PERCENT)
84 #define GRAPHENE_DEFAULT_LIFETIME_REFERRER_PERCENT_OF_FEE (30*GRAPHENE_1_PERCENT)
85 #define GRAPHENE_DEFAULT_CASHBACK_VESTING_PERIOD_SEC (60*60*24*365)
86 #define GRAPHENE_DEFAULT_CASHBACK_VESTING_THRESHOLD (GRAPHENE_BLOCKCHAIN_PRECISION*int64_t(100))
87 #define GRAPHENE_DEFAULT_BURN_PERCENT_OF_FEE (20*GRAPHENE_1_PERCENT)
88 #define GRAPHENE_DEFAULT_MAX_ASSERT_OPCODE 1
89 #define GRAPHENE_DEFAULT_FEE_LIQUIDATION_THRESHOLD GRAPHENE_BLOCKCHAIN_PRECISION * 100;
90 #define GRAPHENE_DEFAULT_ACCOUNTS_PER_FEE_SCALE 1000
91 #define GRAPHENE_DEFAULT_ACCOUNT_FEE_SCALE_BITSHIFTS 4
92 #define GRAPHENE_DEFAULT_MAX_BUYBACK_MARKETS 4
93 
94 #define GRAPHENE_DEFAULT_WITNESS_PAY_PER_BLOCK (GRAPHENE_BLOCKCHAIN_PRECISION * int64_t( 10) )
95 #define GRAPHENE_DEFAULT_WITNESS_PAY_VESTING_SECONDS (60*60*24)
96 #define GRAPHENE_DEFAULT_WORKER_BUDGET_PER_DAY (GRAPHENE_BLOCKCHAIN_PRECISION * int64_t(500) * 1000 )
97 #define GRAPHENE_DEFAULT_MINIMUM_FEEDS 7
98 
99 #define GRAPHENE_MIN_BLOCK_SIZE_LIMIT (GRAPHENE_MIN_TRANSACTION_SIZE_LIMIT*5) // 5 transactions per block
100 
102 #define GRAPHENE_100_PERCENT 10000
103 #define GRAPHENE_1_PERCENT (GRAPHENE_100_PERCENT/100)
104 
106 #define GRAPHENE_MAX_MARKET_FEE_PERCENT GRAPHENE_100_PERCENT
107 
112 #define GRAPHENE_COLLATERAL_RATIO_DENOM 1000
114 #define GRAPHENE_MIN_COLLATERAL_RATIO 1001
115 #define GRAPHENE_MAX_COLLATERAL_RATIO 32000
116 #define GRAPHENE_DEFAULT_MAINTENANCE_COLLATERAL_RATIO 1750
117 #define GRAPHENE_DEFAULT_MAX_SHORT_SQUEEZE_RATIO 1500
118 
120 
123 #define GRAPHENE_COMMITTEE_ACCOUNT (graphene::protocol::account_id_type(0))
126 #define GRAPHENE_WITNESS_ACCOUNT (graphene::protocol::account_id_type(1))
128 #define GRAPHENE_RELAXED_COMMITTEE_ACCOUNT (graphene::protocol::account_id_type(2))
130 #define GRAPHENE_NULL_ACCOUNT (graphene::protocol::account_id_type(3))
132 #define GRAPHENE_TEMP_ACCOUNT (graphene::protocol::account_id_type(4))
134 #define GRAPHENE_PROXY_TO_SELF_ACCOUNT (graphene::protocol::account_id_type(5))
136 #define GRAPHENE_NULL_WITNESS (graphene::protocol::witness_id_type(0))
138 
140 #define GRAPHENE_FBA_STEALTH_DESIGNATED_ASSET (asset_id_type(743))
141 
143 #define GRAPHENE_DEFAULT_MAX_CUSTOM_AUTHORITY_LIFETIME_SECONDS (60*60*24*30)
144 #define GRAPHENE_DEFAULT_MAX_CUSTOM_AUTHORITIES_PER_ACCOUNT 10
146 #define GRAPHENE_DEFAULT_MAX_CUSTOM_AUTHORITIES_PER_ACCOUNT_OP 3
148 #define GRAPHENE_DEFAULT_MAX_CUSTOM_AUTHORITY_RESTRICTIONS 10