You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**1. Total money supply** (src/cryptonote_config.h)
42
43
43
-
Total amount of coins to be emitted. Most of CryptoNote based coins use `(uint64_t)(-1)` (equals to 18446744073709551616). You can define number explicitly (for example UINT64_C(858986905600000000)).
44
+
Total amount of coins to be emitted. Most of CryptoNote based coins use `(uint64_t)(-1)` (equals to 18446744073709551616). You can define number explicitly (for example `UINT64_C(858986905600000000)`).
44
45
45
46
Example:
46
47
```
47
-
#define MONEY_SUPPLY ((uint64_t)(-1))
48
+
const uint64_t MONEY_SUPPLY = (uint64_t)(-1);
48
49
```
49
50
50
51
**2. Emission curve** (src/cryptonote_config.h)
51
52
52
53
Be default CryptoNote provides emission formula with slight decrease of block reward with each block. This is different from Bitcoin where block reward halves every 4 years.
53
54
54
-
EMISSION_SPEED_FACTOR macro defines emission curve slope. This parameter is required to calulate block reward.
55
+
`EMISSION_SPEED_FACTOR` constant defines emission curve slope. This parameter is required to calulate block reward.
@@ -72,19 +73,19 @@ For most coins difficulty target is 60 or 120 seconds.
72
73
73
74
Example:
74
75
```
75
-
#define DIFFICULTY_TARGET 120
76
+
const uint64_t DIFFICULTY_TARGET = 120;
76
77
```
77
78
78
79
**4. Block reward formula**
79
80
80
-
In case you are not satisfied with CryptoNote default implementation of block reward logic you can also change it. The implementation is in src/cryptonote_core/cryptonote_basic_impl.cpp:
81
+
In case you are not satisfied with CryptoNote default implementation of block reward logic you can also change it. The implementation is in `src/cryptonote_core/Currency.cpp`:
- big block penalty calculation: this is the way CryptoNote protects the block chain from transaction flooding attacks and preserves opportunities for organic network growth at the same time.
89
90
90
91
Only the first part of this function is directly related to the emission logic. You can change it the way you want. See MonetaVerde and DuckNote as the examples where this function is modified.
@@ -105,81 +106,93 @@ It's better to choose ports that aren't used by other software or coins. See kno
This identifier is used in network packages in order not to mix two different cryptocoin networks. Change all the bytes to random values for your network:
Add ip addresses of your seed nodes to the beginning of `node_server<t_payload_net_handler>::init(const boost::program_options::variables_map& vm)` function.
Zero default fee can lead to transaction flooding. Transactions cheaper than the default transaction fee wouldn't be accepted by daemons. 100000 value for DEFAULT_FEE is usually enough.
139
+
Zero minimum fee can lead to transaction flooding. Transactions cheaper than the minimum transaction fee wouldn't be accepted by daemons. 100000 value for `MINIMUM_FEE` is usually enough.
CryptoNote protects chain from tx flooding by reducing block reward for blocks larger than the median block size. However, this rule applies for blocks larger than CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE bytes.
149
+
CryptoNote protects chain from tx flooding by reducing block reward for blocks larger than the median block size. However, this rule applies for blocks larger than `CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE` bytes.
You may choose a letter (in some cases several letters) all the coin's public addresses will start with. It is defined by `CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX` constant. Since the rules for address prefixes are nontrivial you may use the [prefix generator tool](https://cryptonotestarter.org/tools.html).
160
+
161
+
Example:
162
+
```
163
+
const uint64_t CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX = 0xe9; // addresses start with "f"
164
+
```
165
+
166
+
167
+
### Sixth step. Genesis block
155
168
156
169
**1. Build the binaries with blank genesis tx hex** (src/cryptonote_config.h)
157
170
158
-
You should leave #define GENESIS_COINBASE_TX_HEX blank and compile the binaries without it.
171
+
You should leave `const char GENESIS_COINBASE_TX_HEX[]` blank and compile the binaries without it.
159
172
160
173
Example:
161
174
```
162
-
#define GENESIS_COINBASE_TX_HEX ""
175
+
const char GENESIS_COINBASE_TX_HEX[] = "";
163
176
```
164
177
165
178
166
179
**2. Start the daemon to print out the genesis block**
167
180
168
-
Run your daemon with --print-genesis-tx argument. It will print out the genesis block coinbase transaction hash.
181
+
Run your daemon with `--print-genesis-tx` argument. It will print out the genesis block coinbase transaction hash.
169
182
170
183
Example:
171
184
```
172
-
cryptonotecoind --print-genesis-tx
185
+
furiouscoind --print-genesis-tx
173
186
```
174
187
175
188
176
189
**3. Copy the printed transaction hash** (src/cryptonote_config.h)
177
190
178
-
Copy the tx hash that has been printed by the daemon to GENESIS_COINBASE_TX_HEX in /src/cryptonote_config.h
191
+
Copy the tx hash that has been printed by the daemon to `GENESIS_COINBASE_TX_HEX` in `src/cryptonote_config.h`
@@ -192,25 +205,27 @@ Recompile everything again. Your coin code is ready now. Make an announcement fo
192
205
193
206
### On *nix
194
207
195
-
Dependencies: GCC 4.7.3 or later, CMake 2.8.6 or later, and Boost 1.53 or later (except 1.54, more details here: http://goo.gl/RrCFmA).
208
+
Dependencies: GCC 4.7.3 or later, CMake 2.8.6 or later, and Boost 1.55.
196
209
197
210
You may download them from:
211
+
198
212
*http://gcc.gnu.org/
199
213
*http://www.cmake.org/
200
214
*http://www.boost.org/
201
-
*
202
-
Alternatively, it may be possible to install them using a package manager.
215
+
* Alternatively, it may be possible to install them using a package manager.
203
216
204
-
To build, change to a directory where this file is located, and run `make'. The resulting executables can be found in build/release/src.
217
+
To build, change to a directory where this file is located, and run `make`. The resulting executables can be found in `build/release/src`.
205
218
206
219
**Advanced options:**
220
+
207
221
* Parallel build: run `make -j<number of threads>` instead of `make`.
208
222
* Debug build: run `make build-debug`.
209
223
* Test suite: run `make test-release` to run tests in addition to building. Running `make test-debug` will do the same to the debug version.
210
224
* Building with Clang: it may be possible to use Clang instead of GCC, but this may not work everywhere. To build, run `export CC=clang CXX=clang++` before running `make`.
211
225
212
226
### On Windows
213
-
Dependencies: MSVC 2012 or later, CMake 2.8.6 or later, and Boost 1.53 or later. You may download them from:
227
+
Dependencies: MSVC 2012 or later, CMake 2.8.6 or later, and Boost 1.55. You may download them from:
0 commit comments