Skip to content

feat: add Monero profitability and pool profile follow-ups - #670

Merged
alibabaedge merged 17 commits into
devfrom
codex/642-monero-follow-up
Jul 27, 2026
Merged

feat: add Monero profitability and pool profile follow-ups#670
alibabaedge merged 17 commits into
devfrom
codex/642-monero-follow-up

Conversation

@m1amgn

@m1amgn m1amgn commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements the approved follow-up from #642 across the Monero network, mining-pool profiles, and the existing Calculate section.

  • add validator-style contextual backlinks to mining-pool profile titles on Networks, Metrics, and Blocks
  • explain Stock-to-Flow on hover and keep the long explanation compact
  • replace the PoW validator-cost placeholder with normalized Min. Miner Profit
  • add a Monero Mining mode to the existing /stakingcalculator destination
  • add source-backed Pool Configuration rows for the seven tracked Monero pools
  • add an educational Monero-only Privacy Parameters section on Stats
  • localize every new user-facing string in English, Portuguese, and Russian

Mining economics

Min. Miner Profit is an approximate USD/day return for 1 kH/s. It uses the latest stored network hashrate, 24h average canonical block reward including transaction fees, XMR/USD price, the 120s target, and the hashrate-weighted percentage fee of known active pools. It excludes electricity, hardware, cooling, taxes, and downtime; the tooltip states those limits.

The Calculate Mining mode combines the same server-derived network inputs with user-provided hashrate, power draw, electricity price, uptime, optional hardware cost, and a selected/average/custom pool fee. It reports XMR payout, USD return, pool fee, electricity cost, net profit, and payback when the entered inputs support them.

Pool and privacy data honesty

Pool configuration is curated from pool-owned sites, APIs, or repositories and includes source URLs plus a verification date. Unknown software, payout schedules, fees, or endpoints remain explicitly unpublished rather than inferred. Percentage mining fees remain separate from fixed or conditional payout/withdrawal fees.

Privacy Parameters describes current consensus/protocol properties (ring size 16 and required RingCT, CLSAG, and Bulletproofs+). It is explicitly not presented as measured activity, an adoption series, or an effective-anonymity score.

Deliberately not included

  • Monero P2P node crawling: separate infrastructure spike to assess reviving monero-crawler-rs, otherwise build around Cuprate
  • mempool and confirmation-depth work
  • the combined validators + mining-pools operator directory, which needs a separate union-table/service design
  • raw-transaction decoy/output-age analytics and hardware/electricity presets

Verification

  • yarn prettier --check <all changed files>
  • yarn tsc --noEmit
  • yarn test — 63 passed, 3 skipped, 0 failed
  • yarn build
  • graphify update . plus affected checks for the changed UI, services, registry, and calculation utilities
  • browser QA on Monero Overview, Tokenomics, Stats, Calculate Mining/Staking, P2Pool and MoneroOcean Metrics, and pool Networks/Blocks titles

Refs #642

m1amgn added 17 commits July 25, 2026 20:00
Introduce a route-scoped title component for pool profile pages so the pool name returns to its Networks tab and the network name returns to network overview. Apply the same title context to Networks, Metrics, and Blocks, with localized prepositions in all supported locales.

The shared PageTitle component is intentionally unchanged because it has a wide cross-site blast radius; the new behavior is limited to mining pool profiles.
Wrap the existing stock-to-flow value in the established tooltip treatment and explain how circulating supply relates to estimated annual issuance. Include the live ratio in the explanation and clarify that the metric describes scarcity rather than future price.

Keep the existing calculation and display precision unchanged, and add matching English, Portuguese, and Russian copy.
Replace the blurred validator-cost placeholder for Monero with a daily USD estimate normalized to 1 kH/s. Derive it from the latest network hashrate, 24-hour average block reward including fees, XMR price, and the hashrate-weighted fee of verified active pools.

Add a reusable pure mining-return calculation with coverage for pool fees, uptime, invalid inputs, and weighted fee aggregation. Localized tooltips disclose that electricity, hardware, cooling, taxes, and downtime are excluded. PoS validator-cost behavior remains unchanged.
Create a server-side profitability snapshot from the latest Monero hashrate, block reward, token price, and verified pool fees, then expose it through a localized mining calculator linked from the network overview. The calculator keeps hardware-dependent inputs explicit, shows pool fees and electricity separately from estimated net profit, and adds focused tests for power cost and payback calculations. The existing staking calculator now shares a small mode switch with the new mining route.
Extend the existing curated pool registry with verified software, Stratum endpoints, server regions, payout thresholds and schedules, separate payout-fee rules, source URLs, and verification dates for all seven tracked Monero pools. Render the data after each pool's live metrics with localized missing-data semantics so unpublished properties remain explicit instead of inferred. Add registry integrity tests while keeping the background attribution and statistics consumers on their existing fields.
Add a Monero-only educational section for the protocol's fixed ring size, mandatory RingCT and CLSAG behavior, and Bulletproofs+ range proofs. Each localized card links to an official Monero source and the section explicitly distinguishes consensus properties from measured activity or an effective-anonymity score. Pass the chain name into the PoW stats composition so this material cannot appear on another proof-of-work network.
Keep /stakingcalculator as the single calculator destination and render the Monero mining experience through its mode selector. Remove the parallel mining route and overview deep link, move the mining component under the existing calculator ownership boundary, and update the shared description across every locale. Inactive calculator data is no longer fetched.
Replace the ad hoc pair of calculator buttons with the shared project switch pattern already used for other binary modes. Keep the URL as the source of truth and use client navigation so the selected mode and server-rendered calculator content update together.
Reuse the existing metrics cards and base table components instead of standalone dashboard-style presentation. Match the staking calculator's compact form width, retain a wider data layout for results, and bring field borders and spacing into the established ValidatorInfo visual rhythm without changing calculation behavior.
Remove local color and size overrides that made calculator values, metric cards, and result rows diverge from the rest of ValidatorInfo. Restore the established white value text, highlighted metric titles, standard metric-card spacing, bold table headers, and base table row sizing while keeping form labels aligned with the staking calculator controls.
Move the shared calculator mode switch to the content edge and apply the established table type scale: small headers, SF Pro base labels, and Handjet large numeric values. This matches Developer Activity, Nodes, and Ecosystems tables without changing calculator behavior.
Place the shared Staking and Mining switch at the right edge of the calculator content while preserving its existing navigation behavior.
Replace the custom bordered-card grid with the shared table primitives used across network and mining-pool pages. Preserve the curated configuration data while applying the established row shadows, hover behavior, SF Pro labels, and Handjet values.
Add the same header row, centered column layout, shared cell behavior, and typography used by network Developer Activity tables. Localize the Parameter and Value headings across English, Portuguese, and Russian while preserving all curated pool data and links.
Replace the commits-table treatment with the same headerless, left-aligned two-column rows used by Network Overview and transaction details. Remove the now-unused Parameter and Value translations while preserving all curated pool data, links, and endpoint metadata.
Render each pool endpoint, its ports, and transport labels on one non-wrapping row. Constrain overflow to the endpoint list so long configurations remain usable without breaking the surrounding property layout.
Give the long Stock-to-Flow explanation a compact responsive width so it wraps into a readable block instead of stretching across the Tokenomics page. Keep the shared tooltip defaults and all other metric tooltips unchanged.
@m1amgn m1amgn mentioned this pull request Jul 26, 2026
@alibabaedge
alibabaedge merged commit db6b0bc into dev Jul 27, 2026
1 check failed
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.

2 participants