@@ -1219,36 +1219,54 @@ pub struct BurnchainConfig {
1219
1219
/// This setting determines network parameters (like chain ID, peer version),
1220
1220
/// default configurations, genesis block definitions, and overall node behavior.
1221
1221
///
1222
- /// Supported values: `"mainnet"`, `"mocknet"`, `"helium"`, `"neon"`, `"argon"`, `"krypton"`, `"xenon"`, `"nakamoto-neon"`.
1222
+ /// Supported values:
1223
+ /// ```text
1224
+ /// | Mode | Network Type |
1225
+ /// |-----------------|--------------|
1226
+ /// | "mainnet" | mainnet |
1227
+ /// | "xenon" | testnet |
1228
+ /// | "mocknet" | regtest |
1229
+ /// | "helium" | regtest |
1230
+ /// | "neon" | regtest |
1231
+ /// | "argon" | regtest |
1232
+ /// | "krypton" | regtest |
1233
+ /// | "nakamoto-neon" | regtest |
1234
+ /// ```
1223
1235
///
1224
1236
/// Default: `"mocknet"`
1225
1237
pub mode : String ,
1226
- /// The network-specific identifier used in P2P communication and database initialization .
1238
+ /// The network-specific identifier used in P2P communication and database initialization.
1227
1239
/// Derived from `mode` during config load, unless explicitly overridden (for test purposes).
1228
1240
///
1241
+ /// **Warning:** Do not modify this unless you really know what you're doing.
1242
+ /// This is intended strictly for testing purposes.
1243
+ ///
1229
1244
/// Default: Derived from [`BurnchainConfig::mode`] ([`CHAIN_ID_MAINNET`] for `mainnet`, [`CHAIN_ID_TESTNET`] otherwise).
1230
1245
pub chain_id : u32 ,
1231
1246
/// The peer protocol version number used in P2P communication.
1232
1247
/// This parameter cannot be set via the configuration file.
1233
1248
///
1249
+ /// **Warning:** Do not modify this unless you really know what you're doing.
1250
+ ///
1234
1251
/// Default: Derived from [`BurnchainConfig::mode`] ([`PEER_VERSION_MAINNET`] for `mainnet`, [`PEER_VERSION_TESTNET`] otherwise).
1235
1252
pub peer_version : u32 ,
1236
1253
/// Specifies a mandatory wait period (in milliseconds) after receiving a burnchain tip
1237
1254
/// before the node attempts to build the anchored block for the new tenure.
1238
1255
/// This duration effectively schedules the start of the block-building
1239
1256
/// process relative to the tip's arrival time.
1240
- /// Only when [`BurnchainConfig::mode`] is `"helium"` or `"mocknet"`.
1257
+ ///
1258
+ /// This is intended strictly for testing purposes.
1241
1259
///
1242
1260
/// Default: `5000` milliseconds.
1243
1261
/// `10000` milliseconds when launched with the `helium` or `mocknet` subcommands.
1244
1262
pub commit_anchor_block_within : u64 ,
1245
1263
/// The Maximum amount (in sats) of "burn commitment" to broadcast for the next block's leader election.
1246
- /// Acts as a safety cap to limit the maximum amount spent on mining.
1247
- ///
1264
+ /// Acts as a safety cap to limit the maximum amount spent on mining.
1248
1265
/// It serves as both the target fee and a fallback if dynamic fee calculations fail or cannot be performed
1249
1266
///
1250
- /// This setting can be hot-reloaded from a miner's config file, allowing adjustment without restarting.
1251
- /// Primarily relevant for miners.
1267
+ /// This setting can be hot-reloaded from the config file, allowing adjustment without restarting.
1268
+ ///
1269
+ /// Only relevant if [`NodeConfig::miner`] is `true`.
1252
1270
///
1253
1271
/// Default: `20000` satoshis
1254
1272
pub burn_fee_cap : u64 ,
@@ -1292,24 +1310,32 @@ pub struct BurnchainConfig {
1292
1310
/// These two-byte identifiers help ensure that nodes only connect to peers on the same network type.
1293
1311
/// Common values include:
1294
1312
/// - "X2" for mainnet
1295
- /// - "T2" for Xenon testnet
1313
+ /// - "T2" for testnet (xenon)
1296
1314
/// - Other values for specific test networks
1297
1315
///
1298
1316
/// Configured as a 2-character ASCII string (e.g., "X2" for mainnet).
1299
1317
///
1300
- /// Default: [`BLOCKSTACK_MAGIC_MAINNET`] (corresponds to "X2") unless overridden by [`BurnchainConfig::mode`] (e.g., "T2" for Xenon testnet).
1318
+ /// Default: [`BLOCKSTACK_MAGIC_MAINNET`] (corresponds to "X2") unless overridden by [`BurnchainConfig::mode`] (e.g., "T2" for testnet (xenon) ).
1301
1319
pub magic_bytes : MagicBytes ,
1302
- /// The public key associated with the local mining address.
1303
- /// Provided as a hex string representing a public key.
1304
- /// This is intended strictly for testing purposes. Only used for [`BurnchainConfig::mode`] "helium".
1320
+ /// The public key associated with the local mining address for the underlying Bitcoin regtest node.
1321
+ /// Provided as a hex string representing an uncompressed public key.
1322
+ ///
1323
+ /// It is primarily used in modes that rely on a controlled Bitcoin regtest backend
1324
+ /// (e.g., "helium", "mocknet", "neon") where the Stacks node itself needs to
1325
+ /// instruct the Bitcoin node to generate blocks.
1326
+ ///
1327
+ /// The key is used to derive the Bitcoin address that receives the coinbase rewards
1328
+ /// when generating blocks on the regtest network.
1305
1329
///
1306
- /// Used to derive the mining address for generating and receiving coinbase rewards.
1330
+ /// Mandatory if [`BurnchainConfig::mode`] is "helium".
1331
+ /// This is intended strictly for testing purposes.
1307
1332
///
1308
1333
/// Default: `None`
1309
1334
pub local_mining_public_key : Option < String > ,
1310
1335
/// Optional bitcoin block height at which the Stacks node process should gracefully exit.
1311
1336
/// When bitcoin reaches this height, the node logs a message and initiates a graceful shutdown.
1312
1337
///
1338
+ /// Applied only if [`BurnchainConfig::mode`] is not "mainnet".
1313
1339
/// This is intended strictly for testing purposes.
1314
1340
///
1315
1341
/// Default: `None`
@@ -1323,33 +1349,38 @@ pub struct BurnchainConfig {
1323
1349
pub poll_time_secs : u64 ,
1324
1350
/// The default fee rate in satoshis per virtual byte (sats/vB) to use when estimating fees for miners
1325
1351
/// to submit bitcoin transactions (like block commits or leader key registrations).
1326
- /// Primarily relevant for miners.
1352
+ ///
1353
+ /// Only relevant if [`NodeConfig::miner`] is `true`.
1327
1354
///
1328
1355
/// Default: [`DEFAULT_SATS_PER_VB`] (currently 50 satoshis per virtual byte)
1329
1356
pub satoshis_per_byte : u64 ,
1330
1357
/// Maximum fee rate multiplier allowed when using Replace-By-Fee (RBF) for bitcoin transactions.
1331
1358
/// Expressed as a percentage of the original [`BurnchainConfig::satoshis_per_byte`] rate (e.g.,
1332
1359
/// 150 means the fee rate can be increased up to 1.5x). Used in mining logic for RBF decisions
1333
1360
/// to cap the replacement fee rate.
1334
- /// Primarily relevant for miners.
1361
+ ///
1362
+ /// Only relevant if [`NodeConfig::miner`] is `true`.
1335
1363
///
1336
1364
/// Default: [`DEFAULT_MAX_RBF_RATE`] (currently 150, i.e., 1.5x)
1337
1365
pub max_rbf : u64 ,
1338
1366
/// Estimated size (in virtual bytes) of a leader key registration transaction on bitcoin.
1339
1367
/// Used for fee calculation in mining logic by multiplying with the fee rate [`BurnchainConfig::satoshis_per_byte`].
1340
- /// Primarily relevant for miners.
1368
+ ///
1369
+ /// Only relevant if [`NodeConfig::miner`] is `true`.
1341
1370
///
1342
1371
/// Default: [`OP_TX_LEADER_KEY_ESTIM_SIZE`] (currently 290)
1343
1372
pub leader_key_tx_estimated_size : u64 ,
1344
1373
/// Estimated size (in virtual bytes) of a block commit transaction on bitcoin.
1345
1374
/// Used for fee calculation in mining logic by multiplying with the fee rate [`BurnchainConfig::satoshis_per_byte`].
1346
- /// Primarily relevant for miners.
1375
+ ///
1376
+ /// Only relevant if [`NodeConfig::miner`] is `true`.
1347
1377
///
1348
1378
/// Default: [`OP_TX_BLOCK_COMMIT_ESTIM_SIZE`] (currently 380)
1349
1379
pub block_commit_tx_estimated_size : u64 ,
1350
1380
/// The incremental amount (in Sats/vByte) to add to the previous transaction's
1351
1381
/// fee rate for RBF bitcoin transactions.
1352
- /// Primarily relevant for miners.
1382
+ ///
1383
+ /// Only relevant if [`NodeConfig::miner`] is `true`.
1353
1384
///
1354
1385
/// Default: [`DEFAULT_RBF_FEE_RATE_INCREMENT`] (currently 5 satoshis per virtual byte)
1355
1386
pub rbf_fee_increment : u64 ,
@@ -1426,18 +1457,21 @@ pub struct BurnchainConfig {
1426
1457
/// - However, the height specified in `epochs` for Epoch 2.1 takes precedence.
1427
1458
///
1428
1459
/// Applied only if [`BurnchainConfig::mode`] is not "mainnet".
1460
+ /// This is intended strictly for testing purposes.
1429
1461
///
1430
1462
/// Default: `None`.
1431
1463
pub pox_2_activation : Option < u32 > ,
1432
1464
/// Overrides the length (in bitcoin blocks) of the PoX reward cycle.
1433
1465
///
1434
1466
/// Applied only if [`BurnchainConfig::mode`] is not "mainnet".
1467
+ /// This is intended strictly for testing purposes.
1435
1468
///
1436
1469
/// Default: `None` (uses the standard reward cycle length for the mode).
1437
1470
pub pox_reward_length : Option < u32 > ,
1438
1471
/// Overrides the length (in bitcoin blocks) of the PoX prepare phase.
1439
1472
///
1440
1473
/// Applied only if [`BurnchainConfig::mode`] is not "mainnet".
1474
+ /// This is intended strictly for testing purposes.
1441
1475
///
1442
1476
/// Default: `None` (uses the standard prepare phase length for the mode).
1443
1477
pub pox_prepare_length : Option < u32 > ,
@@ -1447,6 +1481,7 @@ pub struct BurnchainConfig {
1447
1481
/// testing the PoX sunset transition by explicitly setting its start height.
1448
1482
///
1449
1483
/// Applied only if [`BurnchainConfig::mode`] is not "mainnet".
1484
+ /// This is intended strictly for testing purposes.
1450
1485
///
1451
1486
/// Default: `None` (uses the standard sunset start height for the mode).
1452
1487
/// Deprecated: The sunset phase was removed in Epoch 2.1. This parameter can still be used for testing purposes for epochs before 2.1.
@@ -1457,6 +1492,7 @@ pub struct BurnchainConfig {
1457
1492
/// with `sunset_start` to define the full sunset transition period for PoX.
1458
1493
///
1459
1494
/// Applied only if [`BurnchainConfig::mode`] is not "mainnet".
1495
+ /// This is intended strictly for testing purposes.
1460
1496
///
1461
1497
/// Default: `None` (uses the standard sunset end height for the mode).
1462
1498
/// Deprecated: The sunset phase was removed in Epoch 2.1. This parameter can still be used for testing purposes for epochs before 2.1.
@@ -1465,7 +1501,7 @@ pub struct BurnchainConfig {
1465
1501
/// Used to interact with a specific named wallet if the bitcoin node manages multiple wallets.
1466
1502
///
1467
1503
/// If the specified wallet doesn't exist, the node will attempt to create it via the createwallet RPC call.
1468
- /// This is particularly useful for miners who need to manage separate wallets for testing or organizational purposes .
1504
+ /// This is particularly useful for miners who need to manage separate wallets.
1469
1505
///
1470
1506
/// Primarily relevant for miners interacting with multi-wallet Bitcoin nodes.
1471
1507
///
@@ -1506,7 +1542,8 @@ pub struct BurnchainConfig {
1506
1542
pub affirmation_overrides : HashMap < u64 , AffirmationMap > ,
1507
1543
/// Fault injection setting for testing. Introduces an artificial delay (in milliseconds)
1508
1544
/// before processing each burnchain block download. Simulates a slow burnchain connection.
1509
- /// Only intended for testing environments.
1545
+ ///
1546
+ /// This is intended strictly for testing purposes.
1510
1547
///
1511
1548
/// Default: `0` (no delay).
1512
1549
pub fault_injection_burnchain_block_delay : u64 ,
@@ -1522,7 +1559,8 @@ pub struct BurnchainConfig {
1522
1559
/// for a transaction, even if sufficient funds exist across more UTXOs not returned by the limited query.
1523
1560
///
1524
1561
/// This value must be `<= 1024`.
1525
- /// Primarily relevant for miners.
1562
+ ///
1563
+ /// Only relevant if [`NodeConfig::miner`] is `true`.
1526
1564
///
1527
1565
/// Default: `Some(1024)`
1528
1566
pub max_unspent_utxos : Option < u64 > ,
0 commit comments