hygiene: Phase 5 — correct stale comments + name safe magic numbers
Fifth phase of the code-hygiene remediation, done per-file (18 files) via an 18-agent Workflow with strict guardrails. No consensus or security VALUES changed (verified: pow/hush_utils/hush_bitcoind/net.h/crypter/stratum have zero non-comment numeric changes); built clean, self-mined, verifychain=true. Totals: 57 stale comments corrected, 46 user-facing branding fixes, 6 behavior-preserving named constants, 4 stratum warnings, 77 items deliberately left (consensus/security values, copyright headers). - Stale comments -> DragonX: corrected HUSH3/HUSH/Komodo/Equihash/Arrakis leftovers that misdescribed the active chain (pow AWT/lwma notes, txdb "Equihash solution" -> RandomX, wallet CLTV/overwinter/Sapling@1 notes, util datadir provenance, crypter's stale mapSproutSpendingKeys invariant). Replaced unprofessional/editorializing comments (profane TODOs, "developers are elite") with neutral technical notes, preserving the real design info. - User-facing branding: dumpwallet header "created by Hush" -> "DragonX"; RPC help text hushd/hush-cli/hushprivkey/hushaddress/Agama -> dragonx*; rebranded provably-dead "HUSH3" symbol-fallback literals to DRAGONX. - Named constants (same values, non-consensus/non-security): addrman peer-selection factors (kChanceFactorGrowth/kChanceScale/deprioritize), sietch MIN_ZOUTS, an init notarization-DB cache size. - Left the security macros (ECC/TFM_TIMING_RESISTANT=420, comment-clarified only), the consensus subsidy/commission literals + 128/129 TRANSITION (comment only), and copyright headers untouched. - Added a prominent WARNING that the stratum server is Equihash-era and NOT updated for DragonX's RandomX PoW (flagged, not rewritten). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+30
-11
@@ -672,7 +672,7 @@ std::string GetWorkUnit(StratumClient& client)
|
||||
} */
|
||||
|
||||
/* if (!Params().MineBlocksOnDemand() && g_connman->GetNodeCount(CConnman::CONNECTIONS_ALL) == 0) {
|
||||
throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "Hush is not connected!");
|
||||
throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "DragonX is not connected!");
|
||||
} */
|
||||
|
||||
bool fvNodesEmpty;
|
||||
@@ -683,21 +683,21 @@ std::string GetWorkUnit(StratumClient& client)
|
||||
|
||||
if (Params().MiningRequiresPeers() && fvNodesEmpty)
|
||||
{
|
||||
const std::string msg = strprintf("%s: Unable to get work unit, Hush is not connected!", __func__);
|
||||
const std::string msg = strprintf("%s: Unable to get work unit, DragonX is not connected!", __func__);
|
||||
LogPrint("stratum", "%s\n", msg);
|
||||
throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "Hush is not connected!");
|
||||
throw JSONRPCError(RPC_CLIENT_NOT_CONNECTED, "DragonX is not connected!");
|
||||
}
|
||||
|
||||
if (IsInitialBlockDownload()) {
|
||||
const std::string msg = strprintf("%s: Unable to get work unit, Hush is still downloading blocks!", __func__);
|
||||
const std::string msg = strprintf("%s: Unable to get work unit, DragonX is still downloading blocks!", __func__);
|
||||
LogPrint("stratum", "%s\n", msg);
|
||||
throw JSONRPCError(RPC_CLIENT_IN_INITIAL_DOWNLOAD, "Hush is downloading blocks...");
|
||||
throw JSONRPCError(RPC_CLIENT_IN_INITIAL_DOWNLOAD, "DragonX is downloading blocks...");
|
||||
}
|
||||
|
||||
if (!client.m_authorized && client.m_aux_addr.empty()) {
|
||||
const std::string msg = strprintf("%s: Unable to get work unit, client not authorized! Use address 'x' to mine to the default address", __func__);
|
||||
LogPrint("stratum", "%s\n", msg);
|
||||
throw JSONRPCError(RPC_INVALID_REQUEST, "Stratum client not authorized. Use mining.authorize first, with a Hush R.. address as the username or 'x' to mine to the default address.");
|
||||
throw JSONRPCError(RPC_INVALID_REQUEST, "Stratum client not authorized. Use mining.authorize first, with a DragonX R.. address as the username or 'x' to mine to the default address.");
|
||||
}
|
||||
|
||||
static CBlockIndex* tip = NULL; // pindexPrev
|
||||
@@ -924,6 +924,15 @@ bool SubmitBlock(StratumClient& client, const uint256& job_id, const StratumWork
|
||||
const std::vector<unsigned char>& extranonce1, const std::vector<unsigned char>& extranonce2,
|
||||
boost::optional<uint32_t> nVersion, uint32_t nTime, const std::vector<unsigned char>& sol)
|
||||
{
|
||||
// ============================ WARNING (Equihash-era code) ============================
|
||||
// This entire submit path is hardcoded for the legacy Equihash proof-of-work:
|
||||
// it expects a 1347-byte Equihash solution and calls CheckEquihashSolution() below.
|
||||
// DragonX uses RandomX PoW (32-byte solution), NOT Equihash. This stratum path has
|
||||
// NOT been updated for RandomX and must not be relied on without full revalidation.
|
||||
// The 1347-byte length checks, the "sol.begin()+3" solution offset, and the equihash
|
||||
// target/difficulty math are all Equihash-era and are intentionally left unchanged.
|
||||
// ====================================================================================
|
||||
//
|
||||
// called from stratum_mining_submit and uses following data, came from client:
|
||||
// ["WORKER_NAME", "JOB_ID", "TIME", "NONCE_2", "EQUIHASH_SOLUTION"]
|
||||
// all other params we have saved in other places
|
||||
@@ -934,7 +943,9 @@ bool SubmitBlock(StratumClient& client, const uint256& job_id, const StratumWork
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, msg);
|
||||
}
|
||||
|
||||
// TODO: change hardcoded constants on actual determine of solution size, depends on equihash algo type: 200.9, etc.
|
||||
// WARNING (Equihash-era): 1347 is the Equihash-200,9 solution length. DragonX is RandomX
|
||||
// (32-byte solution), so this length check does not match the live PoW. Left unchanged
|
||||
// because this whole path is Equihash-era; do not repurpose without revalidating the miner protocol.
|
||||
if (sol.size() != 1347) {
|
||||
std::string msg = strprintf("%s: solution is wrong length (received %d bytes; expected %d bytes", __func__, extranonce2.size(), 1347);
|
||||
LogPrint("stratum", "%s\n", msg);
|
||||
@@ -1196,7 +1207,7 @@ UniValue stratum_mining_authorize(StratumClient& client, const UniValue& params)
|
||||
// This means a miner can run a private pool without TLS and not
|
||||
// worry about MITM attacks that change addresses, and leaks less metadata.
|
||||
// It also means many miners can be used and updating their mining address does not
|
||||
// require any changes on each miner, just restart hushd with a new -stratumaddress
|
||||
// require any changes on each miner, just restart dragonxd with a new -stratumaddress
|
||||
if(addr.ToString() == "x") {
|
||||
addr = CBitcoinAddress(GetArg("-stratumaddress", ""));
|
||||
const std::string msg = strprintf("%s: Authorized client with default stratum address=%s", __func__, addr.ToString());
|
||||
@@ -1204,9 +1215,9 @@ UniValue stratum_mining_authorize(StratumClient& client, const UniValue& params)
|
||||
}
|
||||
|
||||
if (!addr.IsValid()) {
|
||||
const std::string msg = strprintf("%s: Invalid Hush address=%s", __func__, addr.ToString());
|
||||
const std::string msg = strprintf("%s: Invalid DragonX address=%s", __func__, addr.ToString());
|
||||
LogPrint("stratum", "%s\n", msg);
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Invalid Hush address: %s", username));
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Invalid DragonX address: %s", username));
|
||||
}
|
||||
|
||||
client.m_addr = addr;
|
||||
@@ -1250,6 +1261,14 @@ UniValue stratum_mining_configure(StratumClient& client, const UniValue& params)
|
||||
|
||||
UniValue stratum_mining_submit(StratumClient& client, const UniValue& params)
|
||||
{
|
||||
// ============================ WARNING (Equihash-era code) ============================
|
||||
// This share-submission handler is hardcoded for legacy Equihash: it parses and requires
|
||||
// a 1347-byte Equihash solution and hands it to SubmitBlock() (which calls
|
||||
// CheckEquihashSolution). DragonX uses RandomX PoW (32-byte solution), NOT Equihash.
|
||||
// This path has NOT been updated for RandomX and must not be relied on without full
|
||||
// revalidation of the miner-facing stratum protocol.
|
||||
// ====================================================================================
|
||||
//
|
||||
// {"id": 4, "method": "mining.submit", "params": ["WORKER_NAME", "JOB_ID", "TIME", "NONCE_2", "EQUIHASH_SOLUTION"]}\n
|
||||
|
||||
// NONCE_1 is first part of the block header nonce (in hex).
|
||||
@@ -1762,7 +1781,7 @@ void SendKeepAlivePackets()
|
||||
|
||||
}
|
||||
|
||||
/** Configure the Hush stratum server */
|
||||
/** Configure the DragonX stratum server */
|
||||
bool InitStratumServer()
|
||||
{
|
||||
LOCK(cs_stratum);
|
||||
|
||||
Reference in New Issue
Block a user