Skip to content

feat: convert merge mining cucumber tests to RxT#7747

Open
0xskr33p wants to merge 2 commits intotari-project:developmentfrom
0xskr33p:fix/mm-rxm-to-rxt
Open

feat: convert merge mining cucumber tests to RxT#7747
0xskr33p wants to merge 2 commits intotari-project:developmentfrom
0xskr33p:fix/mm-rxm-to-rxt

Conversation

@0xskr33p
Copy link
Copy Markdown

Description

Convert merge mining integration tests from RandomX-Monero (RxM) to RandomX-Tari (RxT) by switching from the standalone minotari_merge_mining_proxy to the base node's built-in xmrig_proxy.

Key changes:

  • port_pool.rs: Added xmrig_proxy port to BaseNodePorts; renamed merge_mining_proxy_ports -> xmrig_proxy_ports; removed standalone proxy port allocation methods.
  • base_node_process.rs: Enabled built-in xmrig_proxy during base node spawn (xmrig_proxy_enabled, xmrig_proxy_address, xmrig_proxy_wallet_payment_address).
  • merge_mining_proxy.rs: Rewrote from external process launcher to lightweight HTTP client targeting the base node's built-in proxy; removed all Monero-specific config (monerod_url, wallet gRPC); removed unsupported methods (get_last_block_header, get_block_header_by_hash).
  • merge_mining_steps.rs: Updated step definitions for new RxT API response format (76-byte hex blobs, submitblock instead of submit_block, count instead of height).
  • MergeMining.feature: Removed @broken tag; removed Monero origin submission scenario; adapted validation steps.
  • BlockExplorerGRPC.feature: Removed wallet dependency that was only needed for the old standalone proxy.
  • Cargo.toml: Removed minotari_merge_mining_proxy dependency.
  • world.rs: Updated after hook to return xmrig_proxy ports to pool on base node shutdown.

Motivation and Context

#7737

How Has This Been Tested?

cargo test --test cucumber --package tari_integration_tests -- --tags "@merge-mining"

Results:

  • 2 scenarios passed (Merge Mining Proxy API Test, Simple Merge Mining)
  • 12 steps passed
  • 0 failures

What process can a PR reviewer use to test or verify this change?

  1. Run the merge mining integration tests:
    cargo test --test cucumber --package tari_integration_tests -- --tags "@merge-mining"
  2. Verify both scenarios pass without any external Monero daemon running – the tests should be fully self-contained.
  3. Confirm no monerod connections are attempted (no network calls to Monero stagenet nodes).

Breaking Changes

  • None
  • Requires data directory on base node to be deleted
  • Requires hard fork
  • Other - Please specify

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request replaces the standalone merge mining proxy process with a built-in XMRig proxy in the base node for integration tests. Key changes include the removal of the minotari_merge_mining_proxy dependency, the addition of xmrig_proxy_port to the base node configuration, and a significant refactoring of MergeMiningProxyProcess into a lightweight HTTP client. Corresponding updates were made to the port pool management, test world cleanup, and Gherkin feature files to reflect the simplified architecture. I have no feedback to provide.

@0xskr33p 0xskr33p force-pushed the fix/mm-rxm-to-rxt branch from c6274f5 to d9ad2f6 Compare April 11, 2026 10:47
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