• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

libbitcoin / libbitcoin-server / 42451802000

08 Nov 2026 01:24AM UTC coverage: 94.853%. Remained the same
42451802000

push

github

web-flow
Merge pull request #1128 from evoskuil/master

Subscribe console and admin logs with interest masks.

12 of 12 new or added lines in 2 files covered. (100.0%)

6 existing lines in 2 files now uncovered.

12053 of 12707 relevant lines covered (94.85%)

241.59 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

99.07
/src/parser.cpp
1
/**
2
 * Copyright (c) 2011-2026 libbitcoin developers
3
 *
4
 * This file is part of libbitcoin.
5
 *
6
 * This program is free software: you can redistribute it and/or modify
7
 * it under the terms of the GNU Affero General Public License as published by
8
 * the Free Software Foundation, either version 3 of the License, or
9
 * (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU Affero General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU Affero General Public License
17
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
 */
19
#include <bitcoin/server/parser.hpp>
20

21
#include <filesystem>
22
#include <bitcoin/server/configuration.hpp>
23
#include <bitcoin/server/define.hpp>
24
#include <bitcoin/server/server_node.hpp>
25
#include <bitcoin/server/settings.hpp>
26

27
////std::filesystem::path config_default_path() NOEXCEPT
28
////{
29
////    return { "libbitcoin/bn.cfg" };
30
////}
31

32
namespace libbitcoin {
33
namespace server {
34

35
using namespace bc::system;
36
using namespace bc::system::config;
37
namespace table = bc::database::table;
38
using namespace bc::system::options;
39

40
// Initialize configuration using defaults of the given context.
41
parser::parser(system::chain::selection context,
24 ✔
42
    const server::settings::embedded_pages& native,
43
    const server::settings::embedded_pages& admin) NOEXCEPT
24 ✔
44
  : configured(context, native, admin)
24 ✔
45
{
46
}
24 ✔
47

48
// Hashmap buckets derive from expected and installed memory; a configured
49
// count governs, and zero disables an optional table.
50
void parser::derive_buckets() NOEXCEPT
24 ✔
51
{
52
    constexpr uint32_t contested = 75;
53
    constexpr uint32_t target = 25;
54
    constexpr uint32_t address_contested = 500;
55
    constexpr uint32_t address_target = 50;
56
    auto& database = configured.database;
57

58
    if (!is_configured("table.header.buckets"))
24 ✔
59
        database.header.buckets = table::header::derive_buckets(
24 ✔
60
            database.header.expected, contested, target);
61

62
    if (!is_configured("table.tx.buckets"))
24 ✔
63
        database.tx.buckets = table::transaction::derive_buckets(
24 ✔
64
            database.tx.expected, contested, target);
65

66
    if (!is_configured("table.strong.buckets"))
24 ✔
67
        database.strong.buckets = possible_narrow_cast<uint32_t>(
23 ✔
68
            database.tx.expected);
69

70
    if (!is_configured("table.ins.buckets"))
24 ✔
71
        database.ins.buckets = table::ins::derive_buckets(
24 ✔
72
            database.ins.expected, contested, target);
73

74
    if (!is_configured("table.outs.buckets"))
24 ✔
75
        database.outs.buckets = table::outs::derive_buckets(
24 ✔
76
            database.outs.expected, address_contested, address_target);
77

78
    if (!is_configured("table.pool.buckets"))
24 ✔
79
        database.pool.buckets = table::pool::derive_buckets(
24 ✔
80
            database.pool.expected, contested, target);
81

82
    if (!is_configured("table.wtxid.buckets"))
24 ✔
83
        database.wtxid.buckets = table::wtxid::derive_buckets(
24 ✔
84
            database.wtxid.expected, contested, target);
85
}
24 ✔
86

87
// A specified network governs, otherwise configuration.
88
void parser::select_network() NOEXCEPT
22 ✔
89
{
90
    const chain::selection selected = configured.net;
22 ✔
91
    const auto specified = selected != chain::selection::none &&
22 ✔
92
        selected != chain::selection::mainnet;
93

94
    chain::selection network = configured.bitcoin.network;
22 ✔
95
    if (specified)
22 ✔
96
        network = selected;
97

98
    if (network != configured.node.network)
22 ✔
99
        reset_network(network);
17 ✔
100

101
    if (specified)
22 ✔
102
        configured.bitcoin.network = network;
12 ✔
103
}
22 ✔
104

105
// A configured path is the base of the network-named store directory.
106
void parser::select_path() NOEXCEPT
22 ✔
107
{
108
    auto& path = configured.database.path;
22 ✔
109
    if (is_configured("database.path"))
22 ✔
110
        path = path / std::string{ config::selection::to_word(
32 ✔
111
            configured.node.network) };
32 ✔
112
}
22 ✔
113

114
// The network of an existing store governs at its path, for commands that
115
// use the store.
116
void parser::read_envelope() NOEXCEPT
4 ✔
117
{
118
    if (configured.make || configured.help || configured.hardware ||
4 ✔
119
        configured.daemon.has_value())
3 ✔
120
        return;
2 ✔
121

122
    server_node::store store{ configured.database };
3 ✔
123
    stored_code = store.read_envelope(stored);
3 ✔
124
    if (stored_code || stored.network == configured.node.network)
3 ✔
125
        return;
126

127
    const chain::selection selected = configured.net;
2 ✔
128
    const auto specified = selected != chain::selection::none &&
2 ✔
129
        selected != chain::selection::mainnet;
130

131
    const auto path = configured.database.path;
2 ✔
132
    reset_network(stored.network);
2 ✔
133
    configured.database.path = path;
2 ✔
134
    derive_buckets();
2 ✔
135

136
    // A specified network is retained as configured, for override reporting.
137
    if (specified)
2 ✔
138
        configured.bitcoin.network = selected;
1 ✔
139
}
3 ✔
140

141
// Network defaults are reset, and then configured settings are reapplied.
142
void parser::reset_network(chain::selection context) NOEXCEPT
19 ✔
143
{
144
    configured.bitcoin = system::settings{ context };
19 ✔
145
    configured.database = database::settings{ context };
19 ✔
146
    configured.network = network::settings{ context };
19 ✔
147
    configured.node = node::settings{ context };
19 ✔
148
    configured.server.network = context;
19 ✔
149
    configured.server.wallet = server::settings::wallet_settings{ context };
19 ✔
150

151
    BC_PUSH_WARNING(NO_THROW_IN_NOEXCEPT)
152
    for (const auto& option: settings().options())
8,778 ✔
153
    {
154
        const auto& name = option->long_name();
8,759 ✔
155
        if (is_configured(name))
8,759 ✔
156
            option->semantic()->notify(variables().at(name).value());
24 ✔
157
    }
158
    BC_POP_WARNING()
159
}
19 ✔
160

161
// Composes a variable name with its command line shortcut.
162
static std::string alias(const std::string& variable, char shortcut)
384 ✔
163
{
164
    return variable + ',' + shortcut;
384 ✔
165
}
166

167
options_metadata parser::load_options() THROWS
24 ✔
168
{
169
    options_metadata description("options");
24 ✔
170
    description.add_options()
24 ✔
171
    (
48 ✔
172
        alias(config_variable, 'c').c_str(),
48 ✔
173
        value<config::path>(&configured.file),
24 ✔
174
        "Specify path to a configuration settings file."
175
    )
176
    (
48 ✔
177
        alias(net_variable, 'n').c_str(),
48 ✔
178
        value<config::selection>(&configured.net),
24 ✔
179
        ("Specify the network (" + config::selection::names() + "), "
48 ✔
180
            "defaults to the configured network.").c_str()
181
    )
182
    // Prompts.
183
    (
72 ✔
184
        alias(accept_variable, 'a').c_str(),
48 ✔
185
        value<bool>(&configured.accept)->
186
            default_value(false)->zero_tokens(),
48 ✔
187
        "Accept startup prompts without interaction."
188
    )
189
    // Information.
190
    (
72 ✔
191
        alias(help_variable, 'h').c_str(),
48 ✔
192
        value<bool>(&configured.help)->
193
            default_value(false)->zero_tokens(),
48 ✔
194
        "Display command line options."
195
    )
196
    (
72 ✔
197
        alias(hardware_variable, 'w').c_str(),
48 ✔
198
        value<bool>(&configured.hardware)->
199
            default_value(false)->zero_tokens(),
48 ✔
200
        "Display hardware compatibility."
201
    )
202
    (
72 ✔
203
        alias(settings_variable, 's').c_str(),
48 ✔
204
        value<bool>(&configured.settings)->
205
            default_value(false)->zero_tokens(),
48 ✔
206
        "Display all configuration settings."
207
    )
208
    (
72 ✔
209
        alias(version_variable, 'v').c_str(),
48 ✔
210
        value<bool>(&configured.version)->
211
            default_value(false)->zero_tokens(),
48 ✔
212
        "Display version information."
213
    )
214
    // Actions.
215
    (
72 ✔
216
        alias(make_variable, 'm').c_str(),
48 ✔
217
        value<bool>(&configured.make)->
218
            default_value(false)->zero_tokens(),
48 ✔
219
        "Make new store in configured directory."
220
    )
221
    (
72 ✔
222
        alias(backup_variable, 'b').c_str(),
48 ✔
223
        value<bool>(&configured.backup)->
224
            default_value(false)->zero_tokens(),
48 ✔
225
        "Backup to a snapshot (can also do live)."
226
    )
227
    (
72 ✔
228
        alias(restore_variable, 'r').c_str(),
48 ✔
229
        value<bool>(&configured.restore)->
230
            default_value(false)->zero_tokens(),
48 ✔
231
        "Restore from most recent snapshot."
232
    )
233
    // Service.
234
    (
72 ✔
235
        alias(daemon_variable, 'd').c_str(),
48 ✔
236
        value<bool>()->implicit_value(true)->
48 ✔
237
            notifier([&](bool value) { configured.daemon = value; }),
48 ✔
238
        "Install ('true') or uninstall ('false') as a daemon."
239
    )
240
    (
72 ✔
241
        alias(user_variable, 'u').c_str(),
48 ✔
242
        value<network::config::credential>()->
243
            notifier([&](const network::config::credential& value)
48 ✔
244
                { configured.user = value; }),
×
245
        "Daemon logon credential, defaults to system account."
246
    )
247
    // Chain scans.
248
    (
72 ✔
249
        alias(flags_variable, 'f').c_str(),
48 ✔
250
        value<bool>(&configured.flags)->
251
            default_value(false)->zero_tokens(),
48 ✔
252
        "Scan and display all flag transitions."
253
    )
254
    (
72 ✔
255
        alias(buckets_variable, 'k').c_str(),
48 ✔
256
        value<bool>(&configured.buckets)->
257
            default_value(false)->zero_tokens(),
48 ✔
258
        "Scan and display hashmap bucket fill."
259
    )
260
    (
72 ✔
261
        alias(collisions_variable, 'l').c_str(),
48 ✔
262
        value<bool>(&configured.collisions)->
263
            default_value(false)->zero_tokens(),
48 ✔
264
        "Scan and show hashmap collision stats (may SIGKILL)."
265
    )
266
    (
72 ✔
267
        alias(information_variable, 'i').c_str(),
48 ✔
268
        value<bool>(&configured.information)->
269
            default_value(false)->zero_tokens(),
48 ✔
270
        "Scan and display store information."
271
    );
272

273
#if defined(HAVE_SELF_TESTS)
274
    description.add_options()
275
    // Ad-hoc Testing.
276
    (
277
        alias(get_variable, 'g').c_str(),
278
        value<config::hash256>(&configured.get)->
279
            default_value(system::null_hash),
280
        "Run built-in read test and display."
281
    )
282
    (
283
        alias(put_variable, 'p').c_str(),
284
        value<config::hash256>(&configured.put)->
285
            default_value(system::null_hash),
286
        "Run built-in write test and display."
287
    );
288
#endif
289

290
    return description;
24 ✔
291
}
×
292

293
arguments_metadata parser::load_arguments() THROWS
24 ✔
294
{
295
    // There are no positional arguments, the config path requires --config.
296
    return arguments_metadata{};
24 ✔
297
}
298

299
options_metadata parser::load_environment() THROWS
×
300
{
301
    options_metadata description("environment");
×
302
    description.add_options()
×
303
    (
×
304
        // For some reason po requires this to be a lower case name.
305
        // The case must match the other declarations for it to compose.
306
        // This composes with the cmdline options and inits to default path.
307
        config_variable,
308
        value<config::path>(&configured.file)->composing()
×
309
            /*->default_value(config_default_path())*/,
310
        "The path to the configuration settings file."
311
    );
312

313
    return description;
×
314
}
×
315

316
options_metadata parser::load_settings() THROWS
22 ✔
317
{
318
    options_metadata description("settings");
22 ✔
319
    description.add_options()
22 ✔
320

321
    /* [forks] */
322
    (
66 ✔
323
        "forks.difficult",
324
        setting<bool>(&configured.bitcoin.forks.difficult),
22 ✔
325
        "Require difficult blocks, defaults to {} (use false for testnet)."
326
    )
327
    (
66 ✔
328
        "forks.retarget",
329
        setting<bool>(&configured.bitcoin.forks.retarget),
22 ✔
330
        "Retarget difficulty, defaults to {} (use false for regtest)."
331
    )
332
    (
66 ✔
333
        "forks.bip16",
334
        setting<bool>(&configured.bitcoin.forks.bip16),
22 ✔
335
        "Add pay-to-script-hash processing, defaults to {} (soft fork)."
336
    )
337
    (
66 ✔
338
        "forks.bip30",
339
        setting<bool>(&configured.bitcoin.forks.bip30),
22 ✔
340
        "Disallow collision of unspent transaction hashes, defaults to {} (soft fork)."
341
    )
342
    (
66 ✔
343
        "forks.bip34",
344
        setting<bool>(&configured.bitcoin.forks.bip34),
22 ✔
345
        "Require coinbase input includes block height, defaults to {} (soft fork)."
346
    )
347
    (
66 ✔
348
        "forks.bip42",
349
        setting<bool>(&configured.bitcoin.forks.bip42),
22 ✔
350
        "Finite monetary supply, defaults to {} (soft fork)."
351
    )
352
    (
66 ✔
353
        "forks.bip66",
354
        setting<bool>(&configured.bitcoin.forks.bip66),
22 ✔
355
        "Require strict signature encoding, defaults to {} (soft fork)."
356
    )
357
    (
66 ✔
358
        "forks.bip65",
359
        setting<bool>(&configured.bitcoin.forks.bip65),
22 ✔
360
        "Add check-locktime-verify op code, defaults to {} (soft fork)."
361
    )
362
    (
66 ✔
363
        "forks.bip90",
364
        setting<bool>(&configured.bitcoin.forks.bip90),
22 ✔
365
        "Freeze bip34, bip65, and bip66 activation at the bip90 heights, defaults to {} (hard fork)."
366
    )
367
    (
66 ✔
368
        "forks.bip68",
369
        setting<bool>(&configured.bitcoin.forks.bip68),
22 ✔
370
        "Add relative locktime enforcement, defaults to {} (soft fork)."
371
    )
372
    (
66 ✔
373
        "forks.bip112",
374
        setting<bool>(&configured.bitcoin.forks.bip112),
22 ✔
375
        "Add check-sequence-verify op code, defaults to {} (soft fork)."
376
    )
377
    (
66 ✔
378
        "forks.bip113",
379
        setting<bool>(&configured.bitcoin.forks.bip113),
22 ✔
380
        "Use median time past for locktime, defaults to {} (soft fork)."
381
    )
382
    (
66 ✔
383
        "forks.bip141",
384
        setting<bool>(&configured.bitcoin.forks.bip141),
22 ✔
385
        "Segregated witness consensus layer, defaults to {} (soft fork)."
386
    )
387
    (
66 ✔
388
        "forks.bip143",
389
        setting<bool>(&configured.bitcoin.forks.bip143),
22 ✔
390
        "Witness version 0 (segwit), defaults to {} (soft fork)."
391
    )
392
    (
66 ✔
393
        "forks.bip147",
394
        setting<bool>(&configured.bitcoin.forks.bip147),
22 ✔
395
        "Prevent dummy value malleability, defaults to {} (soft fork)."
396
    )
397
    (
66 ✔
398
        "forks.bip341",
399
        setting<bool>(&configured.bitcoin.forks.bip341),
22 ✔
400
        "Witness version 1 (taproot), defaults to {} (soft fork)."
401
    )
402
    (
66 ✔
403
        "forks.bip342",
404
        setting<bool>(&configured.bitcoin.forks.bip342),
22 ✔
405
        "Validation of taproot script, defaults to {} (soft fork)."
406
    )
407
    (
66 ✔
408
        "forks.bip54_timewarp",
409
        setting<bool>(&configured.bitcoin.forks.bip54_timewarp),
22 ✔
410
        "Limit timestamp regression on retarget blocks, defaults to {} (soft fork)."
411
    )
412
    (
66 ✔
413
        "forks.bip54_timespan",
414
        setting<bool>(&configured.bitcoin.forks.bip54_timespan),
22 ✔
415
        "Require non-negative retarget timespans, defaults to {} (soft fork)."
416
    )
417
    (
66 ✔
418
        "forks.bip54_sigops",
419
        setting<bool>(&configured.bitcoin.forks.bip54_sigops),
22 ✔
420
        "Limit legacy signature operations per transaction, defaults to {} (soft fork)."
421
    )
422
    (
66 ✔
423
        "forks.bip54_txsize",
424
        setting<bool>(&configured.bitcoin.forks.bip54_txsize),
22 ✔
425
        "Disallow 64 byte witness-stripped transactions, defaults to {} (soft fork)."
426
    )
427
    (
66 ✔
428
        "forks.bip54_coinbase",
429
        setting<bool>(&configured.bitcoin.forks.bip54_coinbase),
22 ✔
430
        "Require coinbase locktime of parent height and non-final sequence, defaults to {} (soft fork)."
431
    )
432
    (
66 ✔
433
        "forks.time_warp_patch",
434
        setting<bool>(&configured.bitcoin.forks.time_warp_patch),
22 ✔
435
        "Assume time_warp_patch activation if enabled, defaults to {} (testnet4)."
436
    )
437
    (
66 ✔
438
        "forks.block_storm_patch",
439
        setting<bool>(&configured.bitcoin.forks.block_storm_patch),
22 ✔
440
        "Assume block_storm_patch activation if enabled, defaults to {} (testnet4)."
441
    )
442
    (
66 ✔
443
        "forks.signet",
444
        setting<bool>(&configured.bitcoin.forks.signet),
22 ✔
445
        "Require signet block solutions, defaults to {} (signet)."
446
    )
447
    (
66 ✔
448
        "forks.ltc_time_warp_patch",
449
        setting<bool>(&configured.bitcoin.forks.ltc_time_warp_patch),
22 ✔
450
        "Fix time warp bug, defaults to {} (litecoin)."
451
    )
452
    (
66 ✔
453
        "forks.ltc_retarget_overflow_patch",
454
        setting<bool>(&configured.bitcoin.forks.ltc_retarget_overflow_patch),
22 ✔
455
        "Fix target overflow for very low difficulty, defaults to {} (litecoin)."
456
    )
457
    (
66 ✔
458
        "forks.ltc_scrypt_proof_of_work",
459
        setting<bool>(&configured.bitcoin.forks.ltc_scrypt_proof_of_work),
22 ✔
460
        "Use scrypt hashing for proof of work, defaults to {} (litecoin)."
461
    )
462

463
    /* [bitcoin] */
464
    (
66 ✔
465
        "bitcoin.network",
466
        setting<config::selection>(&configured.bitcoin.network),
22 ✔
467
        ("The network of the defaults (" + config::selection::names() +
44 ✔
468
            "), defaults to {}.").c_str()
469
    )
470
    (
66 ✔
471
        "bitcoin.initial_block_subsidy_bitcoin",
472
        setting<uint64_t>(&configured.bitcoin.initial_subsidy_bitcoin),
22 ✔
473
        "The initial block subsidy, defaults to {}."
474
    )
475
    (
66 ✔
476
        "bitcoin.subsidy_interval",
477
        setting<uint32_t>(&configured.bitcoin.subsidy_interval_blocks),
22 ✔
478
        "The subsidy halving period, defaults to {}."
479
    )
480
    (
66 ✔
481
        "bitcoin.timestamp_limit_seconds",
482
        setting<uint32_t>(&configured.bitcoin.timestamp_limit_seconds),
22 ✔
483
        "The future timestamp allowance, defaults to {}."
484
    )
485
    (
66 ✔
486
        "bitcoin.retargeting_factor",
487
        setting<uint32_t>(&configured.bitcoin.retargeting_factor),
22 ✔
488
        "The difficulty retargeting factor, defaults to {}."
489
    )
490
    (
66 ✔
491
        "bitcoin.retargeting_interval_seconds",
492
        setting<uint32_t>(&configured.bitcoin.retargeting_interval_seconds),
22 ✔
493
        "The difficulty retargeting period, defaults to {}."
494
    )
495
    (
66 ✔
496
        "bitcoin.block_spacing_seconds",
497
        setting<uint32_t>(&configured.bitcoin.block_spacing_seconds),
22 ✔
498
        "The target block period, defaults to {}."
499
    )
500
    (
66 ✔
501
        "bitcoin.proof_of_work_limit",
502
        setting<uint32_t>(&configured.bitcoin.proof_of_work_limit),
22 ✔
503
        "The proof of work limit, defaults to {}."
504
    )
505
    (
66 ✔
506
        "bitcoin.genesis_block",
507
        setting<config::block>(&configured.bitcoin.genesis_block),
22 ✔
508
        "The hexadecimal encoding of the genesis block, defaults to mainnet."
509
    )
510
    (
66 ✔
511
        "bitcoin.signet_challenge",
512
        setting<config::script>(&configured.bitcoin.signet_challenge),
22 ✔
513
        "The signet block challenge script, defaults to none (signet)."
514
    )
515
    (
66 ✔
516
        "bitcoin.checkpoint",
517
        setting<chain::checkpoints>(&configured.bitcoin.checkpoints),
22 ✔
518
        "The blockchain checkpoints, defaults to the consensus set."
519
    )
520
    // [version properties excluded here]
521
    (
66 ✔
522
        "bitcoin.bip16_activation_time",
523
        setting<uint32_t>(&configured.bitcoin.bip16_activation_time),
22 ✔
524
        "The activation time for bip16 in unix time, defaults to {}."
525
    )
526
    (
66 ✔
527
        "bitcoin.bip34_activation_threshold",
528
        setting<size_t>(&configured.bitcoin.bip34_activation_threshold),
22 ✔
529
        "The number of new version blocks required for bip34 style soft fork activation, defaults to {}."
530
    )
531
    (
66 ✔
532
        "bitcoin.bip34_enforcement_threshold",
533
        setting<size_t>(&configured.bitcoin.bip34_enforcement_threshold),
22 ✔
534
        "The number of new version blocks required for bip34 style soft fork enforcement, defaults to {}."
535
    )
536
    (
66 ✔
537
        "bitcoin.bip34_activation_sample",
538
        setting<size_t>(&configured.bitcoin.bip34_activation_sample),
22 ✔
539
        "The number of blocks considered for bip34 style soft fork activation, defaults to {}."
540
    )
541
    (
66 ✔
542
        "bitcoin.bip34_freeze",
543
        setting<size_t>(&configured.bitcoin.bip90_bip34_height),
22 ✔
544
        "The block height to freeze the bip34 softfork for bip90, defaults to {}."
545
    )
546
    (
66 ✔
547
        "bitcoin.bip65_freeze",
548
        setting<size_t>(&configured.bitcoin.bip90_bip65_height),
22 ✔
549
        "The block height to freeze the bip65 softfork for bip90, defaults to {}."
550
    )
551
    (
66 ✔
552
        "bitcoin.bip66_freeze",
553
        setting<size_t>(&configured.bitcoin.bip90_bip66_height),
22 ✔
554
        "The block height to freeze the bip66 softfork for bip90, defaults to {}."
555
    )
556
    (
66 ✔
557
        "bitcoin.bip9_activation_period",
558
        setting<size_t>(&configured.bitcoin.bip9_activation_period),
22 ✔
559
        "The number of blocks in a bip9 signaling period, defaults to {}."
560
    )
561
    (
66 ✔
562
        "bitcoin.bip9_bit0_start",
563
        setting<uint32_t>(&configured.bitcoin.bip9_bit0_deployment.start),
22 ✔
564
        "The median time past to start bip9 bit0 signaling, 4294967295 for always active, defaults to {}."
565
    )
566
    (
66 ✔
567
        "bitcoin.bip9_bit0_timeout",
568
        setting<uint32_t>(&configured.bitcoin.bip9_bit0_deployment.timeout),
22 ✔
569
        "The median time past to time out bip9 bit0 signaling, defaults to {}."
570
    )
571
    (
66 ✔
572
        "bitcoin.bip9_bit0_threshold",
573
        setting<size_t>(&configured.bitcoin.bip9_bit0_deployment.threshold),
22 ✔
574
        "The signaling blocks per period to lock in bip9 bit0, zero to disable, defaults to {}."
575
    )
576
    (
66 ✔
577
        "bitcoin.bip9_bit0_activation_height",
578
        setting<size_t>(&configured.bitcoin.bip9_bit0_deployment.activation_height),
22 ✔
579
        "The minimum bip9 bit0 activation height, defaults to {}."
580
    )
581
    (
66 ✔
582
        "bitcoin.bip9_bit0_speedy_trial",
583
        setting<bool>(&configured.bitcoin.bip9_bit0_deployment.speedy),
22 ✔
584
        "Check the bip9 bit0 threshold before timeout (speedy trial), defaults to {}."
585
    )
586
    (
66 ✔
587
        "bitcoin.bip9_bit1_start",
588
        setting<uint32_t>(&configured.bitcoin.bip9_bit1_deployment.start),
22 ✔
589
        "The median time past to start bip9 bit1 signaling, 4294967295 for always active, defaults to {}."
590
    )
591
    (
66 ✔
592
        "bitcoin.bip9_bit1_timeout",
593
        setting<uint32_t>(&configured.bitcoin.bip9_bit1_deployment.timeout),
22 ✔
594
        "The median time past to time out bip9 bit1 signaling, defaults to {}."
595
    )
596
    (
66 ✔
597
        "bitcoin.bip9_bit1_threshold",
598
        setting<size_t>(&configured.bitcoin.bip9_bit1_deployment.threshold),
22 ✔
599
        "The signaling blocks per period to lock in bip9 bit1, zero to disable, defaults to {}."
600
    )
601
    (
66 ✔
602
        "bitcoin.bip9_bit1_activation_height",
603
        setting<size_t>(&configured.bitcoin.bip9_bit1_deployment.activation_height),
22 ✔
604
        "The minimum bip9 bit1 activation height, defaults to {}."
605
    )
606
    (
66 ✔
607
        "bitcoin.bip9_bit1_speedy_trial",
608
        setting<bool>(&configured.bitcoin.bip9_bit1_deployment.speedy),
22 ✔
609
        "Check the bip9 bit1 threshold before timeout (speedy trial), defaults to {}."
610
    )
611
    (
66 ✔
612
        "bitcoin.bip9_bit2_start",
613
        setting<uint32_t>(&configured.bitcoin.bip9_bit2_deployment.start),
22 ✔
614
        "The median time past to start bip9 bit2 signaling, 4294967295 for always active, defaults to {}."
615
    )
616
    (
66 ✔
617
        "bitcoin.bip9_bit2_timeout",
618
        setting<uint32_t>(&configured.bitcoin.bip9_bit2_deployment.timeout),
22 ✔
619
        "The median time past to time out bip9 bit2 signaling, defaults to {}."
620
    )
621
    (
66 ✔
622
        "bitcoin.bip9_bit2_threshold",
623
        setting<size_t>(&configured.bitcoin.bip9_bit2_deployment.threshold),
22 ✔
624
        "The signaling blocks per period to lock in bip9 bit2, zero to disable, defaults to {}."
625
    )
626
    (
66 ✔
627
        "bitcoin.bip9_bit2_activation_height",
628
        setting<size_t>(&configured.bitcoin.bip9_bit2_deployment.activation_height),
22 ✔
629
        "The minimum bip9 bit2 activation height, defaults to {}."
630
    )
631
    (
66 ✔
632
        "bitcoin.bip9_bit2_speedy_trial",
633
        setting<bool>(&configured.bitcoin.bip9_bit2_deployment.speedy),
22 ✔
634
        "Check the bip9 bit2 threshold before timeout (speedy trial), defaults to {}."
635
    )
636
    (
66 ✔
637
        "bitcoin.bip54_timewarp_start",
638
        setting<uint32_t>(&configured.bitcoin.bip54_timewarp_deployment.start),
22 ✔
639
        "The median time past to start bip54 timewarp signaling, 4294967295 for always active, defaults to {}."
640
    )
641
    (
66 ✔
642
        "bitcoin.bip54_timewarp_timeout",
643
        setting<uint32_t>(&configured.bitcoin.bip54_timewarp_deployment.timeout),
22 ✔
644
        "The median time past to time out bip54 timewarp signaling, defaults to {}."
645
    )
646
    (
66 ✔
647
        "bitcoin.bip54_timewarp_threshold",
648
        setting<size_t>(&configured.bitcoin.bip54_timewarp_deployment.threshold),
22 ✔
649
        "The signaling blocks per period to lock in bip54 timewarp, zero to disable, defaults to {}."
650
    )
651
    (
66 ✔
652
        "bitcoin.bip54_timewarp_activation_height",
653
        setting<size_t>(&configured.bitcoin.bip54_timewarp_deployment.activation_height),
22 ✔
654
        "The minimum bip54 timewarp activation height, defaults to {}."
655
    )
656
    (
66 ✔
657
        "bitcoin.bip54_timewarp_speedy_trial",
658
        setting<bool>(&configured.bitcoin.bip54_timewarp_deployment.speedy),
22 ✔
659
        "Check the bip54 timewarp threshold before timeout (speedy trial), defaults to {}."
660
    )
661
    (
66 ✔
662
        "bitcoin.bip54_timespan_start",
663
        setting<uint32_t>(&configured.bitcoin.bip54_timespan_deployment.start),
22 ✔
664
        "The median time past to start bip54 timespan signaling, 4294967295 for always active, defaults to {}."
665
    )
666
    (
66 ✔
667
        "bitcoin.bip54_timespan_timeout",
668
        setting<uint32_t>(&configured.bitcoin.bip54_timespan_deployment.timeout),
22 ✔
669
        "The median time past to time out bip54 timespan signaling, defaults to {}."
670
    )
671
    (
66 ✔
672
        "bitcoin.bip54_timespan_threshold",
673
        setting<size_t>(&configured.bitcoin.bip54_timespan_deployment.threshold),
22 ✔
674
        "The signaling blocks per period to lock in bip54 timespan, zero to disable, defaults to {}."
675
    )
676
    (
66 ✔
677
        "bitcoin.bip54_timespan_activation_height",
678
        setting<size_t>(&configured.bitcoin.bip54_timespan_deployment.activation_height),
22 ✔
679
        "The minimum bip54 timespan activation height, defaults to {}."
680
    )
681
    (
66 ✔
682
        "bitcoin.bip54_timespan_speedy_trial",
683
        setting<bool>(&configured.bitcoin.bip54_timespan_deployment.speedy),
22 ✔
684
        "Check the bip54 timespan threshold before timeout (speedy trial), defaults to {}."
685
    )
686
    (
66 ✔
687
        "bitcoin.bip54_sigops_start",
688
        setting<uint32_t>(&configured.bitcoin.bip54_sigops_deployment.start),
22 ✔
689
        "The median time past to start bip54 sigops signaling, 4294967295 for always active, defaults to {}."
690
    )
691
    (
66 ✔
692
        "bitcoin.bip54_sigops_timeout",
693
        setting<uint32_t>(&configured.bitcoin.bip54_sigops_deployment.timeout),
22 ✔
694
        "The median time past to time out bip54 sigops signaling, defaults to {}."
695
    )
696
    (
66 ✔
697
        "bitcoin.bip54_sigops_threshold",
698
        setting<size_t>(&configured.bitcoin.bip54_sigops_deployment.threshold),
22 ✔
699
        "The signaling blocks per period to lock in bip54 sigops, zero to disable, defaults to {}."
700
    )
701
    (
66 ✔
702
        "bitcoin.bip54_sigops_activation_height",
703
        setting<size_t>(&configured.bitcoin.bip54_sigops_deployment.activation_height),
22 ✔
704
        "The minimum bip54 sigops activation height, defaults to {}."
705
    )
706
    (
66 ✔
707
        "bitcoin.bip54_sigops_speedy_trial",
708
        setting<bool>(&configured.bitcoin.bip54_sigops_deployment.speedy),
22 ✔
709
        "Check the bip54 sigops threshold before timeout (speedy trial), defaults to {}."
710
    )
711
    (
66 ✔
712
        "bitcoin.bip54_txsize_start",
713
        setting<uint32_t>(&configured.bitcoin.bip54_txsize_deployment.start),
22 ✔
714
        "The median time past to start bip54 txsize signaling, 4294967295 for always active, defaults to {}."
715
    )
716
    (
66 ✔
717
        "bitcoin.bip54_txsize_timeout",
718
        setting<uint32_t>(&configured.bitcoin.bip54_txsize_deployment.timeout),
22 ✔
719
        "The median time past to time out bip54 txsize signaling, defaults to {}."
720
    )
721
    (
66 ✔
722
        "bitcoin.bip54_txsize_threshold",
723
        setting<size_t>(&configured.bitcoin.bip54_txsize_deployment.threshold),
22 ✔
724
        "The signaling blocks per period to lock in bip54 txsize, zero to disable, defaults to {}."
725
    )
726
    (
66 ✔
727
        "bitcoin.bip54_txsize_activation_height",
728
        setting<size_t>(&configured.bitcoin.bip54_txsize_deployment.activation_height),
22 ✔
729
        "The minimum bip54 txsize activation height, defaults to {}."
730
    )
731
    (
66 ✔
732
        "bitcoin.bip54_txsize_speedy_trial",
733
        setting<bool>(&configured.bitcoin.bip54_txsize_deployment.speedy),
22 ✔
734
        "Check the bip54 txsize threshold before timeout (speedy trial), defaults to {}."
735
    )
736
    (
66 ✔
737
        "bitcoin.bip54_coinbase_start",
738
        setting<uint32_t>(&configured.bitcoin.bip54_coinbase_deployment.start),
22 ✔
739
        "The median time past to start bip54 coinbase signaling, 4294967295 for always active, defaults to {}."
740
    )
741
    (
66 ✔
742
        "bitcoin.bip54_coinbase_timeout",
743
        setting<uint32_t>(&configured.bitcoin.bip54_coinbase_deployment.timeout),
22 ✔
744
        "The median time past to time out bip54 coinbase signaling, defaults to {}."
745
    )
746
    (
66 ✔
747
        "bitcoin.bip54_coinbase_threshold",
748
        setting<size_t>(&configured.bitcoin.bip54_coinbase_deployment.threshold),
22 ✔
749
        "The signaling blocks per period to lock in bip54 coinbase, zero to disable, defaults to {}."
750
    )
751
    (
66 ✔
752
        "bitcoin.bip54_coinbase_activation_height",
753
        setting<size_t>(&configured.bitcoin.bip54_coinbase_deployment.activation_height),
22 ✔
754
        "The minimum bip54 coinbase activation height, defaults to {}."
755
    )
756
    (
66 ✔
757
        "bitcoin.bip54_coinbase_speedy_trial",
758
        setting<bool>(&configured.bitcoin.bip54_coinbase_deployment.speedy),
22 ✔
759
        "Check the bip54 coinbase threshold before timeout (speedy trial), defaults to {}."
760
    )
761
    (
66 ✔
762
        settings::milestone,
763
        setting<chain::checkpoint>(&configured.bitcoin.milestone),
22 ✔
764
        "A block presumed to be valid but not required to be present, defaults to {}."
765
    )
766
    (
66 ✔
767
        "bitcoin.minimum_work",
768
        setting<config::hash256>(&configured.bitcoin.minimum_work),
22 ✔
769
        "The minimum work for any branch to be considered valid, defaults to {}."
770
    )
771

772
    /* [network] */
773
    (
66 ✔
774
        "network.threads",
775
        setting<uint32_t>(&configured.network.threads),
22 ✔
776
        "The minimum number of threads in the network threadpool, defaults to {} (hardware threads, at most 32)."
777
    )
778
    (
66 ✔
779
        "network.retry_timeout_seconds",
780
        setting<uint32_t>(&configured.network.retry_timeout_seconds),
22 ✔
781
        "The time delay for failed connection retry, defaults to {}."
782
    )
783
    (
66 ✔
784
        "network.connect_timeout_seconds",
785
        setting<uint32_t>(&configured.network.connect_timeout_seconds),
22 ✔
786
        "The time limit for connection establishment, defaults to {}."
787
    )
788
    (
66 ✔
789
        "network.rate_limit",
790
        setting<uint32_t>(&configured.network.rate_limit),
22 ✔
791
        "The per channel send rate limit in bytes per second, defaults to {} (unlimited)."
792
    )
793
    (
66 ✔
794
        "network.blacklist",
795
        setting<network::config::authorities>(&configured.network.blacklists),
22 ✔
796
        "IP address to disallow, allows all others, multiple allowed."
797
    )
798
    (
66 ✔
799
        "network.whitelist",
800
        setting<network::config::authorities>(&configured.network.whitelists),
22 ✔
801
        "IP address to allow, prohibits all others, multiple allowed."
802
    )
803

804
    /* [peer] */
805
    (
66 ✔
806
        "peer.address_upper",
807
        setting<uint16_t>(&configured.network.address_upper),
22 ✔
808
        "The upper bound for address selection divisor, defaults to {}."
809
    )
810
    (
66 ✔
811
        "peer.address_lower",
812
        setting<uint16_t>(&configured.network.address_lower),
22 ✔
813
        "The lower bound for address selection divisor, defaults to {}."
814
    )
815
    (
66 ✔
816
        "peer.protocol_maximum",
817
        setting<uint32_t>(&configured.network.protocol_maximum),
22 ✔
818
        "The maximum network protocol version, defaults to {}."
819
    )
820
    (
66 ✔
821
        "peer.protocol_minimum",
822
        setting<uint32_t>(&configured.network.protocol_minimum),
22 ✔
823
        "The minimum network protocol version, defaults to {}."
824
    )
825
    (
66 ✔
826
        "peer.invalid_services",
827
        setting<uint64_t>(&configured.network.invalid_services),
22 ✔
828
        "The advertised services that cause a peer to be dropped, defaults to {}."
829
    )
830
    (
66 ✔
831
        "peer.enable_address",
832
        setting<bool>(&configured.network.enable_address),
22 ✔
833
        "Enable address gossip, defaults to {}."
834
    )
835
    (
66 ✔
836
        "peer.enable_address_v2",
837
        setting<bool>(&configured.network.enable_address_v2),
22 ✔
838
        "Enable privacy network (Tor and I2P) address gossip, defaults to {}."
839
    )
840
    (
66 ✔
841
        "peer.enable_witness_tx",
842
        setting<bool>(&configured.network.enable_witness_tx),
22 ✔
843
        "Enable witness transaction identifier relay, defaults to {}."
844
    )
845
    (
66 ✔
846
        "peer.enable_compact",
847
        setting<bool>(&configured.network.enable_compact),
22 ✔
848
        "Enable compact block messages, defaults to {}."
849
    )
850
    (
66 ✔
851
        "peer.enable_alert",
852
        setting<bool>(&configured.network.enable_alert),
22 ✔
853
        "Enable alert messages, defaults to {}."
854
    )
855
    (
66 ✔
856
        "peer.enable_reject",
857
        setting<bool>(&configured.network.enable_reject),
22 ✔
858
        "Enable reject messages, defaults to {}."
859
    )
860
    (
66 ✔
861
        "peer.enable_not_found",
862
        setting<bool>(&configured.network.enable_not_found),
22 ✔
863
        "Enable not found messages, defaults to {}."
864
    )
865
    (
66 ✔
866
        "peer.enable_memory_pool",
867
        setting<bool>(&configured.network.enable_memory_pool),
22 ✔
868
        "Enable memory pool messages, defaults to {}."
869
    )
870
    (
66 ✔
871
        "peer.enable_relay",
872
        setting<bool>(&configured.network.enable_relay),
22 ✔
873
        "Enable transaction relay, defaults to {}."
874
    )
875
    (
66 ✔
876
        "peer.validate_checksum",
877
        setting<bool>(&configured.network.validate_checksum),
22 ✔
878
        "Validate the checksum of network messages, defaults to {}."
879
    )
880
    (
66 ✔
881
        "peer.gossip_ipv4",
882
        setting<bool>(&configured.network.gossip_ipv4),
22 ✔
883
        "Gossip internet protocol version 4 (IPv4) addresses, defaults to {}."
884
    )
885
    (
66 ✔
886
        "peer.gossip_ipv6",
887
        setting<bool>(&configured.network.gossip_ipv6),
22 ✔
888
        "Gossip internet protocol version 6 (IPv6) addresses, defaults to {}."
889
    )
890
    (
66 ✔
891
        "peer.gossip_tor",
892
        setting<bool>(&configured.network.gossip_tor),
22 ✔
893
        "Gossip tor (onion) addresses, defaults to {}."
894
    )
895
    (
66 ✔
896
        "peer.gossip_i2p",
897
        setting<bool>(&configured.network.gossip_i2p),
22 ✔
898
        "Gossip i2p addresses, defaults to {}."
899
    )
900
    (
66 ✔
901
        "peer.identifier",
902
        setting<uint32_t>(&configured.network.identifier),
22 ✔
903
        "The magic number for message headers, defaults to {}."
904
    )
905
    (
66 ✔
906
        "peer.handshake_timeout_seconds",
907
        setting<uint32_t>(&configured.network.handshake_timeout_seconds),
22 ✔
908
        "The time limit to complete the connection handshake, defaults to {} (0 disables)."
909
    )
910
    (
66 ✔
911
        "peer.channel_heartbeat_minutes",
912
        setting<uint32_t>(&configured.network.channel_heartbeat_minutes),
22 ✔
913
        "The time between ping messages, defaults to {} (0 disables)."
914
    )
915
    (
66 ✔
916
        "peer.maximum_skew_minutes",
917
        setting<uint32_t>(&configured.network.maximum_skew_minutes),
22 ✔
918
        "The maximum allowable channel clock skew, defaults to {}."
919
    )
920
    (
66 ✔
921
        "peer.user_agent",
922
        setting<std::string>(&configured.network.user_agent),
22 ✔
923
        "The node user agent string, defaults to {}."
924
    )
925
    (
66 ✔
926
        "peer.path",
927
        setting<config::path>(&configured.network.path),
22 ✔
928
        "The peer address cache file directory, defaults to {}."
929
    )
930

931
    /* [outbound] */
932
    (
66 ✔
933
        "outbound.bind",
934
        setting<network::config::authorities>(&configured.network.outbound.binds),
22 ✔
935
        "IP address to bind outbound connections, multiple allowed, defaults to {}."
936
    )
937
    (
66 ✔
938
        "outbound.connections",
939
        setting<uint16_t>(&configured.network.outbound.connections),
22 ✔
940
        "The target number of outgoing network connections, defaults to {}."
941
    )
942
    (
66 ✔
943
        "outbound.current_connections",
944
        setting<uint16_t>(&configured.node.current_connections),
22 ✔
945
        "The target number of outgoing connections when current, defaults to {} (0 disables)."
946
    )
947
    (
66 ✔
948
        "outbound.rate_limit",
949
        setting<uint32_t>(&configured.network.outbound.rate_limit),
22 ✔
950
        "The send rate limit in bytes per second, defaults to {} (network controls)."
951
    )
952
    (
66 ✔
953
        "outbound.connect_timeout_seconds",
954
        setting<uint32_t>(&configured.network.outbound.connect_timeout_seconds),
22 ✔
955
        "The time limit for connection establishment, defaults to {} (network controls)."
956
    )
957
    (
66 ✔
958
        "outbound.inactivity_minutes",
959
        setting<uint32_t>(&configured.network.outbound.inactivity_minutes),
22 ✔
960
        "The inactivity time limit for any connection, defaults to {} (0 disables)."
961
    )
962
    (
66 ✔
963
        "outbound.expiration_minutes",
964
        setting<uint32_t>(&configured.network.outbound.expiration_minutes),
22 ✔
965
        "The age limit for any connection, defaults to {} (0 disables)."
966
    )
967
    (
66 ✔
968
        "outbound.minimum_buffer",
969
        setting<uint32_t>(&configured.network.outbound.minimum_buffer),
22 ✔
970
        "The minimum retained read buffer size, defaults to {}."
971
    )
972
    (
66 ✔
973
        "outbound.maximum_backlog",
974
        setting<uint32_t>(&configured.network.outbound.maximum_backlog),
22 ✔
975
        "The maximum write backlog of a channel, defaults to {}."
976
    )
977
    (
66 ✔
978
        "outbound.maximum_request",
979
        setting<uint32_t>(&configured.network.outbound.maximum_request),
22 ✔
980
        "The maximum allowed request size, defaults to {}."
981
    )
982
    (
66 ✔
983
        "outbound.seed",
984
        setting<network::config::endpoints>(&configured.network.outbound.seeds),
22 ✔
985
        "A seed node for initializing the host pool, multiple allowed."
986
    )
987
    (
66 ✔
988
        "outbound.connect_batch_size",
989
        setting<uint16_t>(&configured.network.outbound.connect_batch_size),
22 ✔
990
        "The number of concurrent attempts to establish one connection, defaults to {}."
991
    )
992
    (
66 ✔
993
        "outbound.host_pool_capacity",
994
        setting<uint32_t>(&configured.network.outbound.host_pool_capacity),
22 ✔
995
        "The maximum number of peer hosts in the pool, defaults to {}."
996
    )
997
    (
66 ✔
998
        "outbound.seeding_timeout_seconds",
999
        setting<uint32_t>(&configured.network.outbound.seeding_timeout_seconds),
22 ✔
1000
        "The time limit for obtaining seed connections and addresses, defaults to {}."
1001
    )
1002
    (
66 ✔
1003
        "outbound.username",
1004
        setting<std::string>(&configured.network.outbound.username),
22 ✔
1005
        "The socks5 proxy username (optional)."
1006
    )
1007
    (
66 ✔
1008
        "outbound.password",
1009
        secret<std::string>(&configured.network.outbound.password),
22 ✔
1010
        "The socks5 proxy password (optional)."
1011
    )
1012
    (
66 ✔
1013
        "outbound.socks",
1014
        setting<config::endpoint>(&configured.network.outbound.socks),
22 ✔
1015
        "The socks5 proxy endpoint (port required)."
1016
    )
1017

1018
    /* [inbound] */
1019
    ////(
1020
    ////    "inbound.secure",
1021
    ////    setting<bool>(&configured.network.inbound.secure),
1022
    ////    "Require transport layer security, defaults to {} (not implemented)."
1023
    ////)
1024
    (
66 ✔
1025
        "inbound.bind",
1026
        setting<network::config::authorities>(&configured.network.inbound.binds),
22 ✔
1027
        "IP address to bind for listening, multiple allowed, defaults to {} (all IPv4)."
1028
    )
1029
    (
66 ✔
1030
        "inbound.connections",
1031
        setting<uint16_t>(&configured.network.inbound.connections),
22 ✔
1032
        "The target number of incoming network connections, defaults to {}."
1033
    )
1034
    (
66 ✔
1035
        "inbound.rate_limit",
1036
        setting<uint32_t>(&configured.network.inbound.rate_limit),
22 ✔
1037
        "The send rate limit in bytes per second, defaults to {} (network controls)."
1038
    )
1039
    (
66 ✔
1040
        "inbound.connect_timeout_seconds",
1041
        setting<uint32_t>(&configured.network.inbound.connect_timeout_seconds),
22 ✔
1042
        "The time limit for connection establishment, defaults to {} (network controls)."
1043
    )
1044
    (
66 ✔
1045
        "inbound.inactivity_minutes",
1046
        setting<uint32_t>(&configured.network.inbound.inactivity_minutes),
22 ✔
1047
        "The inactivity time limit for any connection, defaults to {} (0 disables)."
1048
    )
1049
    (
66 ✔
1050
        "inbound.expiration_minutes",
1051
        setting<uint32_t>(&configured.network.inbound.expiration_minutes),
22 ✔
1052
        "The age limit for any connection, defaults to {} (0 disables)."
1053
    )
1054
    (
66 ✔
1055
        "inbound.minimum_buffer",
1056
        setting<uint32_t>(&configured.network.inbound.minimum_buffer),
22 ✔
1057
        "The minimum retained read buffer size, defaults to {}."
1058
    )
1059
    (
66 ✔
1060
        "inbound.maximum_backlog",
1061
        setting<uint32_t>(&configured.network.inbound.maximum_backlog),
22 ✔
1062
        "The maximum write backlog of a channel, defaults to {}."
1063
    )
1064
    (
66 ✔
1065
        "inbound.maximum_request",
1066
        setting<uint32_t>(&configured.network.inbound.maximum_request),
22 ✔
1067
        "The maximum allowed request size, defaults to {}."
1068
    )
1069
    (
66 ✔
1070
        "inbound.enable_loopback",
1071
        setting<bool>(&configured.network.inbound.enable_loopback),
22 ✔
1072
        "Allow connections from the node to itself, defaults to {}."
1073
    )
1074
    (
66 ✔
1075
        "inbound.self",
1076
        setting<network::config::addresses>(&configured.network.inbound.selfs),
22 ✔
1077
        "Address to advertise, multiple allowed."
1078
    )
1079
    (
66 ✔
1080
        "inbound.username",
1081
        setting<std::string>(&configured.network.inbound.username),
22 ✔
1082
        "The sam bridge username (optional)."
1083
    )
1084
    (
66 ✔
1085
        "inbound.password",
1086
        secret<std::string>(&configured.network.inbound.password),
22 ✔
1087
        "The sam bridge password (optional)."
1088
    )
1089
    (
66 ✔
1090
        "inbound.sam",
1091
        setting<config::endpoint>(&configured.network.inbound.bridge),
22 ✔
1092
        "The i2p sam bridge endpoint (port required)."
1093
    )
1094
    (
66 ✔
1095
        "inbound.key_path",
1096
        setting<config::path>(&configured.network.inbound.key_path),
22 ✔
1097
        "The i2p destination private key file path, created if not existing."
1098
    )
1099

1100
    /* [manual] */
1101
    ////(
1102
    ////    "manual.secure",
1103
    ////    setting<bool>(&configured.network.manual.secure),
1104
    ////    "Require transport layer security, defaults to {} (not implemented)."
1105
    ////)
1106
    (
66 ✔
1107
        "manual.bind",
1108
        setting<network::config::authorities>(&configured.network.manual.binds),
22 ✔
1109
        "IP address to bind manual connections, multiple allowed, defaults to {}."
1110
    )
1111
    ////(
1112
    ////    "manual.connections",
1113
    ////    setting<uint16_t>(&configured.network.manual.connections),
1114
    ////    "The target number of outgoing manual connections (not implemented)."
1115
    ////)
1116
    (
66 ✔
1117
        "manual.rate_limit",
1118
        setting<uint32_t>(&configured.network.manual.rate_limit),
22 ✔
1119
        "The send rate limit in bytes per second, defaults to {} (network controls)."
1120
    )
1121
    (
66 ✔
1122
        "manual.connect_timeout_seconds",
1123
        setting<uint32_t>(&configured.network.manual.connect_timeout_seconds),
22 ✔
1124
        "The time limit for connection establishment, defaults to {} (network controls)."
1125
    )
1126
    (
66 ✔
1127
        "manual.inactivity_minutes",
1128
        setting<uint32_t>(&configured.network.manual.inactivity_minutes),
22 ✔
1129
        "The inactivity time limit for any connection, defaults to {} (0 disables, will attempt reconnect)."
1130
    )
1131
    (
66 ✔
1132
        "manual.expiration_minutes",
1133
        setting<uint32_t>(&configured.network.manual.expiration_minutes),
22 ✔
1134
        "The age limit for any connection, defaults to {} (0 disables, will attempt reconnect)."
1135
    )
1136
    (
66 ✔
1137
        "manual.minimum_buffer",
1138
        setting<uint32_t>(&configured.network.manual.minimum_buffer),
22 ✔
1139
        "The minimum retained read buffer size, defaults to {}."
1140
    )
1141
    (
66 ✔
1142
        "manual.maximum_backlog",
1143
        setting<uint32_t>(&configured.network.manual.maximum_backlog),
22 ✔
1144
        "The maximum write backlog of a channel, defaults to {}."
1145
    )
1146
    (
66 ✔
1147
        "manual.maximum_request",
1148
        setting<uint32_t>(&configured.network.manual.maximum_request),
22 ✔
1149
        "The maximum allowed request size, defaults to {}."
1150
    )
1151
    (
66 ✔
1152
        "manual.peer",
1153
        setting<network::config::endpoints>(&configured.network.manual.peers),
22 ✔
1154
        "A persistent peer node, multiple allowed."
1155
    )
1156
    (
66 ✔
1157
        "manual.username",
1158
        setting<std::string>(&configured.network.manual.username),
22 ✔
1159
        "The socks5 proxy username (optional)."
1160
    )
1161
    (
66 ✔
1162
        "manual.password",
1163
        secret<std::string>(&configured.network.manual.password),
22 ✔
1164
        "The socks5 proxy password (optional)."
1165
    )
1166
    (
66 ✔
1167
        "manual.socks",
1168
        setting<config::endpoint>(&configured.network.manual.socks),
22 ✔
1169
        "The socks5 proxy endpoint (port required)."
1170
    )
1171

1172
    /* [wallet] */
1173
    (
66 ✔
1174
        "wallet.p2kh_prefix",
1175
        setting<config::byte>(&configured.server.wallet.p2kh_prefix),
22 ✔
1176
        "The pay-to-public-key-hash address prefix, defaults to {} (use '111' for testnet)."
1177
    )
1178
    (
66 ✔
1179
        "wallet.p2sh_prefix",
1180
        setting<config::byte>(&configured.server.wallet.p2sh_prefix),
22 ✔
1181
        "The pay-to-script-hash address prefix, defaults to {} (use '196' for testnet)."
1182
    )
1183
    (
66 ✔
1184
        "wallet.wif_prefix",
1185
        setting<config::byte>(&configured.server.wallet.wif_prefix),
22 ✔
1186
        "The wallet import format prefix, defaults to {} (use '239' for testnet)."
1187
    )
1188
    (
66 ✔
1189
        "wallet.witness_prefix",
1190
        setting<std::string>(&configured.server.wallet.witness_prefix),
22 ✔
1191
        "The witness address prefix, defaults to {} (use 'tb' for testnet)."
1192
    )
1193
    (
66 ✔
1194
        "wallet.silent_prefix",
1195
        setting<std::string>(&configured.server.wallet.silent_prefix),
22 ✔
1196
        "The silent payment address prefix, defaults to {} (use 'tsp' for testnet)."
1197
    )
1198
    (
66 ✔
1199
        "wallet.hd_private_prefix",
1200
        setting<uint32_t>(&configured.server.wallet.hd_private_prefix),
22 ✔
1201
        "The extended private key prefix, defaults to {} (use '70615956' for testnet)."
1202
    )
1203
    (
66 ✔
1204
        "wallet.hd_public_prefix",
1205
        setting<uint32_t>(&configured.server.wallet.hd_public_prefix),
22 ✔
1206
        "The extended public key prefix, defaults to {} (use '70617039' for testnet)."
1207
    )
1208

1209
    /* [admin] */
1210
    (
66 ✔
1211
        "admin.bind",
1212
        setting<network::config::authorities>(&configured.server.admin.binds),
22 ✔
1213
        "IP address to bind, multiple allowed, defaults to {} (disabled)."
1214
    )
1215
    (
66 ✔
1216
        "admin.safe",
1217
        setting<network::config::authorities>(&configured.server.admin.safes),
22 ✔
1218
        "IP address to secure bind, multiple allowed, defaults to {} (disabled)."
1219
    )
1220
    (
66 ✔
1221
        "admin.cert_auth",
1222
        setting<config::path>(&configured.server.admin.cert_auth),
22 ✔
1223
        "The trusted client certificate directory (*.PEM), enables client authentication."
1224
    )
1225
    (
66 ✔
1226
        "admin.cert_path",
1227
        setting<config::path>(&configured.server.admin.cert_path),
22 ✔
1228
        "The path to the server certificate file (.PEM), defaults to {}."
1229
    )
1230
    (
66 ✔
1231
        "admin.key_path",
1232
        setting<config::path>(&configured.server.admin.key_path),
22 ✔
1233
        "The path to the server private key file (.PEM), defaults to {}."
1234
    )
1235
    (
66 ✔
1236
        "admin.key_pass",
1237
        secret<std::string>(&configured.server.admin.key_pass),
22 ✔
1238
        "The password to decrypt the server private key file (.PEM), optional."
1239
    )
1240
    (
66 ✔
1241
        "admin.credential",
1242
        secret<network::config::credentials>(&configured.server.admin.credentials),
22 ✔
1243
        "The 'username:password[:method,...]' authorization (not secure), multiple allowed."
1244
    )
1245
    (
66 ✔
1246
        "admin.connections",
1247
        setting<uint16_t>(&configured.server.admin.connections),
22 ✔
1248
        "The required maximum number of connections, defaults to {}."
1249
    )
1250
    (
66 ✔
1251
        "admin.rate_limit",
1252
        setting<uint32_t>(&configured.server.admin.rate_limit),
22 ✔
1253
        "The send rate limit in bytes per second, defaults to {} (network controls)."
1254
    )
1255
    (
66 ✔
1256
        "admin.connect_timeout_seconds",
1257
        setting<uint32_t>(&configured.server.admin.connect_timeout_seconds),
22 ✔
1258
        "The time limit for connection establishment, defaults to {} (network controls)."
1259
    )
1260
    (
66 ✔
1261
        "admin.inactivity_minutes",
1262
        setting<uint32_t>(&configured.server.admin.inactivity_minutes),
22 ✔
1263
        "The idle timeout (http keep-alive), defaults to {}."
1264
    )
1265
    (
66 ✔
1266
        "admin.expiration_minutes",
1267
        setting<uint32_t>(&configured.server.admin.expiration_minutes),
22 ✔
1268
        "The maximum connection duration, defaults to {}."
1269
    )
1270
    (
66 ✔
1271
        "admin.minimum_buffer",
1272
        setting<uint32_t>(&configured.server.admin.minimum_buffer),
22 ✔
1273
        "The minimum retained read buffer size, defaults to {}."
1274
    )
1275
    (
66 ✔
1276
        "admin.maximum_backlog",
1277
        setting<uint32_t>(&configured.server.admin.maximum_backlog),
22 ✔
1278
        "The maximum write backlog of a channel, defaults to {}."
1279
    )
1280
    (
66 ✔
1281
        "admin.maximum_buffer",
1282
        setting<uint32_t>(&configured.server.admin.maximum_buffer),
22 ✔
1283
        "The maximum json response buffer size, defaults to {}."
1284
    )
1285
    (
66 ✔
1286
        "admin.maximum_request",
1287
        setting<uint32_t>(&configured.server.admin.maximum_request),
22 ✔
1288
        "The maximum allowed request size, defaults to {}."
1289
    )
1290
    (
66 ✔
1291
        "admin.server",
1292
        setting<std::string>(&configured.server.admin.server),
22 ✔
1293
        "The server name (http header), defaults to {}."
1294
    )
1295
    (
66 ✔
1296
        "admin.host",
1297
        setting<network::config::endpoints>(&configured.server.admin.hosts),
22 ✔
1298
        "The host name (http verification), multiple allowed, defaults to {} (disabled)."
1299
    )
1300
    (
66 ✔
1301
        "admin.origin",
1302
        setting<network::config::endpoints>(&configured.server.admin.origins),
22 ✔
1303
        "The allowed origin (see CORS), multiple allowed, defaults to {} (disabled)."
1304
    )
1305
    (
66 ✔
1306
        "admin.allow_opaque_origin",
1307
        setting<bool>(&configured.server.admin.allow_opaque_origin),
22 ✔
1308
        "Allow requests from opaque origin (see CORS), defaults to {}."
1309
    )
1310
    (
66 ✔
1311
        "admin.path",
1312
        setting<config::path>(&configured.server.admin.path),
22 ✔
1313
        "The required root path of source files to be served, defaults to {}."
1314
    )
1315
    (
66 ✔
1316
        "admin.default",
1317
        setting<std::string>(&configured.server.admin.default_),
22 ✔
1318
        "The path of the default source page, defaults to {}."
1319
    )
1320

1321
    /* [native] */
1322
    (
66 ✔
1323
        "native.bind",
1324
        setting<network::config::authorities>(&configured.server.native.binds),
22 ✔
1325
        "IP address to bind, multiple allowed, defaults to {} (disabled)."
1326
    )
1327
    (
66 ✔
1328
        "native.safe",
1329
        setting<network::config::authorities>(&configured.server.native.safes),
22 ✔
1330
        "IP address to secure bind, multiple allowed, defaults to {} (disabled)."
1331
    )
1332
    (
66 ✔
1333
        "native.cert_auth",
1334
        setting<config::path>(&configured.server.native.cert_auth),
22 ✔
1335
        "The trusted client certificate directory (*.PEM), enables client authentication."
1336
    )
1337
    (
66 ✔
1338
        "native.cert_path",
1339
        setting<config::path>(&configured.server.native.cert_path),
22 ✔
1340
        "The path to the server certificate file (.PEM), defaults to {}."
1341
    )
1342
    (
66 ✔
1343
        "native.key_path",
1344
        setting<config::path>(&configured.server.native.key_path),
22 ✔
1345
        "The path to the server private key file (.PEM), defaults to {}."
1346
    )
1347
    (
66 ✔
1348
        "native.key_pass",
1349
        secret<std::string>(&configured.server.native.key_pass),
22 ✔
1350
        "The password to decrypt the server private key file (.PEM), optional."
1351
    )
1352
    (
66 ✔
1353
        "native.credential",
1354
        secret<network::config::credentials>(&configured.server.native.credentials),
22 ✔
1355
        "The 'username:password[:method,...]' authorization (not secure), multiple allowed."
1356
    )
1357
    (
66 ✔
1358
        "native.connections",
1359
        setting<uint16_t>(&configured.server.native.connections),
22 ✔
1360
        "The required maximum number of connections, defaults to {}."
1361
    )
1362
    (
66 ✔
1363
        "native.rate_limit",
1364
        setting<uint32_t>(&configured.server.native.rate_limit),
22 ✔
1365
        "The send rate limit in bytes per second, defaults to {} (network controls)."
1366
    )
1367
    (
66 ✔
1368
        "native.connect_timeout_seconds",
1369
        setting<uint32_t>(&configured.server.native.connect_timeout_seconds),
22 ✔
1370
        "The time limit for connection establishment, defaults to {} (network controls)."
1371
    )
1372
    (
66 ✔
1373
        "native.inactivity_minutes",
1374
        setting<uint32_t>(&configured.server.native.inactivity_minutes),
22 ✔
1375
        "The idle timeout (http keep-alive), defaults to {}."
1376
    )
1377
    (
66 ✔
1378
        "native.expiration_minutes",
1379
        setting<uint32_t>(&configured.server.native.expiration_minutes),
22 ✔
1380
        "The maximum connection duration, defaults to {}."
1381
    )
1382
    (
66 ✔
1383
        "native.minimum_buffer",
1384
        setting<uint32_t>(&configured.server.native.minimum_buffer),
22 ✔
1385
        "The minimum retained read buffer size, defaults to {}."
1386
    )
1387
    (
66 ✔
1388
        "native.maximum_backlog",
1389
        setting<uint32_t>(&configured.server.native.maximum_backlog),
22 ✔
1390
        "The maximum write backlog of a channel, defaults to {}."
1391
    )
1392
    (
66 ✔
1393
        "native.maximum_buffer",
1394
        setting<uint32_t>(&configured.server.native.maximum_buffer),
22 ✔
1395
        "The maximum json response buffer size, defaults to {}."
1396
    )
1397
    (
66 ✔
1398
        "native.maximum_request",
1399
        setting<uint32_t>(&configured.server.native.maximum_request),
22 ✔
1400
        "The maximum allowed request size, defaults to {}."
1401
    )
1402
    (
66 ✔
1403
        "native.server",
1404
        setting<std::string>(&configured.server.native.server),
22 ✔
1405
        "The server name (http header), defaults to {}."
1406
    )
1407
    (
66 ✔
1408
        "native.host",
1409
        setting<network::config::endpoints>(&configured.server.native.hosts),
22 ✔
1410
        "The host name (http verification), multiple allowed, defaults to {} (disabled)."
1411
    )
1412
    (
66 ✔
1413
        "native.origin",
1414
        setting<network::config::endpoints>(&configured.server.native.origins),
22 ✔
1415
        "The allowed origin (see CORS), multiple allowed, defaults to {} (disabled)."
1416
    )
1417
    (
66 ✔
1418
        "native.allow_opaque_origin",
1419
        setting<bool>(&configured.server.native.allow_opaque_origin),
22 ✔
1420
        "Allow requests from opaque origin (see CORS), defaults to {}."
1421
    )
1422
    (
66 ✔
1423
        "native.path",
1424
        setting<config::path>(&configured.server.native.path),
22 ✔
1425
        "The required root path of source files to be served, defaults to {}."
1426
    )
1427
    (
66 ✔
1428
        "native.default",
1429
        setting<std::string>(&configured.server.native.default_),
22 ✔
1430
        "The path of the default source page, defaults to {}."
1431
    )
1432
    (
66 ✔
1433
        "native.websocket",
1434
        setting<bool>(&configured.server.native.websocket),
22 ✔
1435
        "Enable websocket interface, defaults to {}."
1436
    )
1437

1438
    /* [bitcoind] */
1439
    (
66 ✔
1440
        "bitcoind.bind",
1441
        setting<network::config::authorities>(&configured.server.bitcoind.binds),
22 ✔
1442
        "IP address to bind, multiple allowed, defaults to {} (disabled)."
1443
    )
1444
    (
66 ✔
1445
        "bitcoind.safe",
1446
        setting<network::config::authorities>(&configured.server.bitcoind.safes),
22 ✔
1447
        "IP address to secure bind, multiple allowed, defaults to {} (disabled)."
1448
    )
1449
    (
66 ✔
1450
        "bitcoind.cert_auth",
1451
        setting<config::path>(&configured.server.bitcoind.cert_auth),
22 ✔
1452
        "The trusted client certificate directory (*.PEM), enables client authentication."
1453
    )
1454
    (
66 ✔
1455
        "bitcoind.cert_path",
1456
        setting<config::path>(&configured.server.bitcoind.cert_path),
22 ✔
1457
        "The path to the server certificate file (.PEM), defaults to {}."
1458
    )
1459
    (
66 ✔
1460
        "bitcoind.key_path",
1461
        setting<config::path>(&configured.server.bitcoind.key_path),
22 ✔
1462
        "The path to the server private key file (.PEM), defaults to {}."
1463
    )
1464
    (
66 ✔
1465
        "bitcoind.key_pass",
1466
        secret<std::string>(&configured.server.bitcoind.key_pass),
22 ✔
1467
        "The password to decrypt the server private key file (.PEM), optional."
1468
    )
1469
    (
66 ✔
1470
        "bitcoind.credential",
1471
        secret<network::config::credentials>(&configured.server.bitcoind.credentials),
22 ✔
1472
        "The 'username:password[:method,...]' authorization (not secure), multiple allowed."
1473
    )
1474
    (
66 ✔
1475
        "bitcoind.connections",
1476
        setting<uint16_t>(&configured.server.bitcoind.connections),
22 ✔
1477
        "The required maximum number of connections, defaults to {}."
1478
    )
1479
    (
66 ✔
1480
        "bitcoind.rate_limit",
1481
        setting<uint32_t>(&configured.server.bitcoind.rate_limit),
22 ✔
1482
        "The send rate limit in bytes per second, defaults to {} (network controls)."
1483
    )
1484
    (
66 ✔
1485
        "bitcoind.connect_timeout_seconds",
1486
        setting<uint32_t>(&configured.server.bitcoind.connect_timeout_seconds),
22 ✔
1487
        "The time limit for connection establishment, defaults to {} (network controls)."
1488
    )
1489
    (
66 ✔
1490
        "bitcoind.inactivity_minutes",
1491
        setting<uint32_t>(&configured.server.bitcoind.inactivity_minutes),
22 ✔
1492
        "The idle timeout (http keep-alive), defaults to {}."
1493
    )
1494
    (
66 ✔
1495
        "bitcoind.expiration_minutes",
1496
        setting<uint32_t>(&configured.server.bitcoind.expiration_minutes),
22 ✔
1497
        "The maximum connection duration, defaults to {}."
1498
    )
1499
    (
66 ✔
1500
        "bitcoind.minimum_buffer",
1501
        setting<uint32_t>(&configured.server.bitcoind.minimum_buffer),
22 ✔
1502
        "The minimum retained read buffer size, defaults to {}."
1503
    )
1504
    (
66 ✔
1505
        "bitcoind.maximum_backlog",
1506
        setting<uint32_t>(&configured.server.bitcoind.maximum_backlog),
22 ✔
1507
        "The maximum write backlog of a channel, defaults to {}."
1508
    )
1509
    (
66 ✔
1510
        "bitcoind.maximum_buffer",
1511
        setting<uint32_t>(&configured.server.bitcoind.maximum_buffer),
22 ✔
1512
        "The maximum json response buffer size, defaults to {}."
1513
    )
1514
    (
66 ✔
1515
        "bitcoind.maximum_request",
1516
        setting<uint32_t>(&configured.server.bitcoind.maximum_request),
22 ✔
1517
        "The maximum allowed request size, defaults to {}."
1518
    )
1519
    (
66 ✔
1520
        "bitcoind.server",
1521
        setting<std::string>(&configured.server.bitcoind.server),
22 ✔
1522
        "The server name (http header), defaults to {}."
1523
    )
1524
    (
66 ✔
1525
        "bitcoind.version",
1526
        setting<version>(&configured.server.bitcoind.version),
22 ✔
1527
        "The version identity (getnetworkinfo), defaults to {}."
1528
    )
1529
    (
66 ✔
1530
        "bitcoind.subversion",
1531
        setting<std::string>(&configured.server.bitcoind.subversion),
22 ✔
1532
        "The subversion identity (getnetworkinfo), defaults to {}."
1533
    )
1534
    (
66 ✔
1535
        "bitcoind.host",
1536
        setting<network::config::endpoints>(&configured.server.bitcoind.hosts),
22 ✔
1537
        "The host name (http verification), multiple allowed, defaults to {} (disabled)."
1538
    )
1539
    (
66 ✔
1540
        "bitcoind.origin",
1541
        setting<network::config::endpoints>(&configured.server.bitcoind.origins),
22 ✔
1542
        "The allowed origin (see CORS), multiple allowed, defaults to {} (disabled)."
1543
    )
1544
    (
66 ✔
1545
        "bitcoind.allow_opaque_origin",
1546
        setting<bool>(&configured.server.bitcoind.allow_opaque_origin),
22 ✔
1547
        "Allow requests from opaque origin (see CORS), defaults to {}."
1548
    )
1549

1550
    /* [bitcoind_zmq] */
1551
    (
66 ✔
1552
        "bitcoind_zmq.bind",
1553
        setting<network::config::authorities>(&configured.server.bitcoind_zmq.binds),
22 ✔
1554
        "IP address to bind, multiple allowed, defaults to {} (disabled)."
1555
    )
1556
    (
66 ✔
1557
        "bitcoind_zmq.safe",
1558
        setting<network::config::authorities>(&configured.server.bitcoind_zmq.safes),
22 ✔
1559
        "IP address to secure (CurveZMQ) bind, multiple allowed, defaults to {} (disabled)."
1560
    )
1561
    (
66 ✔
1562
        "bitcoind_zmq.cert",
1563
        setting<std::vector<config::base85>>(&configured.server.bitcoind_zmq.certs),
22 ✔
1564
        "The Z85 encoded public key of an authorized client, multiple allowed, defaults to {} (all)."
1565
    )
1566
    (
66 ✔
1567
        "bitcoind_zmq.connections",
1568
        setting<uint16_t>(&configured.server.bitcoind_zmq.connections),
22 ✔
1569
        "The required maximum number of connections, defaults to {}."
1570
    )
1571
    (
66 ✔
1572
        "bitcoind_zmq.rate_limit",
1573
        setting<uint32_t>(&configured.server.bitcoind_zmq.rate_limit),
22 ✔
1574
        "The send rate limit in bytes per second, defaults to {} (network controls)."
1575
    )
1576
    (
66 ✔
1577
        "bitcoind_zmq.connect_timeout_seconds",
1578
        setting<uint32_t>(&configured.server.bitcoind_zmq.connect_timeout_seconds),
22 ✔
1579
        "The time limit for connection establishment, defaults to {} (network controls)."
1580
    )
1581
    (
66 ✔
1582
        "bitcoind_zmq.minimum_buffer",
1583
        setting<uint32_t>(&configured.server.bitcoind_zmq.minimum_buffer),
22 ✔
1584
        "The minimum retained read buffer size, defaults to {}."
1585
    )
1586
    (
66 ✔
1587
        "bitcoind_zmq.maximum_backlog",
1588
        setting<uint32_t>(&configured.server.bitcoind_zmq.maximum_backlog),
22 ✔
1589
        "The maximum write backlog of a channel, defaults to {}."
1590
    )
1591
    (
66 ✔
1592
        "bitcoind_zmq.maximum_request",
1593
        setting<uint32_t>(&configured.server.bitcoind_zmq.maximum_request),
22 ✔
1594
        "The maximum allowed request size, defaults to {}."
1595
    )
1596
    (
66 ✔
1597
        "bitcoind_zmq.maximum_subscriptions",
1598
        setting<uint32_t>(&configured.server.bitcoind_zmq.maximum_subscriptions),
22 ✔
1599
        "The maximum topic subscriptions per connection, defaults to {}."
1600
    )
1601
    (
66 ✔
1602
        "bitcoind_zmq.key",
1603
        secret<config::base85>(&configured.server.bitcoind_zmq.key),
22 ✔
1604
        "The Z85 encoded CurveZMQ server secret key, defaults to none (unencrypted)."
1605
    )
1606

1607
    /* [btcd] */
1608
    (
66 ✔
1609
        "btcd.bind",
1610
        setting<network::config::authorities>(&configured.server.btcd.binds),
22 ✔
1611
        "IP address to bind, multiple allowed, defaults to {} (disabled)."
1612
    )
1613
    (
66 ✔
1614
        "btcd.safe",
1615
        setting<network::config::authorities>(&configured.server.btcd.safes),
22 ✔
1616
        "IP address to secure bind, multiple allowed, defaults to {} (disabled)."
1617
    )
1618
    (
66 ✔
1619
        "btcd.cert_auth",
1620
        setting<config::path>(&configured.server.btcd.cert_auth),
22 ✔
1621
        "The trusted client certificate directory (*.PEM), enables client authentication."
1622
    )
1623
    (
66 ✔
1624
        "btcd.cert_path",
1625
        setting<config::path>(&configured.server.btcd.cert_path),
22 ✔
1626
        "The path to the server certificate file (.PEM), defaults to {}."
1627
    )
1628
    (
66 ✔
1629
        "btcd.key_path",
1630
        setting<config::path>(&configured.server.btcd.key_path),
22 ✔
1631
        "The path to the server private key file (.PEM), defaults to {}."
1632
    )
1633
    (
66 ✔
1634
        "btcd.key_pass",
1635
        secret<std::string>(&configured.server.btcd.key_pass),
22 ✔
1636
        "The password to decrypt the server private key file (.PEM), optional."
1637
    )
1638
    (
66 ✔
1639
        "btcd.credential",
1640
        secret<network::config::credentials>(&configured.server.btcd.credentials),
22 ✔
1641
        "The 'username:password[:method,...]' authorization (not secure), multiple allowed."
1642
    )
1643
    (
66 ✔
1644
        "btcd.connections",
1645
        setting<uint16_t>(&configured.server.btcd.connections),
22 ✔
1646
        "The required maximum number of connections, defaults to {}."
1647
    )
1648
    (
66 ✔
1649
        "btcd.rate_limit",
1650
        setting<uint32_t>(&configured.server.btcd.rate_limit),
22 ✔
1651
        "The send rate limit in bytes per second, defaults to {} (network controls)."
1652
    )
1653
    (
66 ✔
1654
        "btcd.connect_timeout_seconds",
1655
        setting<uint32_t>(&configured.server.btcd.connect_timeout_seconds),
22 ✔
1656
        "The time limit for connection establishment, defaults to {} (network controls)."
1657
    )
1658
    (
66 ✔
1659
        "btcd.inactivity_minutes",
1660
        setting<uint32_t>(&configured.server.btcd.inactivity_minutes),
22 ✔
1661
        "The idle timeout (http/ws keep-alive), defaults to {}."
1662
    )
1663
    (
66 ✔
1664
        "btcd.expiration_minutes",
1665
        setting<uint32_t>(&configured.server.btcd.expiration_minutes),
22 ✔
1666
        "The maximum connection duration, defaults to {}."
1667
    )
1668
    (
66 ✔
1669
        "btcd.minimum_buffer",
1670
        setting<uint32_t>(&configured.server.btcd.minimum_buffer),
22 ✔
1671
        "The minimum retained read buffer size, defaults to {}."
1672
    )
1673
    (
66 ✔
1674
        "btcd.maximum_backlog",
1675
        setting<uint32_t>(&configured.server.btcd.maximum_backlog),
22 ✔
1676
        "The maximum write backlog of a channel, defaults to {}."
1677
    )
1678
    (
66 ✔
1679
        "btcd.maximum_buffer",
1680
        setting<uint32_t>(&configured.server.btcd.maximum_buffer),
22 ✔
1681
        "The maximum json response buffer size, defaults to {}."
1682
    )
1683
    (
66 ✔
1684
        "btcd.maximum_request",
1685
        setting<uint32_t>(&configured.server.btcd.maximum_request),
22 ✔
1686
        "The maximum allowed request size, defaults to {}."
1687
    )
1688
    (
66 ✔
1689
        "btcd.server",
1690
        setting<std::string>(&configured.server.btcd.server),
22 ✔
1691
        "The server name (http header), defaults to {}."
1692
    )
1693
    (
66 ✔
1694
        "btcd.maximum_filters",
1695
        setting<uint32_t>(&configured.server.btcd.maximum_filters),
22 ✔
1696
        "The maximum number of loadtxfilter watches, defaults to {}."
1697
    )
1698
    (
66 ✔
1699
        "btcd.maximum_history",
1700
        setting<uint32_t>(&configured.server.btcd.maximum_history),
22 ✔
1701
        "The maximum number of address history entries, defaults to {}."
1702
    )
1703
    (
66 ✔
1704
        "btcd.host",
1705
        setting<network::config::endpoints>(&configured.server.btcd.hosts),
22 ✔
1706
        "The host name (http verification), multiple allowed, defaults to {} (disabled)."
1707
    )
1708
    (
66 ✔
1709
        "btcd.origin",
1710
        setting<network::config::endpoints>(&configured.server.btcd.origins),
22 ✔
1711
        "The allowed origin (see CORS), multiple allowed, defaults to {} (disabled)."
1712
    )
1713
    (
66 ✔
1714
        "btcd.allow_opaque_origin",
1715
        setting<bool>(&configured.server.btcd.allow_opaque_origin),
22 ✔
1716
        "Allow requests from opaque origin (see CORS), defaults to {}."
1717
    )
1718

1719
    /* [electrum] */
1720
    (
66 ✔
1721
        "electrum.bind",
1722
        setting<network::config::authorities>(&configured.server.electrum.binds),
22 ✔
1723
        "IP address to bind, multiple allowed, defaults to {} (disabled)."
1724
    )
1725
    (
66 ✔
1726
        "electrum.safe",
1727
        setting<network::config::authorities>(&configured.server.electrum.safes),
22 ✔
1728
        "IP address to secure bind, multiple allowed, defaults to {} (disabled)."
1729
    )
1730
    (
66 ✔
1731
        "electrum.cert_auth",
1732
        setting<config::path>(&configured.server.electrum.cert_auth),
22 ✔
1733
        "The trusted client certificate directory (*.PEM), enables client authentication."
1734
    )
1735
    (
66 ✔
1736
        "electrum.cert_path",
1737
        setting<config::path>(&configured.server.electrum.cert_path),
22 ✔
1738
        "The path to the server certificate file (.PEM), defaults to {}."
1739
    )
1740
    (
66 ✔
1741
        "electrum.key_path",
1742
        setting<config::path>(&configured.server.electrum.key_path),
22 ✔
1743
        "The path to the server private key file (.PEM), defaults to {}."
1744
    )
1745
    (
66 ✔
1746
        "electrum.key_pass",
1747
        secret<std::string>(&configured.server.electrum.key_pass),
22 ✔
1748
        "The password to decrypt the server private key file (.PEM), optional."
1749
    )
1750
    (
66 ✔
1751
        "electrum.credential",
1752
        secret<network::config::credentials>(&configured.server.electrum.credentials),
22 ✔
1753
        "The 'username:password[:method,...]' authorization (not secure), multiple allowed."
1754
    )
1755
    (
66 ✔
1756
        "electrum.connections",
1757
        setting<uint16_t>(&configured.server.electrum.connections),
22 ✔
1758
        "The required maximum number of connections, defaults to {}."
1759
    )
1760
    (
66 ✔
1761
        "electrum.rate_limit",
1762
        setting<uint32_t>(&configured.server.electrum.rate_limit),
22 ✔
1763
        "The send rate limit in bytes per second, defaults to {} (network controls)."
1764
    )
1765
    (
66 ✔
1766
        "electrum.connect_timeout_seconds",
1767
        setting<uint32_t>(&configured.server.electrum.connect_timeout_seconds),
22 ✔
1768
        "The time limit for connection establishment, defaults to {} (network controls)."
1769
    )
1770
    (
66 ✔
1771
        "electrum.inactivity_minutes",
1772
        setting<uint32_t>(&configured.server.electrum.inactivity_minutes),
22 ✔
1773
        "The idle timeout (http keep-alive), defaults to {}."
1774
    )
1775
    (
66 ✔
1776
        "electrum.expiration_minutes",
1777
        setting<uint32_t>(&configured.server.electrum.expiration_minutes),
22 ✔
1778
        "The maximum connection duration, defaults to {}."
1779
    )
1780
    (
66 ✔
1781
        "electrum.minimum_buffer",
1782
        setting<uint32_t>(&configured.server.electrum.minimum_buffer),
22 ✔
1783
        "The minimum retained read buffer size, defaults to {}."
1784
    )
1785
    (
66 ✔
1786
        "electrum.maximum_backlog",
1787
        setting<uint32_t>(&configured.server.electrum.maximum_backlog),
22 ✔
1788
        "The maximum write backlog of a channel, defaults to {}."
1789
    )
1790
    (
66 ✔
1791
        "electrum.maximum_buffer",
1792
        setting<uint32_t>(&configured.server.electrum.maximum_buffer),
22 ✔
1793
        "The maximum json response buffer size, defaults to {}."
1794
    )
1795
    (
66 ✔
1796
        "electrum.maximum_request",
1797
        setting<uint32_t>(&configured.server.electrum.maximum_request),
22 ✔
1798
        "The maximum allowed request size, defaults to {}."
1799
    )
1800
    (
66 ✔
1801
        "electrum.maximum_headers",
1802
        setting<uint32_t>(&configured.server.electrum.maximum_headers),
22 ✔
1803
        "The maximum allowed headers returned per request, defaults to {}."
1804
    )
1805
    (
66 ✔
1806
        "electrum.maximum_history",
1807
        setting<uint32_t>(&configured.server.electrum.maximum_history),
22 ✔
1808
        "The maximum number of address history entries upon one subscription, defaults to {}."
1809
    )
1810
    (
66 ✔
1811
        "electrum.maximum_subscriptions",
1812
        setting<uint32_t>(&configured.server.electrum.maximum_subscriptions),
22 ✔
1813
        "The maximum allowed address subscriptions per channel, defaults to {}."
1814
    )
1815
    (
66 ✔
1816
        "electrum.ping_interval_seconds",
1817
        setting<uint32_t>(&configured.server.electrum.ping_interval_seconds),
22 ✔
1818
        "The seconds between unrequested pings, defaults to {} (disabled)."
1819
    )
1820
    (
66 ✔
1821
        "electrum.ping_size",
1822
        setting<uint32_t>(&configured.server.electrum.ping_size),
22 ✔
1823
        "The hex characters of unrequested ping data, defaults to {}."
1824
    )
1825
    (
66 ✔
1826
        "electrum.protocol_minimum",
1827
        setting<version>(&configured.server.electrum.protocol_minimum),
22 ✔
1828
        "Minimum protocol version, defaults to {}."
1829
    )
1830
    (
66 ✔
1831
        "electrum.protocol_maximum",
1832
        setting<version>(&configured.server.electrum.protocol_maximum),
22 ✔
1833
        "Maximum protocol version, defaults to {}."
1834
    )
1835
    (
66 ✔
1836
        "electrum.server_name",
1837
        setting<std::string>(&configured.server.electrum.server_name),
22 ✔
1838
        "String returned by server.version, defaults to {}."
1839
    )
1840
    (
66 ✔
1841
        "electrum.donation_address",
1842
        setting<std::string>(&configured.server.electrum.donation_address),
22 ✔
1843
        "String returned by server.donation_address, defaults to {}."
1844
    )
1845
    (
66 ✔
1846
        "electrum.banner_message",
1847
        setting<std::string>(&configured.server.electrum.banner_message),
22 ✔
1848
        "String returned by server.banner, defaults to {}."
1849
    )
1850
    (
66 ✔
1851
        "electrum.self_bind",
1852
        setting<network::config::endpoints>(&configured.server.electrum.self_binds),
22 ✔
1853
        "Advertised host:port at which this server can be reached (defaults to {})."
1854
    )
1855
    (
66 ✔
1856
        "electrum.self_safe",
1857
        setting<network::config::endpoints>(&configured.server.electrum.self_safes),
22 ✔
1858
        "Advertised secure host:port at which this server can be reached (defaults to {})."
1859
    )
1860
    (
66 ✔
1861
        "electrum.more_bind",
1862
        setting<network::config::endpoints>(&configured.server.electrum.more_binds),
22 ✔
1863
        "Advertised host:port at which another server can be reached (defaults to {})."
1864
    )
1865
    (
66 ✔
1866
        "electrum.more_safe",
1867
        setting<network::config::endpoints>(&configured.server.electrum.more_safes),
22 ✔
1868
        "Advertised secure host:port at which another server can be reached (defaults to {})."
1869
    )
1870

1871
    /* [sparrow] */
1872
    (
66 ✔
1873
        "sparrow.bind",
1874
        setting<network::config::authorities>(&configured.server.sparrow.binds),
22 ✔
1875
        "IP address to bind, multiple allowed, defaults to {} (disabled)."
1876
    )
1877
    (
66 ✔
1878
        "sparrow.safe",
1879
        setting<network::config::authorities>(&configured.server.sparrow.safes),
22 ✔
1880
        "IP address to secure bind, multiple allowed, defaults to {} (disabled)."
1881
    )
1882
    (
66 ✔
1883
        "sparrow.cert_auth",
1884
        setting<config::path>(&configured.server.sparrow.cert_auth),
22 ✔
1885
        "The trusted client certificate directory (*.PEM), enables client authentication."
1886
    )
1887
    (
66 ✔
1888
        "sparrow.cert_path",
1889
        setting<config::path>(&configured.server.sparrow.cert_path),
22 ✔
1890
        "The path to the server certificate file (.PEM), defaults to {}."
1891
    )
1892
    (
66 ✔
1893
        "sparrow.key_path",
1894
        setting<config::path>(&configured.server.sparrow.key_path),
22 ✔
1895
        "The path to the server private key file (.PEM), defaults to {}."
1896
    )
1897
    (
66 ✔
1898
        "sparrow.key_pass",
1899
        secret<std::string>(&configured.server.sparrow.key_pass),
22 ✔
1900
        "The password to decrypt the server private key file (.PEM), optional."
1901
    )
1902
    (
66 ✔
1903
        "sparrow.credential",
1904
        secret<network::config::credentials>(&configured.server.sparrow.credentials),
22 ✔
1905
        "The 'username:password[:method,...]' authorization (not secure), multiple allowed."
1906
    )
1907
    (
66 ✔
1908
        "sparrow.connections",
1909
        setting<uint16_t>(&configured.server.sparrow.connections),
22 ✔
1910
        "The required maximum number of connections, defaults to {}."
1911
    )
1912
    (
66 ✔
1913
        "sparrow.rate_limit",
1914
        setting<uint32_t>(&configured.server.sparrow.rate_limit),
22 ✔
1915
        "The send rate limit in bytes per second, defaults to {} (network controls)."
1916
    )
1917
    (
66 ✔
1918
        "sparrow.connect_timeout_seconds",
1919
        setting<uint32_t>(&configured.server.sparrow.connect_timeout_seconds),
22 ✔
1920
        "The time limit for connection establishment, defaults to {} (network controls)."
1921
    )
1922
    (
66 ✔
1923
        "sparrow.inactivity_minutes",
1924
        setting<uint32_t>(&configured.server.sparrow.inactivity_minutes),
22 ✔
1925
        "The idle timeout (http keep-alive), defaults to {}."
1926
    )
1927
    (
66 ✔
1928
        "sparrow.expiration_minutes",
1929
        setting<uint32_t>(&configured.server.sparrow.expiration_minutes),
22 ✔
1930
        "The maximum connection duration, defaults to {}."
1931
    )
1932
    (
66 ✔
1933
        "sparrow.minimum_buffer",
1934
        setting<uint32_t>(&configured.server.sparrow.minimum_buffer),
22 ✔
1935
        "The minimum retained read buffer size, defaults to {}."
1936
    )
1937
    (
66 ✔
1938
        "sparrow.maximum_backlog",
1939
        setting<uint32_t>(&configured.server.sparrow.maximum_backlog),
22 ✔
1940
        "The maximum write backlog of a channel, defaults to {}."
1941
    )
1942
    (
66 ✔
1943
        "sparrow.maximum_buffer",
1944
        setting<uint32_t>(&configured.server.sparrow.maximum_buffer),
22 ✔
1945
        "The maximum json response buffer size, defaults to {}."
1946
    )
1947
    (
66 ✔
1948
        "sparrow.maximum_request",
1949
        setting<uint32_t>(&configured.server.sparrow.maximum_request),
22 ✔
1950
        "The maximum allowed request size, defaults to {}."
1951
    )
1952
    (
66 ✔
1953
        "sparrow.maximum_headers",
1954
        setting<uint32_t>(&configured.server.sparrow.maximum_headers),
22 ✔
1955
        "The maximum allowed headers returned per request, defaults to {}."
1956
    )
1957
    (
66 ✔
1958
        "sparrow.maximum_history",
1959
        setting<uint32_t>(&configured.server.sparrow.maximum_history),
22 ✔
1960
        "The maximum number of address history entries upon one subscription, defaults to {}."
1961
    )
1962
    (
66 ✔
1963
        "sparrow.maximum_subscriptions",
1964
        setting<uint32_t>(&configured.server.sparrow.maximum_subscriptions),
22 ✔
1965
        "The maximum allowed address subscriptions per channel, defaults to {}."
1966
    )
1967
    (
66 ✔
1968
        "sparrow.ping_interval_seconds",
1969
        setting<uint32_t>(&configured.server.sparrow.ping_interval_seconds),
22 ✔
1970
        "The seconds between unrequested pings, defaults to {} (disabled)."
1971
    )
1972
    (
66 ✔
1973
        "sparrow.ping_size",
1974
        setting<uint32_t>(&configured.server.sparrow.ping_size),
22 ✔
1975
        "The hex characters of unrequested ping data, defaults to {}."
1976
    )
1977
    (
66 ✔
1978
        "sparrow.protocol_minimum",
1979
        setting<version>(&configured.server.sparrow.protocol_minimum),
22 ✔
1980
        "Minimum protocol version, defaults to {}."
1981
    )
1982
    (
66 ✔
1983
        "sparrow.protocol_maximum",
1984
        setting<version>(&configured.server.sparrow.protocol_maximum),
22 ✔
1985
        "Maximum protocol version, defaults to {}."
1986
    )
1987
    (
66 ✔
1988
        "sparrow.server_name",
1989
        setting<std::string>(&configured.server.sparrow.server_name),
22 ✔
1990
        "String returned by server.version, defaults to {}."
1991
    )
1992
    (
66 ✔
1993
        "sparrow.donation_address",
1994
        setting<std::string>(&configured.server.sparrow.donation_address),
22 ✔
1995
        "String returned by server.donation_address, defaults to {}."
1996
    )
1997
    (
66 ✔
1998
        "sparrow.banner_message",
1999
        setting<std::string>(&configured.server.sparrow.banner_message),
22 ✔
2000
        "String returned by server.banner, defaults to {}."
2001
    )
2002
    (
66 ✔
2003
        "sparrow.self_bind",
2004
        setting<network::config::endpoints>(&configured.server.sparrow.self_binds),
22 ✔
2005
        "Advertised host:port at which this server can be reached (defaults to {})."
2006
    )
2007
    (
66 ✔
2008
        "sparrow.self_safe",
2009
        setting<network::config::endpoints>(&configured.server.sparrow.self_safes),
22 ✔
2010
        "Advertised secure host:port at which this server can be reached (defaults to {})."
2011
    )
2012
    (
66 ✔
2013
        "sparrow.more_bind",
2014
        setting<network::config::endpoints>(&configured.server.sparrow.more_binds),
22 ✔
2015
        "Advertised host:port at which another server can be reached (defaults to {})."
2016
    )
2017
    (
66 ✔
2018
        "sparrow.more_safe",
2019
        setting<network::config::endpoints>(&configured.server.sparrow.more_safes),
22 ✔
2020
        "Advertised secure host:port at which another server can be reached (defaults to {})."
2021
    )
2022
    /* [esplora] */
2023
    (
66 ✔
2024
        "esplora.bind",
2025
        setting<network::config::authorities>(&configured.server.esplora.binds),
22 ✔
2026
        "IP address to bind, multiple allowed, defaults to {} (disabled)."
2027
    )
2028
    (
66 ✔
2029
        "esplora.safe",
2030
        setting<network::config::authorities>(&configured.server.esplora.safes),
22 ✔
2031
        "IP address to secure bind, multiple allowed, defaults to {} (disabled)."
2032
    )
2033
    (
66 ✔
2034
        "esplora.cert_auth",
2035
        setting<config::path>(&configured.server.esplora.cert_auth),
22 ✔
2036
        "The trusted client certificate directory (*.PEM), enables client authentication."
2037
    )
2038
    (
66 ✔
2039
        "esplora.cert_path",
2040
        setting<config::path>(&configured.server.esplora.cert_path),
22 ✔
2041
        "The path to the server certificate file (.PEM), defaults to {}."
2042
    )
2043
    (
66 ✔
2044
        "esplora.key_path",
2045
        setting<config::path>(&configured.server.esplora.key_path),
22 ✔
2046
        "The path to the server private key file (.PEM), defaults to {}."
2047
    )
2048
    (
66 ✔
2049
        "esplora.key_pass",
2050
        secret<std::string>(&configured.server.esplora.key_pass),
22 ✔
2051
        "The password to decrypt the server private key file (.PEM), optional."
2052
    )
2053
    (
66 ✔
2054
        "esplora.credential",
2055
        secret<network::config::credentials>(&configured.server.esplora.credentials),
22 ✔
2056
        "The 'username:password[:method,...]' authorization (not secure), multiple allowed."
2057
    )
2058
    (
66 ✔
2059
        "esplora.connections",
2060
        setting<uint16_t>(&configured.server.esplora.connections),
22 ✔
2061
        "The required maximum number of connections, defaults to {}."
2062
    )
2063
    (
66 ✔
2064
        "esplora.rate_limit",
2065
        setting<uint32_t>(&configured.server.esplora.rate_limit),
22 ✔
2066
        "The send rate limit in bytes per second, defaults to {} (network controls)."
2067
    )
2068
    (
66 ✔
2069
        "esplora.connect_timeout_seconds",
2070
        setting<uint32_t>(&configured.server.esplora.connect_timeout_seconds),
22 ✔
2071
        "The time limit for connection establishment, defaults to {} (network controls)."
2072
    )
2073
    (
66 ✔
2074
        "esplora.inactivity_minutes",
2075
        setting<uint32_t>(&configured.server.esplora.inactivity_minutes),
22 ✔
2076
        "The idle timeout (http keep-alive), defaults to {}."
2077
    )
2078
    (
66 ✔
2079
        "esplora.expiration_minutes",
2080
        setting<uint32_t>(&configured.server.esplora.expiration_minutes),
22 ✔
2081
        "The maximum connection duration, defaults to {}."
2082
    )
2083
    (
66 ✔
2084
        "esplora.minimum_buffer",
2085
        setting<uint32_t>(&configured.server.esplora.minimum_buffer),
22 ✔
2086
        "The minimum retained read buffer size, defaults to {}."
2087
    )
2088
    (
66 ✔
2089
        "esplora.maximum_backlog",
2090
        setting<uint32_t>(&configured.server.esplora.maximum_backlog),
22 ✔
2091
        "The maximum write backlog of a channel, defaults to {}."
2092
    )
2093
    (
66 ✔
2094
        "esplora.maximum_buffer",
2095
        setting<uint32_t>(&configured.server.esplora.maximum_buffer),
22 ✔
2096
        "The maximum json response buffer size, defaults to {}."
2097
    )
2098
    (
66 ✔
2099
        "esplora.maximum_request",
2100
        setting<uint32_t>(&configured.server.esplora.maximum_request),
22 ✔
2101
        "The maximum allowed request size, defaults to {}."
2102
    )
2103
    (
66 ✔
2104
        "esplora.server",
2105
        setting<std::string>(&configured.server.esplora.server),
22 ✔
2106
        "The server name (http header), defaults to {}."
2107
    )
2108
    (
66 ✔
2109
        "esplora.maximum_history",
2110
        setting<uint32_t>(&configured.server.esplora.maximum_history),
22 ✔
2111
        "The maximum number of address history entries, defaults to {}."
2112
    )
2113
    (
66 ✔
2114
        "esplora.host",
2115
        setting<network::config::endpoints>(&configured.server.esplora.hosts),
22 ✔
2116
        "The host name (http verification), multiple allowed, defaults to {} (disabled)."
2117
    )
2118
    (
66 ✔
2119
        "esplora.origin",
2120
        setting<network::config::endpoints>(&configured.server.esplora.origins),
22 ✔
2121
        "The allowed origin (see CORS), multiple allowed, defaults to {} (disabled)."
2122
    )
2123
    (
66 ✔
2124
        "esplora.allow_opaque_origin",
2125
        setting<bool>(&configured.server.esplora.allow_opaque_origin),
22 ✔
2126
        "Allow requests from opaque origin (see CORS), defaults to {}."
2127
    )
2128
#if defined(DISABLED)
2129
    /* [stratum_v1] */
2130
    (
2131
        "stratum_v1.bind",
2132
        setting<network::config::authorities>(&configured.server.stratum_v1.binds),
2133
        "IP address to bind, multiple allowed, defaults to {} (disabled)."
2134
    )
2135
    (
2136
        "stratum_v1.safe",
2137
        setting<network::config::authorities>(&configured.server.stratum_v1.safes),
2138
        "IP address to secure bind, multiple allowed, defaults to {} (disabled)."
2139
    )
2140
    (
2141
        "stratum_v1.cert_path",
2142
        setting<config::path>(&configured.server.stratum_v1.cert_path),
2143
        "The path to the server certificate file (.PEM), defaults to {}."
2144
    )
2145
    (
2146
        "stratum_v1.key_path",
2147
        setting<config::path>(&configured.server.stratum_v1.key_path),
2148
        "The path to the server private key file (.PEM), defaults to {}."
2149
    )
2150
    (
2151
        "stratum_v1.connections",
2152
        setting<uint16_t>(&configured.server.stratum_v1.connections),
2153
        "The required maximum number of connections, defaults to {}."
2154
    )
2155
    (
2156
        "stratum_v1.rate_limit",
2157
        setting<uint32_t>(&configured.server.stratum_v1.rate_limit),
2158
        "The send rate limit in bytes per second, defaults to {} (network controls)."
2159
    )
2160
    (
2161
        "stratum_v1.connect_timeout_seconds",
2162
        setting<uint32_t>(&configured.server.stratum_v1.connect_timeout_seconds),
2163
        "The time limit for connection establishment, defaults to {} (network controls)."
2164
    )
2165
    (
2166
        "stratum_v1.inactivity_minutes",
2167
        setting<uint32_t>(&configured.server.stratum_v1.inactivity_minutes),
2168
        "The idle timeout (http keep-alive), defaults to {}."
2169
    )
2170
    (
2171
        "stratum_v1.expiration_minutes",
2172
        setting<uint32_t>(&configured.server.stratum_v1.expiration_minutes),
2173
        "The maximum connection duration, defaults to {}."
2174
    )
2175
    (
2176
        "stratum_v1.minimum_buffer",
2177
        setting<uint32_t>(&configured.server.stratum_v1.minimum_buffer),
2178
        "The minimum retained read buffer size, defaults to {}."
2179
    )
2180
    (
2181
        "stratum_v1.maximum_backlog",
2182
        setting<uint32_t>(&configured.server.stratum_v1.maximum_backlog),
2183
        "The maximum write backlog of a channel, defaults to {}."
2184
    )
2185
    (
2186
        "stratum_v1.maximum_buffer",
2187
        setting<uint32_t>(&configured.server.stratum_v1.maximum_buffer),
2188
        "The maximum json response buffer size, defaults to {}."
2189
    )
2190
    (
2191
        "stratum_v1.maximum_request",
2192
        setting<uint32_t>(&configured.server.stratum_v1.maximum_request),
2193
        "The maximum allowed request size, defaults to {}."
2194
    )
2195

2196
    /* [stratum_v2] */
2197
    (
2198
        "stratum_v2.bind",
2199
        setting<network::config::authorities>(&configured.server.stratum_v2.binds),
2200
        "IP address to bind, multiple allowed, defaults to {} (disabled)."
2201
    )
2202
    (
2203
        "stratum_v2.connections",
2204
        setting<uint16_t>(&configured.server.stratum_v2.connections),
2205
        "The required maximum number of connections, defaults to {}."
2206
    )
2207
    (
2208
        "stratum_v2.rate_limit",
2209
        setting<uint32_t>(&configured.server.stratum_v2.rate_limit),
2210
        "The send rate limit in bytes per second, defaults to {} (network controls)."
2211
    )
2212
    (
2213
        "stratum_v2.connect_timeout_seconds",
2214
        setting<uint32_t>(&configured.server.stratum_v2.connect_timeout_seconds),
2215
        "The time limit for connection establishment, defaults to {} (network controls)."
2216
    )
2217
    (
2218
        "stratum_v2.inactivity_minutes",
2219
        setting<uint32_t>(&configured.server.stratum_v2.inactivity_minutes),
2220
        "The idle timeout (http keep-alive), defaults to {}."
2221
    )
2222
    (
2223
        "stratum_v2.expiration_minutes",
2224
        setting<uint32_t>(&configured.server.stratum_v2.expiration_minutes),
2225
        "The maximum connection duration, defaults to {}."
2226
    )
2227
    (
2228
        "stratum_v2.minimum_buffer",
2229
        setting<uint32_t>(&configured.server.stratum_v2.minimum_buffer),
2230
        "The minimum retained read buffer size, defaults to {}."
2231
    )
2232
    (
2233
        "stratum_v2.maximum_backlog",
2234
        setting<uint32_t>(&configured.server.stratum_v2.maximum_backlog),
2235
        "The maximum write backlog of a channel, defaults to {}."
2236
    )
2237
    (
2238
        "stratum_v2.maximum_request",
2239
        setting<uint32_t>(&configured.server.stratum_v2.maximum_request),
2240
        "The maximum allowed request size, defaults to {}."
2241
    )
2242

2243
#endif
2244
    /* [node] */
2245
    (
66 ✔
2246
        "node.threads",
2247
        setting<uint32_t>(&configured.node.threads),
22 ✔
2248
        "The number of threads in the validation threadpool, defaults to {} (hardware threads)."
2249
    )
2250
    (
66 ✔
2251
        "node.thread_priority",
2252
        setting<bool>(&configured.node.thread_priority),
22 ✔
2253
        "Set validation threads to high processing priority, defaults to {}."
2254
    )
2255
    (
66 ✔
2256
        "node.memory_priority",
2257
        setting<bool>(&configured.node.memory_priority),
22 ✔
2258
        "Set the process to high memory priority, defaults to {}."
2259
    )
2260
    (
66 ✔
2261
        "node.delay_inbound",
2262
        setting<bool>(&configured.node.delay_inbound),
22 ✔
2263
        "Block inbound peer/client (excluding admin/native) until current, defaults to {}."
2264
    )
2265
    (
66 ✔
2266
        "node.provide_blocks",
2267
        setting<bool>(&configured.node.provide_blocks),
22 ✔
2268
        "Serve blocks to network connections, defaults to {}."
2269
    )
2270
    (
66 ✔
2271
        "node.limited_blocks",
2272
        setting<bool>(&configured.node.limited_blocks),
22 ✔
2273
        "Limit block service to recent blocks, defaults to {}."
2274
    )
2275
    (
66 ✔
2276
        "node.require_blocks",
2277
        setting<bool>(&configured.node.require_blocks),
22 ✔
2278
        "Require block service of outbound connections, defaults to {}."
2279
    )
2280
    (
66 ✔
2281
        "node.provide_witness",
2282
        setting<bool>(&configured.node.provide_witness),
22 ✔
2283
        "Serve witness data to network connections, defaults to {}."
2284
    )
2285
    (
66 ✔
2286
        "node.require_witness",
2287
        setting<bool>(&configured.node.require_witness),
22 ✔
2288
        "Require witness service of outbound connections, defaults to {}."
2289
    )
2290
    (
66 ✔
2291
        "node.provide_filters",
2292
        setting<bool>(&configured.node.provide_filters),
22 ✔
2293
        "Serve client filters to network connections, defaults to {}."
2294
    )
2295
    (
66 ✔
2296
        "node.provide_privacy",
2297
        setting<bool>(&configured.node.provide_privacy),
22 ✔
2298
        "Provide opportunistic connection encryption, defaults to {}."
2299
    )
2300
    (
66 ✔
2301
        "node.use_gpu",
2302
        setting<bool>(&configured.node.use_gpu),
22 ✔
2303
        "Use the GPU where available, defaults to {}."
2304
    )
2305
    ////(
2306
    ////    "node.cpu_batch_verify",
2307
    ////    setting<bool>(&configured.node.cpu_batch_verify),
2308
    ////    "Batch signature verification on the CPU when the GPU is not used, defaults to {}."
2309
    ////)
2310
    ////(
2311
    ////    "node.cpu_batch_silent",
2312
    ////    setting<bool>(&configured.node.cpu_batch_silent),
2313
    ////    "Batch silent payment indexing on the CPU when the GPU is not used, defaults to {}."
2314
    ////)
2315
    (
66 ✔
2316
        "node.batch_verify",
2317
        setting<uint64_t>(&configured.node.batch_verify),
22 ✔
2318
        "Count of signatures to verify in each batch, defaults to {} (0 disables)."
2319
    )
2320
    (
66 ✔
2321
        "node.batch_silent",
2322
        setting<uint64_t>(&configured.node.batch_silent),
22 ✔
2323
        "Count of silent payment transactions to index in each batch, defaults to {} (0 disables)."
2324
    )
2325
    (
66 ✔
2326
        "node.fee_estimate_horizon",
2327
        setting<uint16_t>(&configured.node.fee_estimate_horizon),
22 ✔
2328
        "Fee estimation horizon, limited to 1008, defaults to {} (0 disables)."
2329
    )
2330
    (
66 ✔
2331
        "node.minimum_fee_rate",
2332
        setting<double>(&configured.node.minimum_fee_rate),
22 ✔
2333
        "Minimum fee rate for non-conflicting tx acceptance, defaults to {}."
2334
    )
2335
    (
66 ✔
2336
        "node.minimum_bump_rate",
2337
        setting<double>(&configured.node.minimum_bump_rate),
22 ✔
2338
        "Minimum fee rate increment for conflicting tx acceptance, defaults to {}."
2339
    )
2340
    (
66 ✔
2341
        "node.allowed_deviation",
2342
        setting<float>(&configured.node.allowed_deviation),
22 ✔
2343
        "Allowable underperformance standard deviation, defaults to {} (0 disables)."
2344
    )
2345
    (
66 ✔
2346
        "node.maximum_height",
2347
        setting<uint32_t>(&configured.node.maximum_height),
22 ✔
2348
        "Maximum block height to populate, defaults to {} (unlimited)."
2349
    )
2350
    (
66 ✔
2351
        "node.silent_start_height",
2352
        setting<uint32_t>(&configured.node.silent_start_height),
22 ✔
2353
        "Minimum height of silent payment indexation, defaults to {}."
2354
    )
2355
    (
66 ✔
2356
        "node.maximum_concurrency",
2357
        setting<uint32_t>(&configured.node.maximum_concurrency),
22 ✔
2358
        "Maximum number of blocks to download concurrently, defaults to {} (0 disables)."
2359
    )
2360
    (
66 ✔
2361
        "node.sample_period_seconds",
2362
        setting<uint16_t>(&configured.node.sample_period_seconds),
22 ✔
2363
        "Sampling period for drop of stalled channels, defaults to {} (0 disables)."
2364
    )
2365
    (
66 ✔
2366
        "node.compact_timeout_seconds",
2367
        setting<uint16_t>(&configured.node.compact_timeout_seconds),
22 ✔
2368
        "Time to await a compact block fill before downloading the block, defaults to {} (0 disables)."
2369
    )
2370
    (
66 ✔
2371
        "node.compact_missing_percent",
2372
        setting<uint8_t>(&configured.node.compact_missing_percent),
22 ✔
2373
        "Maximum percent of a compact block not pooled to fill it, defaults to {}."
2374
    )
2375
    (
66 ✔
2376
        "node.currency_window_minutes",
2377
        setting<uint32_t>(&configured.node.currency_window_minutes),
22 ✔
2378
        "Time from present that blocks are considered current, defaults to {} (0 disables)."
2379
    )
2380
    ////(
2381
    ////    "node.snapshot_bytes",
2382
    ////    setting<uint64_t>(&configured.node.snapshot_bytes),
2383
    ////    "Downloaded bytes that triggers snapshot, defaults to {} (0 disables)."
2384
    ////)
2385
    ////(
2386
    ////    "node.snapshot_valid",
2387
    ////    setting<uint32_t>(&configured.node.snapshot_valid),
2388
    ////    "Completed validations that trigger snapshot, defaults to {} (0 disables)."
2389
    ////)
2390
    ////(
2391
    ////    "node.snapshot_confirm",
2392
    ////    setting<uint32_t>(&configured.node.snapshot_confirm),
2393
    ////    "Completed confirmations that trigger snapshot, defaults to {} (0 disables)."
2394
    ////)
2395

2396
    /* [database] */
2397
    (
66 ✔
2398
        "database.path",
2399
        setting<config::path>(&configured.database.path),
22 ✔
2400
        "The base of the network-named blockchain database directory, defaults to the working directory."
2401
    )
2402
    (
66 ✔
2403
        "database.turbo",
2404
        setting<bool>(&configured.database.turbo),
22 ✔
2405
        "Allow individual non-validation queries to use all CPUs, defaults to {}."
2406
    )
2407
    (
66 ✔
2408
        "database.gpu_scan_minimum",
2409
        setting<uint32_t>(&configured.database.gpu_scan_minimum),
22 ✔
2410
        "Minimum transactions for a silent payment scan to use the GPU, defaults to {}."
2411
    )
2412
    (
66 ✔
2413
        "database.mark_unconfirmable",
2414
        setting<bool>(&configured.database.mark_unconfirmable),
22 ✔
2415
        "Save unconfirmable block state (prevents revalidation), defaults to {}."
2416
    )
2417
    (
66 ✔
2418
        "database.interval_depth",
2419
        setting<uint8_t>(&configured.database.interval_depth),
22 ✔
2420
        "The interval depth for merkle proof optimization, defaults to {}."
2421
    )
2422

2423
    /* [table.*] */
2424

2425
    /* table.header */
2426
    (
66 ✔
2427
        "table.header.buckets",
2428
        setting<uint32_t>(&configured.database.header.buckets),
22 ✔
2429
        "The number of buckets in the header table head, derived from expected and memory, defaults to {}."
2430
    )
2431
    (
66 ✔
2432
        "table.header.expected",
2433
        setting<uint64_t>(&configured.database.header.expected),
22 ✔
2434
        "The expected element count of the header table, defaults to {}."
2435
    )
2436
    (
66 ✔
2437
        "table.header.size",
2438
        setting<uint64_t>(&configured.database.header.size),
22 ✔
2439
        "The minimum allocation of the header table body, defaults to {}."
2440
    )
2441
    (
66 ✔
2442
        "table.header.rate",
2443
        setting<uint16_t>(&configured.database.header.rate),
22 ✔
2444
        "The percentage expansion of the header table body, defaults to {}."
2445
    )
2446

2447
    /* table.input */
2448
    (
66 ✔
2449
        "table.input.size",
2450
        setting<uint64_t>(&configured.database.input.size),
22 ✔
2451
        "The minimum allocation of the input table body, defaults to {}."
2452
    )
2453
    (
66 ✔
2454
        "table.input.rate",
2455
        setting<uint16_t>(&configured.database.input.rate),
22 ✔
2456
        "The percentage expansion of the input table body, defaults to {}."
2457
    )
2458

2459
    /* table.output */
2460
    (
66 ✔
2461
        "table.output.size",
2462
        setting<uint64_t>(&configured.database.output.size),
22 ✔
2463
        "The minimum allocation of the output table body, defaults to {}."
2464
    )
2465
    (
66 ✔
2466
        "table.output.rate",
2467
        setting<uint16_t>(&configured.database.output.rate),
22 ✔
2468
        "The percentage expansion of the output table body, defaults to {}."
2469
    )
2470

2471
    /* table.ins */
2472
    (
66 ✔
2473
        "table.ins.buckets",
2474
        setting<uint32_t>(&configured.database.ins.buckets),
22 ✔
2475
        "The number of buckets in the ins table head, derived from expected and memory, defaults to {}."
2476
    )
2477
    (
66 ✔
2478
        "table.ins.expected",
2479
        setting<uint64_t>(&configured.database.ins.expected),
22 ✔
2480
        "The expected element count of the ins table, defaults to {}."
2481
    )
2482
    (
66 ✔
2483
        "table.ins.size",
2484
        setting<uint64_t>(&configured.database.ins.size),
22 ✔
2485
        "The minimum allocation of the ins table body, defaults to {}."
2486
    )
2487
    (
66 ✔
2488
        "table.ins.rate",
2489
        setting<uint16_t>(&configured.database.ins.rate),
22 ✔
2490
        "The percentage expansion of the ins table body, defaults to {}."
2491
    )
2492

2493
    /* table.outs */
2494
    (
66 ✔
2495
        "table.outs.buckets",
2496
        setting<uint32_t>(&configured.database.outs.buckets),
22 ✔
2497
        "The number of buckets in the outs table head, derived from expected and memory, defaults to {} (0 disables address index)."
2498
    )
2499
    (
66 ✔
2500
        "table.outs.expected",
2501
        setting<uint64_t>(&configured.database.outs.expected),
22 ✔
2502
        "The expected element count of the outs table, defaults to {}."
2503
    )
2504
    (
66 ✔
2505
        "table.outs.size",
2506
        setting<uint64_t>(&configured.database.outs.size),
22 ✔
2507
        "The minimum allocation of the outs table body, defaults to {}."
2508
    )
2509
    (
66 ✔
2510
        "table.outs.rate",
2511
        setting<uint16_t>(&configured.database.outs.rate),
22 ✔
2512
        "The percentage expansion of the outs table body, defaults to {}."
2513
    )
2514

2515
    /* table.tx */
2516
    (
66 ✔
2517
        "table.tx.buckets",
2518
        setting<uint32_t>(&configured.database.tx.buckets),
22 ✔
2519
        "The number of buckets in the tx table head, derived from expected and memory, defaults to {}."
2520
    )
2521
    (
66 ✔
2522
        "table.tx.expected",
2523
        setting<uint64_t>(&configured.database.tx.expected),
22 ✔
2524
        "The expected element count of the tx table, defaults to {}."
2525
    )
2526
    (
66 ✔
2527
        "table.tx.size",
2528
        setting<uint64_t>(&configured.database.tx.size),
22 ✔
2529
        "The minimum allocation of the tx table body, defaults to {}."
2530
    )
2531
    (
66 ✔
2532
        "table.tx.rate",
2533
        setting<uint16_t>(&configured.database.tx.rate),
22 ✔
2534
        "The percentage expansion of the tx table body, defaults to {}."
2535
    )
2536

2537
    /* table.txs */
2538
    (
66 ✔
2539
        "table.txs.buckets",
2540
        setting<uint32_t>(&configured.database.txs.buckets),
22 ✔
2541
        "The number of buckets in the txs table head, defaults to {}."
2542
    )
2543
    (
66 ✔
2544
        "table.txs.size",
2545
        setting<uint64_t>(&configured.database.txs.size),
22 ✔
2546
        "The minimum allocation of the txs table body, defaults to {}."
2547
    )
2548
    (
66 ✔
2549
        "table.txs.rate",
2550
        setting<uint16_t>(&configured.database.txs.rate),
22 ✔
2551
        "The percentage expansion of the txs table body, defaults to {}."
2552
    )
2553

2554
    /* table.candidate */
2555
    (
66 ✔
2556
        "table.candidate.buckets",
2557
        setting<uint32_t>(&configured.database.candidate.buckets),
22 ✔
2558
        "The number of buckets provisioned in the candidate table head, defaults to {}."
2559
    )
2560
    (
66 ✔
2561
        "table.candidate.rate",
2562
        setting<uint16_t>(&configured.database.candidate.rate),
22 ✔
2563
        "The percentage expansion of the candidate table head, defaults to {}."
2564
    )
2565

2566
    /* table.confirmed */
2567
    (
66 ✔
2568
        "table.confirmed.buckets",
2569
        setting<uint32_t>(&configured.database.confirmed.buckets),
22 ✔
2570
        "The number of buckets provisioned in the confirmed table head, defaults to {}."
2571
    )
2572
    (
66 ✔
2573
        "table.confirmed.rate",
2574
        setting<uint16_t>(&configured.database.confirmed.rate),
22 ✔
2575
        "The percentage expansion of the confirmed table head, defaults to {}."
2576
    )
2577

2578
    /* table.strong */
2579
    (
66 ✔
2580
        "table.strong.buckets",
2581
        setting<uint32_t>(&configured.database.strong.buckets),
22 ✔
2582
        "The number of buckets provisioned in the strong table head, derived from tx expected, defaults to {}."
2583
    )
2584
    (
66 ✔
2585
        "table.strong.rate",
2586
        setting<uint16_t>(&configured.database.strong.rate),
22 ✔
2587
        "The percentage expansion of the strong table head, defaults to {}."
2588
    )
2589

2590
    /* table.scan */
2591
    (
66 ✔
2592
        "table.scan.buckets",
2593
        setting<uint32_t>(&configured.database.scan.buckets),
22 ✔
2594
        "The number of buckets provisioned in the scan table head, defaults to {}."
2595
    )
2596
    (
66 ✔
2597
        "table.scan.size",
2598
        setting<uint64_t>(&configured.database.scan.size),
22 ✔
2599
        "The minimum allocation of the scan table body, defaults to {}."
2600
    )
2601
    (
66 ✔
2602
        "table.scan.rate",
2603
        setting<uint16_t>(&configured.database.scan.rate),
22 ✔
2604
        "The percentage expansion of the scan table body, defaults to {}."
2605
    )
2606

2607
    /* table.wtxid */
2608
    (
66 ✔
2609
        "table.wtxid.buckets",
2610
        setting<uint32_t>(&configured.database.wtxid.buckets),
22 ✔
2611
        "The number of buckets in the wtxid table head, derived from expected and memory, defaults to {} (0 disables)."
2612
    )
2613
    (
66 ✔
2614
        "table.wtxid.expected",
2615
        setting<uint64_t>(&configured.database.wtxid.expected),
22 ✔
2616
        "The expected element count of the wtxid table, defaults to {}."
2617
    )
2618
    (
66 ✔
2619
        "table.wtxid.size",
2620
        setting<uint64_t>(&configured.database.wtxid.size),
22 ✔
2621
        "The minimum allocation of the wtxid table body, defaults to {}."
2622
    )
2623
    (
66 ✔
2624
        "table.wtxid.rate",
2625
        setting<uint16_t>(&configured.database.wtxid.rate),
22 ✔
2626
        "The percentage expansion of the wtxid table body, defaults to {}."
2627
    )
2628

2629
    /* table.ecdsa */
2630
    (
66 ✔
2631
        "table.ecdsa.size",
2632
        setting<uint64_t>(&configured.database.ecdsa.size),
22 ✔
2633
        "The minimum allocation of each batch_ecdsa table body, defaults to {}."
2634
    )
2635
    (
66 ✔
2636
        "table.ecdsa.rate",
2637
        setting<uint16_t>(&configured.database.ecdsa.rate),
22 ✔
2638
        "The percentage expansion of each batch_ecdsa table body, defaults to {}."
2639
    )
2640

2641
    /* table.schnorr */
2642
    (
66 ✔
2643
        "table.schnorr.size",
2644
        setting<uint64_t>(&configured.database.schnorr.size),
22 ✔
2645
        "The minimum allocation of each batch_schnorr table body, defaults to {}."
2646
    )
2647
    (
66 ✔
2648
        "table.schnorr.rate",
2649
        setting<uint16_t>(&configured.database.schnorr.rate),
22 ✔
2650
        "The percentage expansion of each batch_schnorr table body, defaults to {}."
2651
    )
2652

2653
    /* table.silent */
2654
    (
66 ✔
2655
        "table.silent.size",
2656
        setting<uint64_t>(&configured.database.silent.size),
22 ✔
2657
        "The minimum allocation of each batch_silent table body, defaults to {}."
2658
    )
2659
    (
66 ✔
2660
        "table.silent.rate",
2661
        setting<uint16_t>(&configured.database.silent.rate),
22 ✔
2662
        "The percentage expansion of each batch_silent table body, defaults to {}."
2663
    )
2664

2665
    /* table.prevalid */
2666
    (
66 ✔
2667
        "table.prevalid.size",
2668
        setting<uint64_t>(&configured.database.prevalid.size),
22 ✔
2669
        "The minimum allocation of each batch_prevalid table body, defaults to {}."
2670
    )
2671
    (
66 ✔
2672
        "table.prevalid.rate",
2673
        setting<uint16_t>(&configured.database.prevalid.rate),
22 ✔
2674
        "The percentage expansion of each batch_prevalid table body, defaults to {}."
2675
    )
2676

2677
    /* table.presilent */
2678
    (
66 ✔
2679
        "table.presilent.size",
2680
        setting<uint64_t>(&configured.database.presilent.size),
22 ✔
2681
        "The minimum allocation of each batch_presilent table body, defaults to {}."
2682
    )
2683
    (
66 ✔
2684
        "table.presilent.rate",
2685
        setting<uint16_t>(&configured.database.presilent.rate),
22 ✔
2686
        "The percentage expansion of each batch_presilent table body, defaults to {}."
2687
    )
2688

2689
    /* table.prevout */
2690
    (
66 ✔
2691
        "table.prevout.buckets",
2692
        setting<uint32_t>(&configured.database.prevout.buckets),
22 ✔
2693
        "The minimum number of buckets in the prevout table head, defaults to {}."
2694
    )
2695
    (
66 ✔
2696
        "table.prevout.size",
2697
        setting<uint64_t>(&configured.database.prevout.size),
22 ✔
2698
        "The minimum allocation of the prevout table body, defaults to {}."
2699
    )
2700
    (
66 ✔
2701
        "table.prevout.rate",
2702
        setting<uint16_t>(&configured.database.prevout.rate),
22 ✔
2703
        "The percentage expansion of the prevout table, defaults to {}."
2704
    )
2705

2706
    /* table.duplicate */
2707
    (
66 ✔
2708
        "table.duplicate.buckets",
2709
        setting<uint32_t>(&configured.database.duplicate.buckets),
22 ✔
2710
        "The minimum number of buckets in the duplicate table head, defaults to {}."
2711
    )
2712
    (
66 ✔
2713
        "table.duplicate.expected",
2714
        setting<uint64_t>(&configured.database.duplicate.expected),
22 ✔
2715
        "The expected element count of the duplicate table, defaults to {}."
2716
    )
2717
    (
66 ✔
2718
        "table.duplicate.size",
2719
        setting<uint64_t>(&configured.database.duplicate.size),
22 ✔
2720
        "The minimum allocation of the duplicate table body, defaults to {}."
2721
    )
2722
    (
66 ✔
2723
        "table.duplicate.rate",
2724
        setting<uint16_t>(&configured.database.duplicate.rate),
22 ✔
2725
        "The percentage expansion of the duplicate table, defaults to {}."
2726
    )
2727

2728
    /* table.state */
2729
    (
66 ✔
2730
        "table.state.buckets",
2731
        setting<uint32_t>(&configured.database.state.buckets),
22 ✔
2732
        "The number of buckets provisioned in the state table head, defaults to {}."
2733
    )
2734
    (
66 ✔
2735
        "table.state.rate",
2736
        setting<uint16_t>(&configured.database.state.rate),
22 ✔
2737
        "The percentage expansion of the state table head, defaults to {}."
2738
    )
2739

2740
    /* table.pool */
2741
    (
66 ✔
2742
        "table.pool.buckets",
2743
        setting<uint32_t>(&configured.database.pool.buckets),
22 ✔
2744
        "The number of buckets in the pool table head, derived from expected and memory, defaults to {} (0 disables)."
2745
    )
2746
    (
66 ✔
2747
        "table.pool.expected",
2748
        setting<uint64_t>(&configured.database.pool.expected),
22 ✔
2749
        "The expected element count of the pool table, defaults to {}."
2750
    )
2751
    (
66 ✔
2752
        "table.pool.size",
2753
        setting<uint64_t>(&configured.database.pool.size),
22 ✔
2754
        "The minimum allocation of the pool table body, defaults to {}."
2755
    )
2756
    (
66 ✔
2757
        "table.pool.rate",
2758
        setting<uint16_t>(&configured.database.pool.rate),
22 ✔
2759
        "The percentage expansion of the pool table body, defaults to {}."
2760
    )
2761

2762
    /* table.spends */
2763
    (
66 ✔
2764
        "table.spends.size",
2765
        setting<uint64_t>(&configured.database.spends.size),
22 ✔
2766
        "The minimum allocation of the spends table body, defaults to {}."
2767
    )
2768
    (
66 ✔
2769
        "table.spends.rate",
2770
        setting<uint16_t>(&configured.database.spends.rate),
22 ✔
2771
        "The percentage expansion of the spends table body, defaults to {}."
2772
    )
2773

2774
    /* table.filter_bk */
2775
    (
66 ✔
2776
        "table.filter_bk.buckets",
2777
        setting<uint32_t>(&configured.database.filter_bk.buckets),
22 ✔
2778
        "The number of buckets in the filter_bk table head, defaults to {} (0 disables)."
2779
    )
2780
    (
66 ✔
2781
        "table.filter_bk.size",
2782
        setting<uint64_t>(&configured.database.filter_bk.size),
22 ✔
2783
        "The minimum allocation of the filter_bk table body, defaults to {}."
2784
    )
2785
    (
66 ✔
2786
        "table.filter_bk.rate",
2787
        setting<uint16_t>(&configured.database.filter_bk.rate),
22 ✔
2788
        "The percentage expansion of the filter_bk table body, defaults to {}."
2789
    )
2790

2791
    /* table.filter_tx */
2792
    (
66 ✔
2793
        "table.filter_tx.buckets",
2794
        setting<uint32_t>(&configured.database.filter_tx.buckets),
22 ✔
2795
        "The number of buckets in the filter_tx table head, defaults to {} (0 disables)."
2796
    )
2797
    (
66 ✔
2798
        "table.filter_tx.size",
2799
        setting<uint64_t>(&configured.database.filter_tx.size),
22 ✔
2800
        "The minimum allocation of the filter_tx table body, defaults to {}."
2801
    )
2802
    (
66 ✔
2803
        "table.filter_tx.rate",
2804
        setting<uint16_t>(&configured.database.filter_tx.rate),
22 ✔
2805
        "The percentage expansion of the filter_tx table body, defaults to {}."
2806
    )
2807

2808
    /* [log] */
2809
#if defined(HAVE_LOGA)
2810
    (
66 ✔
2811
        "log.application",
2812
        setting<bool>(&configured.log.application),
22 ✔
2813
        "Enable application logging, defaults to {}."
2814
    )
2815
#endif
2816
#if defined(HAVE_LOGN)
2817
    (
66 ✔
2818
        "log.news",
2819
        setting<bool>(&configured.log.news),
22 ✔
2820
        "Enable news logging, defaults to {}."
2821
    )
2822
#endif
2823
#if defined(HAVE_LOGS)
2824
    (
66 ✔
2825
        "log.session",
2826
        setting<bool>(&configured.log.session),
22 ✔
2827
        "Enable session logging, defaults to {}."
2828
    )
2829
#endif
2830
#if defined(HAVE_LOGP)
2831
    (
66 ✔
2832
        "log.protocol",
2833
        setting<bool>(&configured.log.protocol),
22 ✔
2834
        "Enable protocol logging, defaults to {}."
2835
    )
2836
#endif
2837
#if defined(HAVE_LOGX)
2838
    (
66 ✔
2839
        "log.proxy",
2840
        setting<bool>(&configured.log.proxy),
22 ✔
2841
        "Enable proxy logging, defaults to {}."
2842
    )
2843
#endif
2844
#if defined(HAVE_LOGR)
2845
    (
66 ✔
2846
        "log.remote",
2847
        setting<bool>(&configured.log.remote),
22 ✔
2848
        "Enable remote fault logging, defaults to {}."
2849
    )
2850
#endif
2851
#if defined(HAVE_LOGF)
2852
    (
66 ✔
2853
        "log.fault",
2854
        setting<bool>(&configured.log.fault),
22 ✔
2855
        "Enable local fault logging, defaults to {}."
2856
    )
2857
#endif
2858
#if defined(HAVE_LOGQ)
2859
    (
66 ✔
2860
        "log.quitting",
2861
        setting<bool>(&configured.log.quitting),
22 ✔
2862
        "Enable quitting logging, defaults to {}."
2863
    )
2864
#endif
2865
#if defined(HAVE_LOGO)
2866
    (
66 ✔
2867
        "log.objects",
2868
        setting<bool>(&configured.log.objects),
22 ✔
2869
        "Enable objects logging, defaults to {}."
2870
    )
2871
#endif
2872
#if defined(HAVE_LOGV)
2873
    (
66 ✔
2874
        "log.verbose",
2875
        setting<bool>(&configured.log.verbose),
22 ✔
2876
        "Enable verbose logging, defaults to {}."
2877
    )
2878
#endif
2879
    (
66 ✔
2880
        "log.maximum_size",
2881
        setting<uint32_t>(&configured.log.maximum_size),
22 ✔
2882
        "The maximum byte size of each pair of rotated log files, defaults to {}."
2883
    )
2884
#if defined (HAVE_WINDOWS)
2885
    (
2886
        "log.symbols",
2887
        setting<config::path>(&configured.log.symbols),
2888
        "Path to a directory containing windows symbols (.pdb) files, defaults to {}."
2889
    )
2890
#endif
2891
    (
44 ✔
2892
        "log.path",
2893
        setting<config::path>(&configured.log.path),
22 ✔
2894
        "The log files directory, defaults to {}."
2895
    );
2896

2897
    return description;
22 ✔
UNCOV
2898
}
×
2899

2900
BC_PUSH_WARNING(NO_ARRAY_TO_POINTER_DECAY)
2901
bool parser::parse(int argc, const char* argv[], std::ostream& error) THROWS
24 ✔
2902
BC_POP_WARNING()
2903
{
2904
    try
2905
    {
2906
        auto file = false;
2907
        load_command_variables(argc, argv);
24 ✔
2908
        ////load_environment_variables(environment_prefix);
2909

2910
        // Don't load config file if help is specified.
2911
        if (!get_option(help_variable))
22 ✔
2912
        {
2913
            // Returns true if the settings were loaded from a file.
2914
            file = load_configuration_variables(config_variable);
22 ✔
2915
        }
2916

2917
        // Update bound variables in metadata.settings.
2918
        notify(variables_);
22 ✔
2919
        select_network();
22 ✔
2920
        select_path();
22 ✔
2921
        derive_buckets();
22 ✔
2922

2923
        // Clear the config file path if it wasn't used.
2924
        if (!file)
22 ✔
2925
            configured.file = {};
5 ✔
2926
    }
2927
    catch (const option_exception& e)
2 ✔
2928
    {
2929
        error << format_invalid_parameter(e.what()) << std::endl;
2 ✔
2930
        return false;
2931
    }
2 ✔
2932

2933
    return true;
2934
}
2935

2936
} // namespace server
2937
} // namespace libbitcoin
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc