Skip to content

dgb: conform share/coin params to p2pool-dgb-scrypt oracle - #131

Merged
frstrtr merged 2 commits into
masterfrom
dgb/oracle-conformance
Jun 17, 2026
Merged

dgb: conform share/coin params to p2pool-dgb-scrypt oracle#131
frstrtr merged 2 commits into
masterfrom
dgb/oracle-conformance

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 17, 2026

Copy link
Copy Markdown
Owner

Stacked on #129 (params.hpp factory). HOLD merge — integrator merges on operator approval.

What

Migrates DGB share-layer + parent-period constants from stale merged-v36/farsider holdovers to the canonical DGB oracle frstrtr/p2pool-dgb-scrypt (operator ruling 2026-06-17, Option B "switch-oracle"; merged-v36 byte-compat WAIVED for DGB). The oracle-switch only carried IDENTIFIER/PREFIX/donation/minproto — the rest of the sharechain identity was never migrated.

Adjudication table (config SSOT vs oracle)

const was oracle file
SPREAD 30 24 config_pool
TARGET_LOOKBEHIND 200 100 config_pool
SHARE_PERIOD 25 15 config_pool
CHAIN_LENGTH / REAL 8640 2880 (12h@15s) config_pool
SEGWIT_ACTIVATION_VERSION 17 35 config_pool
BLOCK_MAX_SIZE 1M 32M config_pool
BLOCK_MAX_WEIGHT 4M 128M config_pool
SOFTFORKS_REQUIRED {csv,segwit} +nversionbips,reservealgo,odo,taproot config_pool
BLOCK_PERIOD 15 75 config_coin

✅ already matched (unchanged): IDENTIFIER, PREFIX, P2P_PORT 5024, MAX_TARGET, donation P2PK, ADDRESS_VERSION 30 / P2SH 63, magic, HRP, dust 0.001e8, worker_port 5025.

Still OPEN [confirm-vs-oracle] — deliberately NOT changed here (need adjudication)

  1. subsidy() — oracle get_subsidy uses weeks=(blocks/period)+1 (off-by-one vs our loop) and a local COIN=1e6 (vs our 1e8). Needs careful review before touching consensus subsidy math.
  2. parent daemon ports — config 12024/14024 vs oracle 12029/14029. Connection defaults, operator-overridable, non-consensus; 12024 is the documented DigiByte Core default.
  3. address_p2sh_version2=5 — oracle defines a single P2SH version (63), silent on a 2nd prefix. Parse-leniency only, not consensus.

GPG-signed c51f39b.

frstrtr added 2 commits June 17, 2026 15:16
Builds a fully populated core::CoinParams for the DigiByte-Scrypt p2pool
parent chain. Holds zero hardcoded consensus bytes: every consensus-critical
value is sourced from the single-source-of-truth static members of
dgb::CoinParams (config_coin.hpp) and dgb::PoolConfig (config_pool.hpp).

Sourced from the DGB oracle frstrtr/p2pool-dgb-scrypt (switch-oracle / Option B):
IDENTIFIER 4b62545b1a631afe, PREFIX 1c0553f23ebfcffe, P2P 5024, minproto floor
1700, softforks csv+segwit, version-gated donation (v35 forrestv P2PK / v36 P2SH).

Single-coin scope: touches only src/impl/dgb/.
Migrate the share-layer and parent-period constants left at merged-v36/
farsider holdovers over to the canonical DGB oracle (frstrtr/p2pool-dgb-
scrypt). The oracle-switch (operator Option B, 2026-06-17) only carried
IDENTIFIER/PREFIX/donation/minproto; these were still stale.

config_pool.hpp (networks/digibyte.py):
  SPREAD 30->24, TARGET_LOOKBEHIND 200->100, SHARE_PERIOD 25->15,
  CHAIN_LENGTH/REAL 8640->2880, SEGWIT_ACTIVATION_VERSION 17->35,
  BLOCK_MAX_SIZE 1M->32M, BLOCK_MAX_WEIGHT 4M->128M,
  SOFTFORKS_REQUIRED += nversionbips,reservealgo,odo,taproot.
config_coin.hpp (bitcoin/networks/digibyte.py):
  BLOCK_PERIOD 15->75 (Scrypt-only parent observes the per-algo period).
params.hpp: resolve [confirm-vs-oracle] for worker_port (5025) and
  dust_threshold (0.001e8); refresh stale value comments.

Already-matching (unchanged): IDENTIFIER, PREFIX, P2P_PORT 5024,
MAX_TARGET, donation P2PK, ADDRESS_VERSION 30 / P2SH 63, magic, HRP.

Still open [confirm-vs-oracle], NOT changed here: subsidy weeks off-by-one
+ COIN scale, parent daemon ports 12024/14024 vs oracle 12029/14029,
address_p2sh_version2=5 (oracle silent on a 2nd P2SH prefix).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant